diff --git a/Geo/GFaceCompound.cpp b/Geo/GFaceCompound.cpp index 7e5788b6d265e5a0177c87fb36c9deb4cfa27f92..73fe3452d2885ff538535788aff16fed54c8b596 100644 --- a/Geo/GFaceCompound.cpp +++ b/Geo/GFaceCompound.cpp @@ -9,6 +9,7 @@ #include "MLine.h" #include "MTriangle.h" #include "Numeric.h" +#include "OS.h" #include "Octree.h" #include "SBoundingBox3d.h" #include "SPoint3.h" @@ -28,7 +29,7 @@ #include "CreateFile.h" #include "Context.h" #include "discreteFace.h" - +#include "eigenSolve.h" static void fixEdgeToValue(GEdge *ed, double value, dofManager<double, double> &myAssembler) { @@ -538,7 +539,6 @@ void GFaceCompound::computeALoop(std::set<GEdge*> &_unique, std::list<GEdge*> &l GVertex *vE = (*it)->getEndVertex(); _loop.push_back(*it); _unique.erase(it); - it++; bool found = false; for(int i = 0; i < 2; i++) { @@ -580,7 +580,8 @@ void GFaceCompound::computeALoop(std::set<GEdge*> &_unique, std::list<GEdge*> &l } if(found == true) break; - + + it++; } loop = _loop; @@ -599,10 +600,10 @@ GFaceCompound::GFaceCompound(GModel *m, int tag, std::list<GFace*> &compound, { if (!_lsys) { -#if defined(HAVE_TAUCS) - _lsys = new linearSystemCSRTaucs<double>; -#elif defined(HAVE_PETSC) +#if defined(HAVE_PETSC) _lsys = new linearSystemPETSc<double>; +#elif defined(HAVE_TAUCS) + _lsys = new linearSystemCSRTaucs<double>; #elif defined(HAVE_GMM) linearSystemGmm<double> *_lsysb = new linearSystemGmm<double>; _lsysb->setGmres(1); @@ -875,7 +876,7 @@ void GFaceCompound::parametrize(iterationStep step, typeOfMapping tom) const Msg::Debug("Creating term %d dofs numbered %d fixed", myAssembler.sizeOfR(), myAssembler.sizeOfF()); - clock_t t1 = clock(); + double t1 = Cpu(); if (tom == CONVEXCOMBINATION){ convexCombinationTerm laplace(model(), 1, &ONE); @@ -899,8 +900,8 @@ void GFaceCompound::parametrize(iterationStep step, typeOfMapping tom) const } - clock_t t2 = clock(); - Msg::Debug("Assembly done in %8.3f seconds",(double)(t2-t1)/CLOCKS_PER_SEC); + double t2 = Cpu(); + Msg::Debug("Assembly done in %8.3f seconds", t2 - t1); _lsys->systemSolve(); Msg::Debug("System solved"); diff --git a/Geo/GModelIO_Geo.cpp b/Geo/GModelIO_Geo.cpp index b18781a80bee207d1d3fd26ff712b24e072865b6..4ac656db2ff5aeb514e40d4de237c06fb0037285 100644 --- a/Geo/GModelIO_Geo.cpp +++ b/Geo/GModelIO_Geo.cpp @@ -161,8 +161,7 @@ int GModel::importGEOInternals() int i = 0; List_T *bnd; std::list<GEdge*> b[4]; - while((bnd = p->Boundaries[i])){ - if (i > 3)break; + while(i < 4 && (bnd = p->Boundaries[i])){ for(int j = 0; j < List_Nbr(bnd); j++){ int ie; List_Read(bnd, j, &ie);