mapping of HEX7

This commit is contained in:
Joachim Schoeberl 2023-09-26 07:24:41 +02:00
parent b5260849bb
commit 8d99756045
3 changed files with 21 additions and 2 deletions

View File

@ -38,7 +38,7 @@ enum NG_ELEMENT_TYPE {
NG_TRIG = 10, NG_QUAD=11, NG_TRIG6 = 12, NG_QUAD6 = 13, NG_QUAD8 = 14,
NG_TET = 20, NG_TET10 = 21,
NG_PYRAMID = 22, NG_PRISM = 23, NG_PRISM12 = 24, NG_PRISM15 = 27, NG_PYRAMID13 = 28,
NG_HEX = 25, NG_HEX20 = 26
NG_HEX = 25, NG_HEX20 = 26, NG_HEX7 = 29
};
typedef double NG_POINT[3]; // coordinates

View File

@ -22,7 +22,7 @@ enum NG_ELEMENT_TYPE {
NG_TRIG = 10, NG_QUAD=11, NG_TRIG6 = 12, NG_QUAD6 = 13, NG_QUAD8 = 14,
NG_TET = 20, NG_TET10 = 21,
NG_PYRAMID = 22, NG_PRISM = 23, NG_PRISM12 = 24, NG_PRISM15 = 27, NG_PYRAMID13 = 28,
NG_HEX = 25, NG_HEX20 = 26
NG_HEX = 25, NG_HEX20 = 26, NG_HEX7 = 29
};
enum NG_REFINEMENT_TYPE { NG_REFINE_H = 0, NG_REFINE_P = 1, NG_REFINE_HP = 2 };

View File

@ -2088,6 +2088,25 @@ namespace netgen
shape[14] = 4 * y * lam * (2*z*z-z);
break;
}
case HEX7:
{
T y = p(1);
T z = p(2);
T den = (1-y)*(1-z);
den += T(1e-12);
T x = p(0) / den;
shape(0) = (1-x)*(1-y)*(1-z);
shape(1) = ( x)*(1-y)*(1-z);
shape(2) = ( x)*( y)*(1-z);
shape(3) = (1-x)*( y)*(1-z);
shape(4) = (1-x)*(1-y)*( z);
shape(5) = ( x)*(1-y)*( z);
shape(6) = ( y)*( z);
break;
}
case HEX:
{
shape(0) = (1-p(0))*(1-p(1))*(1-p(2));