/* 形状関数 */
void WH_Fem__Shape2D__N_arrayIn
(WH_Fem__Element2DType elementType,
int nNodes,
double whV_xi[2],
double OUT__N_arrayIn[/* nNodes */])
/*
入力引数:
nNodes は整数で、要素節点数
whV_xi はベクトルで、自然座標
出力引数:
OUT__N_arrayIn はスカラーの節点配列で、形状関数
*/
{
switch (elementType) {
case WH_FEM__ELEMENT2D__TRI3N:
WH_Fem__Shape2D__Tri3N__N_arrayIn
(whV_xi,
OUT__N_arrayIn);
break;
case WH_FEM__ELEMENT2D__TRI6N:
WH_Fem__Shape2D__Tri6N__N_arrayIn
(whV_xi,
OUT__N_arrayIn);
break;
case WH_FEM__ELEMENT2D__QUAD4N:
WH_Fem__Shape2D__Quad4N__N_arrayIn
(whV_xi,
OUT__N_arrayIn);
break;
case WH_FEM__ELEMENT2D__QUAD8N:
WH_Fem__Shape2D__Quad8N__N_arrayIn
(whV_xi,
OUT__N_arrayIn);
break;
case WH_FEM__ELEMENT2D__QUAD9N:
default:
assert(0);
break;
}
}
/* 形状関数の自然座標についての微分 */
void WH_Fem__Shape2D__whP_N_whV_xi_arrayIn
(WH_Fem__Element2DType elementType,
int nNodes,
double whV_xi[2],
double OUT__whP_N_whV_xi_arrayIn[/* nNodes */][2])
/*
入力引数:
nNodes は整数で、要素節点数
whV_xi はベクトルで、自然座標
出力引数:
OUT__whP_N_whV_xi_arrayIn はベクトルの節点配列で、
形状関数の自然座標に関する微分
*/
{
switch (elementType) {
case WH_FEM__ELEMENT2D__TRI3N:
WH_Fem__Shape2D__Tri3N__whP_N_whV_xi_arrayIn
(whV_xi,
OUT__whP_N_whV_xi_arrayIn);
break;
case WH_FEM__ELEMENT2D__TRI6N:
WH_Fem__Shape2D__Tri6N__whP_N_whV_xi_arrayIn
(whV_xi,
OUT__whP_N_whV_xi_arrayIn);
break;
case WH_FEM__ELEMENT2D__QUAD4N:
WH_Fem__Shape2D__Quad4N__whP_N_whV_xi_arrayIn
(whV_xi,
OUT__whP_N_whV_xi_arrayIn);
break;
case WH_FEM__ELEMENT2D__QUAD8N:
WH_Fem__Shape2D__Quad8N__whP_N_whV_xi_arrayIn
(whV_xi,
OUT__whP_N_whV_xi_arrayIn);
break;
case WH_FEM__ELEMENT2D__QUAD9N:
default:
assert(0);
break;
}
}