形状関数の勾配を自然座標で評価する 関数は以下のようになる。
/* 形状関数の勾配 */
void WH_Fem__Isoparam2D__whP_N_whV_x_arrayIn
(double whPt_whV_x_whV_xi[2][2],
int nNodes,
double whP_N_whV_xi_arrayIn[/* nNodes */][2],
double OUT__whP_N_whV_x_arrayIn[/* nNodes */][2])
/*
入力引数:
whPt_whV_x_whV_xi はテンソルで、Jacobian
nNodes は整数で、要素節点数
whP_N_whV_xi_arrayIn はベクトルの節点配列で、
形状関数の自然座標に関する微分
出力引数:
OUT__whP_N_whV_x_arrayIn はベクトルの節点配列で、
形状関数の勾配
*/
{
int In;
double whPt_whV_xi_whV_x[2][2];
WH_Tensor2D__whInv_whT_OUT_whT
(whPt_whV_x_whV_xi,
whPt_whV_xi_whV_x);
for (In = 0; In < nNodes; In++) {
WH_Tensor2D__whT_cdot_whV_OUT_whV
(whPt_whV_xi_whV_x, whP_N_whV_xi_arrayIn[In],
OUT__whP_N_whV_x_arrayIn[In]);
}
}