形状関数の勾配を自然座標で評価する 関数は以下のようになる。
/* 形状関数の勾配 */ void WH_Fem__Isoparam3D__whP_N_whV_x_arrayIn (double whPt_whV_x_whV_xi[3][3], int nNodes, double whP_N_whV_xi_arrayIn[/* nNodes */][3], double OUT__whP_N_whV_x_arrayIn[/* nNodes */][3]) /* 入力引数: 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[3][3]; WH_Tensor3D__whInv_whT_OUT_whT (whPt_whV_x_whV_xi, whPt_whV_xi_whV_x); for (In = 0; In < nNodes; In++) { WH_Tensor3D__whT_cdot_whV_OUT_whV (whPt_whV_xi_whV_x, whP_N_whV_xi_arrayIn[In], OUT__whP_N_whV_x_arrayIn[In]); } }