diff --git a/Numeric/polynomialBasis.cpp b/Numeric/polynomialBasis.cpp index e2bb340ccd6b562fea02933d54a163af8a86144d..1614ed6a5ba59880018dd7a0583ace0ed58b468e 100644 --- a/Numeric/polynomialBasis.cpp +++ b/Numeric/polynomialBasis.cpp @@ -1562,8 +1562,8 @@ const polynomialBasis *polynomialBases::find(int tag) case TYPE_TRI : F.numFaces = 3; F.dimension = 2; - F.monomials = generatePascalTriangle(F.order); - F.points = gmshGeneratePointsTriangle(F.order, F.serendip); + F.monomials = F.serendip ? generatePascalSerendipityTriangle(F.order) : generatePascalTriangle(F.order); + F.points = gmshGeneratePointsTriangle(F.order, F.serendip); if (F.order == 0) { generateClosureOrder0(F.closures, 6); generateClosureOrder0(F.fullClosures, 6); @@ -1576,7 +1576,7 @@ const polynomialBasis *polynomialBases::find(int tag) case TYPE_QUA : F.numFaces = 4; F.dimension = 2; - F.monomials = generatePascalQuad(F.order); + F.monomials = F.serendip ? generatePascalQuadSerendip(F.order) : generatePascalQuad(F.order); F.points = gmshGeneratePointsQuad(F.order, F.serendip); if (F.order == 0) { generateClosureOrder0(F.closures, 8); @@ -1590,7 +1590,7 @@ const polynomialBasis *polynomialBases::find(int tag) case TYPE_TET : F.numFaces = 4; F.dimension = 3; - F.monomials = generatePascalTetrahedron(F.order); + F.monomials = F.serendip ? generatePascalSerendipityTetrahedron(F.order) : generatePascalTetrahedron(F.order); F.points = gmshGeneratePointsTetrahedron(F.order, F.serendip); if (F.order == 0) { generateClosureOrder0(F.closures,24); @@ -1618,7 +1618,7 @@ const polynomialBasis *polynomialBases::find(int tag) case TYPE_HEX : F.numFaces = 6; F.dimension = 3; - F.monomials = generatePascalHex(F.order,F.serendip); + F.monomials = generatePascalHex(F.order, F.serendip); F.points = gmshGeneratePointsHex(F.order, F.serendip); // generateFaceClosureHex(F.closures, F.order); // generateFaceClosureHexFull(F.fullClosures, F.closureRef, F.order, F.serendip);