位置を形状関数で補間する 関数は以下のようになる。
/* 位置の節点座標からの補間 */ void WH_Fem__Isoparam3D__Volume__whV_x (int nNodes, double N_arrayIn[/* nNodes */], double whV_x_arrayIn[/* nNodes */][3], double OUT__whV_x[3]) /* 入力引数: nNodes は整数で、要素節点数 N_arrayIn はスカラーの節点配列で、形状関数 whV_x_arrayIn はベクトルの節点配列で、位置(節点座標) 出力引数: OUT__whV_x はベクトルで、位置 */ { int In; WH_Tensor3D__assign_whV_OUT_whV (WH_Tensor3D__whV_O, OUT__whV_x); for (In = 0; In < nNodes; In++) { double whV_tmp[3]; WH_Tensor3D__whV_mul_s_OUT_whV (whV_x_arrayIn[In], N_arrayIn[In], whV_tmp); WH_Tensor3D__whV_add_whV_OUT_whV (OUT__whV_x, whV_tmp, OUT__whV_x); } }