diff --git a/Geo/MElement.cpp b/Geo/MElement.cpp index 5c52edb5b72783283f6a536261e1ba91dfa0730a..285243f2a953131b4c4f40248d3eef5ea08c6f75 100644 --- a/Geo/MElement.cpp +++ b/Geo/MElement.cpp @@ -565,8 +565,12 @@ double MElement::integrateFlux(double val[], int face, int pOrder, int order) getFaceVertices(face, v); MElementFactory f; int type = 0; - if(getType() == TYPE_TRI) type = getTriangleType(getPolynomialOrder()); - if(getType() == TYPE_QUA) type = getQuadType(getPolynomialOrder()); + if(getType() == TYPE_TRI || getType() == TYPE_TET) type = getTriangleType(getPolynomialOrder()); + else if(getType() == TYPE_QUA || getType() == TYPE_HEX) type = getQuadType(getPolynomialOrder()); + else if(getType() == TYPE_PYR && face < 4) type = getTriangleType(getPolynomialOrder()); + else if(getType() == TYPE_PYR && face >= 4) type = getQuadType(getPolynomialOrder()); + else if(getType() == TYPE_PRI && face < 2) type = getTriangleType(getPolynomialOrder()); + else if(getType() == TYPE_PRI && face >= 2) type = getQuadType(getPolynomialOrder()); MElement* fe = f.create(type, v); double intv[3];