もし、 ベクトル未知数の自由度が各軸方向の2成分により表現される場合、 補間関数勾配テンソルを計算する 関数は以下のようになる。 これは、全節点の全自由度について一度に計算される。
/* 補間関数勾配テンソル */
void WH_Element2D__whT_N_x_arrayInId
(int nNodes,
double whP_N_whV_x_arrayIn[/* nNodes */][2],
double OUT__whT_N_x_arrayInId[/* nNodes */][2][2][2])
/*
入力引数:
nNodes は要素節点数
whP_N_whV_x_arrayIn はベクトルの節点配列で、形状関数の勾配
出力引数:
OUT__whT_N_x_arrayInId はスカラーの節点自由度配列で、
補間関数勾配テンソル
*/
{
int In;
for (In = 0; In < nNodes; In++) {
double whP_N_x = whP_N_whV_x_arrayIn[In][0];
double whP_N_y = whP_N_whV_x_arrayIn[In][1];
OUT__whT_N_x_arrayInId[In][0][0][0] = whP_N_x;
OUT__whT_N_x_arrayInId[In][0][0][1] = whP_N_y;
OUT__whT_N_x_arrayInId[In][0][1][0] = 0;
OUT__whT_N_x_arrayInId[In][0][1][1] = 0;
OUT__whT_N_x_arrayInId[In][1][0][0] = 0;
OUT__whT_N_x_arrayInId[In][1][0][1] = 0;
OUT__whT_N_x_arrayInId[In][1][1][0] = whP_N_x;
OUT__whT_N_x_arrayInId[In][1][1][1] = whP_N_y;
}
}