Skip to content

Commit 94b7211

Browse files
committed
Merge remote-tracking branch 'origin/master' into MaterialClassesClean
2 parents 777b55c + d6ccb6f commit 94b7211

18 files changed

+72
-52
lines changed

src/gsGeoUtils.hpp

Lines changed: 48 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -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)

src/gsNsAssembler.hpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,11 +199,14 @@ gsMatrix<T> gsNsAssembler<T>::computeForce(const gsMultiPatch<T> & velocity, con
199199
// setting quadrature rule for the boundary side
200200
gsGaussRule<T> bdQuRule(basis,1.0,1,it->second.direction());
201201
// loop over elements of the side
202-
typename gsBasis<T>::domainIter elem = basis.makeDomainIterator(it->second);
203-
for (; elem->good(); elem->next())
202+
203+
// Initialize domain element iterator
204+
typename gsBasis<T>::domainIter domIt = basis.domain()->beginBdr(it->second);
205+
typename gsBasis<T>::domainIter domItEnd = basis.domain()->endBdr(it->second);
206+
for (; domIt<domItEnd; ++domIt )
204207
{
205208
// mapping quadrature rule to the element
206-
bdQuRule.mapTo(elem->lowerCorner(),elem->upperCorner(),quNodes,quWeights);
209+
bdQuRule.mapTo(domIt.lowerCorner(),domIt.upperCorner(),quNodes,quWeights);
207210
// evaluate geoemtry mapping at the quad points
208211
mdGeo.points = quNodes;
209212
m_pde_ptr->patches().patch(it->first).computeMap(mdGeo);

src/gsVisitorBiharmonic.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class gsVisitorBiharmonic
7171
pde_ptr->rhs()->eval_into(md.values[0],forceValues);
7272
}
7373

74-
inline void assemble(gsDomainIterator<T> & element,
74+
inline void assemble(gsDomainIteratorWrapper<T> & element,
7575
const gsVector<T> & quWeights)
7676
{
7777
GISMO_UNUSED(element);

src/gsVisitorBiharmonicMixed.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class gsVisitorBiharmonicMixed
7171
pde_ptr->rhs()->eval_into(md.values[0],forceValues);
7272
}
7373

74-
inline void assemble(gsDomainIterator<T> & element,
74+
inline void assemble(gsDomainIteratorWrapper<T> & element,
7575
const gsVector<T> & quWeights)
7676
{
7777
GISMO_UNUSED(element);

src/gsVisitorElPoisson.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ class gsVisitorElPoisson
6363
pde_ptr->rhs()->eval_into(md.values[0],forceValues);
6464
}
6565

66-
inline void assemble(gsDomainIterator<T> & element,
66+
inline void assemble(gsDomainIteratorWrapper<T> & element,
6767
const gsVector<T> & quWeights)
6868
{
6969
GISMO_UNUSED(element);

src/gsVisitorElasticityNeumann.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ class gsVisitorElasticityNeumann
6868
basisRefs.front().eval_into(quNodes,basisValuesDisp);
6969
}
7070

71-
inline void assemble(gsDomainIterator<T> & element,
71+
inline void assemble(gsDomainIteratorWrapper<T> & element,
7272
const gsVector<T> & quWeights)
7373
{
7474
GISMO_UNUSED(element);

src/gsVisitorLinearElasticity.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ class gsVisitorLinearElasticity
8686
pde_ptr->rhs()->eval_into(md.values[0],forceValues);
8787
}
8888

89-
inline void assemble(gsDomainIterator<T> & element,
89+
inline void assemble(gsDomainIteratorWrapper<T> & element,
9090
const gsVector<T> & quWeights)
9191
{
9292
GISMO_UNUSED(element);

src/gsVisitorMass.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class gsVisitorMassElasticity
6464

6565
}
6666

67-
inline void assemble(gsDomainIterator<T> & element,
67+
inline void assemble(gsDomainIteratorWrapper<T> & element,
6868
const gsVector<T> & quWeights)
6969
{
7070
GISMO_UNUSED(element);

src/gsVisitorMassElasticity.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ class gsVisitorMassElasticity
6464

6565
}
6666

67-
inline void assemble(gsDomainIterator<T> & element,
67+
inline void assemble(gsDomainIteratorWrapper<T> & element,
6868
const gsVector<T> & quWeights)
6969
{
7070
GISMO_UNUSED(element);

src/gsVisitorMixedLinearElasticity.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ class gsVisitorMixedLinearElasticity
8383
pde_ptr->rhs()->eval_into(md.values[0],forceValues);
8484
}
8585

86-
inline void assemble(gsDomainIterator<T> & element,
86+
inline void assemble(gsDomainIteratorWrapper<T> & element,
8787
const gsVector<T> & quWeights)
8888
{
8989
GISMO_UNUSED(element);

0 commit comments

Comments
 (0)