/* 形状関数 */
void WH_Fem__Shape3D__N_arrayIn
(WH_Fem__Element3DType elementType,
int nNodes,
double whV_xi[3],
double OUT__N_arrayIn[/* nNodes */])
/*
入力引数:
nNodes は整数で、要素節点数
whV_xi はベクトルで、自然座標
出力引数:
OUT__N_arrayIn はスカラーの節点配列で、形状関数
*/
{
switch (elementType) {
case WH_FEM__ELEMENT3D__TETRA4N:
WH_Fem__Shape3D__Tetra4N__N_arrayIn
(whV_xi,
OUT__N_arrayIn);
break;
case WH_FEM__ELEMENT3D__TETRA10N:
WH_Fem__Shape3D__Tetra10N__N_arrayIn
(whV_xi,
OUT__N_arrayIn);
break;
case WH_FEM__ELEMENT3D__HEXA8N:
WH_Fem__Shape3D__Hexa8N__N_arrayIn
(whV_xi,
OUT__N_arrayIn);
break;
case WH_FEM__ELEMENT3D__HEXA20N:
WH_Fem__Shape3D__Hexa20N__N_arrayIn
(whV_xi,
OUT__N_arrayIn);
break;
case WH_FEM__ELEMENT3D__HEXA27N:
default:
assert(0);
break;
}
}
/* 形状関数の自然座標についての微分 */
void WH_Fem__Shape3D__whP_N_whV_xi_arrayIn
(WH_Fem__Element3DType elementType,
int nNodes,
double whV_xi[3],
double OUT__whP_N_whV_xi_arrayIn[/* nNodes */][3])
/*
入力引数:
nNodes は整数で、要素節点数
whV_xi はベクトルで、自然座標
出力引数:
OUT__whP_N_whV_xi_arrayIn はベクトルの節点配列で、
形状関数の自然座標に関する微分
*/
{
switch (elementType) {
case WH_FEM__ELEMENT3D__TETRA4N:
WH_Fem__Shape3D__Tetra4N__whP_N_whV_xi_arrayIn
(whV_xi,
OUT__whP_N_whV_xi_arrayIn);
break;
case WH_FEM__ELEMENT3D__TETRA10N:
WH_Fem__Shape3D__Tetra10N__whP_N_whV_xi_arrayIn
(whV_xi,
OUT__whP_N_whV_xi_arrayIn);
break;
case WH_FEM__ELEMENT3D__HEXA8N:
WH_Fem__Shape3D__Hexa8N__whP_N_whV_xi_arrayIn
(whV_xi,
OUT__whP_N_whV_xi_arrayIn);
break;
case WH_FEM__ELEMENT3D__HEXA20N:
WH_Fem__Shape3D__Hexa20N__whP_N_whV_xi_arrayIn
(whV_xi,
OUT__whP_N_whV_xi_arrayIn);
break;
case WH_FEM__ELEMENT3D__HEXA27N:
default:
assert(0);
break;
}
}