@@ -214,16 +214,20 @@ index_t checkGeometry(gsMultiPatch<T> const & domain)
214214 numNodes.at (i) = domain.basis (p).degree (i)+1 ;
215215 gsQuadRule<T> quRule = gsQuadrature::get<T>(gsQuadrature::GaussLegendre,numNodes);
216216
217- typename gsBasis<T>::domainIter domIt = domain.basis (p).makeDomainIterator (boundary::none);
218- #ifdef _OPENMP
217+ // Initialize domain element iterator
218+ typename gsBasis<T>::domainIter domIt = domain.basis (p).domain ()->beginAll ();
219+ typename gsBasis<T>::domainIter domItEnd = domain.basis (p).domain ()->endAll ();
220+
221+ # ifdef _OPENMP
219222 const int tid = omp_get_thread_num ();
220223 const int nt = omp_get_num_threads ();
221- for ( domIt->next (tid); domIt->good () && continueIt; domIt->next (nt) )
222- #else
223- for (; domIt->good () && continueIt; domIt->next () )
224- #endif
224+ domIt += tid;
225+ for ( ; domIt<domItEnd; domIt+=nt )
226+ # else
227+ for (; domIt<domItEnd && continueIt; ++domIt )
228+ # endif
225229 {
226- genSamplingPoints (domIt-> lowerCorner (),domIt-> upperCorner (),quRule,points);
230+ genSamplingPoints (domIt. lowerCorner (),domIt. upperCorner (),quRule,points);
227231 md.points = points;
228232 domain.patch (p).computeMap (md);
229233 for (index_t q = 0 ; q < points.cols () && continueIt; ++q)
@@ -260,16 +264,20 @@ index_t checkDisplacement(gsMultiPatch<T> const & domain, gsMultiPatch<T> const
260264 numNodes.at (i) = displacement.basis (p).degree (i)+1 ;
261265 gsQuadRule<T> quRule = gsQuadrature::get<T>(gsQuadrature::GaussLegendre,numNodes);
262266
263- typename gsBasis<T>::domainIter domIt = displacement.basis (p).makeDomainIterator (boundary::none);
264- #ifdef _OPENMP
267+ // Initialize domain element iterator
268+ typename gsBasis<T>::domainIter domIt = displacement.basis (p).domain ()->beginAll ();
269+ typename gsBasis<T>::domainIter domItEnd = displacement.basis (p).domain ()->endAll ();
270+
271+ # ifdef _OPENMP
265272 const int tid = omp_get_thread_num ();
266273 const int nt = omp_get_num_threads ();
267- for ( domIt->next (tid); domIt->good () && continueIt; domIt->next (nt) )
268- #else
269- for (; domIt->good () && continueIt; domIt->next () )
270- #endif
274+ domIt += tid;
275+ for ( ; domIt<domItEnd; domIt+=nt )
276+ # else
277+ for (; domIt<domItEnd && continueIt; ++domIt )
278+ # endif
271279 {
272- genSamplingPoints (domIt-> lowerCorner (),domIt-> upperCorner (),quRule,points);
280+ genSamplingPoints (domIt. lowerCorner (),domIt. upperCorner (),quRule,points);
273281 mdG.points = points;
274282 mdU.points = points;
275283 domain.patch (p).computeMap (mdG);
@@ -308,16 +316,20 @@ T normL2(gsMultiPatch<T> const & domain, gsMultiPatch<T> const & solution)
308316 numNodes.at (i) = solution.basis (p).degree (i)+1 ;
309317 gsQuadRule<T> quRule = gsQuadrature::get<T>(gsQuadrature::GaussLegendre,numNodes);
310318
311- typename gsBasis<T>::domainIter domIt = solution.basis (p).makeDomainIterator (boundary::none);
312- #ifdef _OPENMP
319+ // Initialize domain element iterator
320+ typename gsBasis<T>::domainIter domIt = solution.basis (p).domain ()->beginAll ();
321+ typename gsBasis<T>::domainIter domItEnd = solution.basis (p).domain ()->endAll ();
322+
323+ # ifdef _OPENMP
313324 const int tid = omp_get_thread_num ();
314325 const int nt = omp_get_num_threads ();
315- for ( domIt->next (tid); domIt->good (); domIt->next (nt) )
316- #else
317- for (; domIt->good (); domIt->next () )
318- #endif
326+ domIt += tid;
327+ for ( ; domIt<domItEnd; domIt+=nt )
328+ # else
329+ for (; domIt<domItEnd; ++domIt )
330+ # endif
319331 {
320- quRule.mapTo ( domIt-> lowerCorner (), domIt-> upperCorner (), quNodes, quWeights );
332+ quRule.mapTo ( domIt. lowerCorner (), domIt. upperCorner (), quNodes, quWeights );
321333 mdGeo.points = quNodes;
322334 domain.patch (p).computeMap (mdGeo);
323335 solution.patch (p).eval_into (quNodes,values);
@@ -347,10 +359,12 @@ T geometryJacRatio(gsMultiPatch<T> const & domain)
347359 numNodes.at (i) = domain.basis (p).degree (i)+1 ;
348360 gsQuadRule<T> quRule = gsQuadrature::get<T>(gsQuadrature::GaussLegendre,numNodes);
349361
350- typename gsBasis<T>::domainIter domIt = domain.basis (p).makeDomainIterator (boundary::none);
351- for (; domIt->good (); domIt->next ())
362+ // Initialize domain element iterator
363+ typename gsBasis<T>::domainIter domIt = domain.basis (p).domain ()->beginAll ();
364+ typename gsBasis<T>::domainIter domItEnd = domain.basis (p).domain ()->endAll ();
365+ for (; domIt<domItEnd; ++domIt )
352366 {
353- genSamplingPoints (domIt-> lowerCorner (),domIt-> upperCorner (),quRule,points);
367+ genSamplingPoints (domIt. lowerCorner (),domIt. upperCorner (),quRule,points);
354368 md.points = points;
355369 domain.patch (p).computeMap (md);
356370
@@ -390,10 +404,12 @@ T displacementJacRatio(const gsMultiPatch<T> & domain,const gsMultiPatch<T> & di
390404 numNodes.at (i) = displacement.basis (p).degree (i)+1 ;
391405 gsQuadRule<T> quRule = gsQuadrature::get<T>(gsQuadrature::GaussLegendre,numNodes);
392406
393- typename gsBasis<T>::domainIter domIt = domain.basis (p).makeDomainIterator (boundary::none);
394- for (; domIt->good (); domIt->next ())
407+ // Initialize domain element iterator
408+ typename gsBasis<T>::domainIter domIt = domain.basis (p).domain ()->beginAll ();
409+ typename gsBasis<T>::domainIter domItEnd = domain.basis (p).domain ()->endAll ();
410+ for (; domIt<domItEnd; ++domIt )
395411 {
396- genSamplingPoints (domIt-> lowerCorner (),domIt-> upperCorner (),quRule,points);
412+ genSamplingPoints (domIt. lowerCorner (),domIt. upperCorner (),quRule,points);
397413 mdG.points = points;
398414 mdU.points = points;
399415 domain.patch (p).computeMap (mdG);
@@ -520,10 +536,12 @@ T curveLength(const gsGeometry<T> & geo)
520536 gsMapData<T> md;
521537 md.flags = NEED_DERIV;
522538
523- typename gsBasis<>::domainIter domIt = geo.basis ().makeDomainIterator (boundary::none);
524- for (; domIt->good (); domIt->next ())
539+ // Initialize domain element iterator
540+ typename gsBasis<T>::domainIter domIt = geo.basis ().domain ()->beginAll ();
541+ typename gsBasis<T>::domainIter domItEnd = geo.basis ().domain ()->endAll ();
542+ for (; domIt<domItEnd; ++domIt )
525543 {
526- quRule.mapTo (domIt-> lowerCorner (),domIt-> upperCorner (),qPoints,qWeights);
544+ quRule.mapTo (domIt. lowerCorner (),domIt. upperCorner (),qPoints,qWeights);
527545 md.points = qPoints;
528546 geo.computeMap (md);
529547 for (index_t q = 0 ; q < qWeights.rows (); ++q)
0 commit comments