From 3d3c3635e5e5e6c1260e1bf3f2028dc777823f5d Mon Sep 17 00:00:00 2001 From: Sebastien Blaise <sebastien.blaise@uclouvain.be> Date: Thu, 22 Nov 2012 09:05:43 +0000 Subject: [PATCH] Added order 0 hexahedrons --- Geo/MElement.cpp | 1 + Geo/MHexahedron.cpp | 2 ++ Numeric/nodalBasis.cpp | 1 + Numeric/nodalBasis.h | 1 + 4 files changed, 5 insertions(+) diff --git a/Geo/MElement.cpp b/Geo/MElement.cpp index bdc5c5132e..d5a221c8bd 100644 --- a/Geo/MElement.cpp +++ b/Geo/MElement.cpp @@ -1508,6 +1508,7 @@ int MElement::OrderFromTag(int tag) case MSH_PRI_198 : return 7; case MSH_PRI_258 : return 8; case MSH_PRI_326 : return 9; + case MSH_HEX_1 : return 0; case MSH_HEX_8 : return 1; case MSH_HEX_27 : return 2; case MSH_HEX_64 : return 3; diff --git a/Geo/MHexahedron.cpp b/Geo/MHexahedron.cpp index b6dc0cedc3..37158d41da 100644 --- a/Geo/MHexahedron.cpp +++ b/Geo/MHexahedron.cpp @@ -213,6 +213,7 @@ const JacobianBasis* MHexahedron::getJacobianFuncSpace(int o) const if ((nv == 0) && (o == -1)) { switch (order) { + case 0: return JacobianBasis::find(MSH_HEX_1); case 1: return JacobianBasis::find(MSH_HEX_8); case 2: return JacobianBasis::find(MSH_HEX_20); case 3: return JacobianBasis::find(MSH_HEX_56); @@ -227,6 +228,7 @@ const JacobianBasis* MHexahedron::getJacobianFuncSpace(int o) const } else { switch (order) { + case 0: return JacobianBasis::find(MSH_HEX_1); case 1: return JacobianBasis::find(MSH_HEX_8); case 2: return JacobianBasis::find(MSH_HEX_27); case 3: return JacobianBasis::find(MSH_HEX_64); diff --git a/Numeric/nodalBasis.cpp b/Numeric/nodalBasis.cpp index ada63ee201..1065e813f2 100644 --- a/Numeric/nodalBasis.cpp +++ b/Numeric/nodalBasis.cpp @@ -1463,6 +1463,7 @@ nodalBasis::nodalBasis(int tag) case MSH_PRI_198 : parentType = TYPE_PRI; order = 7; serendip = true; break; case MSH_PRI_258 : parentType = TYPE_PRI; order = 8; serendip = true; break; case MSH_PRI_326 : parentType = TYPE_PRI; order = 9; serendip = true; break; + case MSH_HEX_1 : parentType = TYPE_HEX; order = 0; serendip = false; break; case MSH_HEX_8 : parentType = TYPE_HEX; order = 1; serendip = false; break; case MSH_HEX_27 : parentType = TYPE_HEX; order = 2; serendip = false; break; case MSH_HEX_64 : parentType = TYPE_HEX; order = 3; serendip = false; break; diff --git a/Numeric/nodalBasis.h b/Numeric/nodalBasis.h index 4584bba32e..19b45a7ad8 100644 --- a/Numeric/nodalBasis.h +++ b/Numeric/nodalBasis.h @@ -150,6 +150,7 @@ inline int nodalBasis::getTag(int parentTag, int order, bool serendip) break; case TYPE_HEX : switch(order) { + case 0 : return MSH_HEX_1; case 1 : return MSH_HEX_8; case 2 : return serendip ? MSH_HEX_20 : MSH_HEX_27; case 3 : return serendip ? MSH_HEX_56 : MSH_HEX_64; -- GitLab