diff --git a/Geo/GModelIO_Geo.cpp b/Geo/GModelIO_Geo.cpp index 465a1ce8c69fffd8b0ba70a9d639025655d6bbb0..2186c8cd8429f5180e9275497d6ab9e94b742f75 100644 --- a/Geo/GModelIO_Geo.cpp +++ b/Geo/GModelIO_Geo.cpp @@ -69,6 +69,7 @@ int GModel::exportDiscreteGEOInternals() List_Add(c->Control_Points, &v); c->end = v; } + } Tree_Add(GModel::current()->getGEOInternals()->Curves, &c); CreateReversedCurve(c); diff --git a/Numeric/polynomialBasis.cpp b/Numeric/polynomialBasis.cpp index 69c28525df1d875cf9890fab96d6bd2d102eea4f..f3d55e39149840a5c395bfb2264340a049ecc2f9 100644 --- a/Numeric/polynomialBasis.cpp +++ b/Numeric/polynomialBasis.cpp @@ -667,8 +667,9 @@ static fullMatrix<double> generateLagrangeMonomialCoefficients static void getFaceClosure(int iFace, int iSign, int iRotate, std::vector<int> &closure, int order) { + closure.clear(); - closure.reserve((order + 1) * (order + 2) / 2); + closure.resize((order + 1) * (order + 2) / 2); switch (order){ case 0: closure[0] = 0; @@ -734,10 +735,12 @@ static void getFaceClosure(int iFace, int iSign, int iRotate, std::vector<int> & } break; } + } static void generate3dFaceClosure(polynomialBasis::clCont &closure, int order) { + for (int iRotate = 0; iRotate < 3; iRotate++){ for (int iSign = 1; iSign >= -1; iSign -= 2){ for (int iFace = 0; iFace < 4; iFace++){ diff --git a/Solver/TESTCASES/Stommel.lua b/Solver/TESTCASES/Stommel.lua index c7f720c3074173b24f5d4d3425ef61d58f2ad4d3..1d9e3b2ec90d376b6e039fae0b545fa3b4e89199 100644 --- a/Solver/TESTCASES/Stommel.lua +++ b/Solver/TESTCASES/Stommel.lua @@ -1,17 +1,18 @@ - model = GModel() model:load ('stommel_square.msh') print('load..') +order = 3 dg = dgSystemOfEquations (model) -dg:setOrder (3) +dg:setOrder (order) dg:setConservationLaw('ShallowWater2d') dg:addBoundaryCondition('Wall','Wall') dg:setup() + dg:exportSolution('output/solution_00000') for i=1,1000 do diff --git a/Solver/dgGroupOfElements.cpp b/Solver/dgGroupOfElements.cpp index 01059e5a74f5b1c8ded07e8b725c8b43e8ac1ee8..b222417f8a690fae15362657ac25068838c968bf 100644 --- a/Solver/dgGroupOfElements.cpp +++ b/Solver/dgGroupOfElements.cpp @@ -150,7 +150,6 @@ void dgGroupOfFaces::addFace(const MFace &topoFace, int iElLeft, int iElRight){ for (int j=0; j<geomClosure.size() ; j++) vertices.push_back( elLeft.getVertex(geomClosure[j]) ); // triangular face - printf("the topological face has %d vertices and the geometrical %d\n",topoFace.getNumVertices(),vertices.size()); if (topoFace.getNumVertices() == 3){ switch(vertices.size()){ case 3 : _faces.push_back(new MTriangle (vertices) ); break;