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