diff --git a/Geo/MHexahedron.h b/Geo/MHexahedron.h index ba94f9d3f9847ae6c42708e3f0b1e75f6272b6eb..8ea389e1919061586579efdeee1b9a4466894036 100644 --- a/Geo/MHexahedron.h +++ b/Geo/MHexahedron.h @@ -567,6 +567,9 @@ class MHexahedronN : public MHexahedron { virtual int getTypeForMSH() const { // (p+1)^3 + if(_order == 1 && _vs.size() + 8 == 8) return MSH_HEX_8; + if(_order == 2 && _vs.size() + 8 == 20) return MSH_HEX_20; + if(_order == 2 && _vs.size() + 8 == 27) return MSH_HEX_27; if(_order == 3 && _vs.size() + 8 == 64 ) return MSH_HEX_64; if(_order == 4 && _vs.size() + 8 == 125) return MSH_HEX_125; if(_order == 5 && _vs.size() + 8 == 216) return MSH_HEX_216; diff --git a/Geo/MQuadrangle.h b/Geo/MQuadrangle.h index 6959a9c656d1a17a656d33d5510ca0645a845ba0..c1b08a9fa64a910538928904ba00b073bb3d4214 100644 --- a/Geo/MQuadrangle.h +++ b/Geo/MQuadrangle.h @@ -385,6 +385,7 @@ class MQuadrangleN : public MQuadrangle { } virtual int getTypeForMSH() const { + if(_order==1 && _vs.size() + 4 == 4) return MSH_QUA_4; if(_order==2 && _vs.size() + 4 == 8) return MSH_QUA_8; if(_order==2 && _vs.size() + 4 == 9) return MSH_QUA_9; if(_order==3 && _vs.size() + 4 == 12) return MSH_QUA_12; diff --git a/Geo/MTetrahedron.h b/Geo/MTetrahedron.h index 747349fc5251fa009935b2c10604547b4efd123b..28ff1cd892fcf2e9fac3f5e51741f354259aebe6 100644 --- a/Geo/MTetrahedron.h +++ b/Geo/MTetrahedron.h @@ -367,6 +367,8 @@ class MTetrahedronN : public MTetrahedron { virtual int getTypeForMSH() const { // (p+1)*(p+2)*(p+3)/6 + if(_order == 1 && _vs.size() + 4 == 4) return MSH_TET_4; + if(_order == 2 && _vs.size() + 4 == 10) return MSH_TET_10; if(_order == 3 && _vs.size() + 4 == 20) return MSH_TET_20; if(_order == 4 && _vs.size() + 4 == 34) return MSH_TET_34; if(_order == 4 && _vs.size() + 4 == 35) return MSH_TET_35; diff --git a/Geo/MTriangle.h b/Geo/MTriangle.h index ac0c5195808fe09b1d5ee28fe983c97a7bd382e1..19a1130743e0cad4b28ec7f0e30767857bfbcac4 100644 --- a/Geo/MTriangle.h +++ b/Geo/MTriangle.h @@ -310,6 +310,7 @@ class MTriangleN : public MTriangle { } virtual int getTypeForMSH() const { + if(_order == 1 && _vs.size() == 0) return MSH_TRI_3; if(_order == 2 && _vs.size() == 3) return MSH_TRI_6; if(_order == 3 && _vs.size() == 6) return MSH_TRI_9; if(_order == 3 && _vs.size() == 7) return MSH_TRI_10;