スカラー量の勾配を求める 関数は以下のようになる。
/* スカラー量の勾配 */
void WH_Element2D__whP_f_whV_x
(int nNodes,
double f_arrayIn[/* nNodes */],
double whP_N_whV_x_arrayIn[/* nNodes */][2],
double OUT__whP_f_whV_x[2])
/*
入力引数:
nNodes は要素節点数
f_arrayIn はスカラーの節点配列で、スカラー量
whP_N_whV_x_arrayIn はベクトルの節点配列で、形状関数の勾配
出力引数:
OUT__whP_f_whV_x はベクトルで、スカラー量の勾配
*/
{
int In;
WH_Tensor2D__assign_whV_OUT_whV
(WH_Tensor2D__whV_O,
OUT__whP_f_whV_x);
for (In = 0; In < nNodes; In++) {
double whV_tmp[2];
WH_Tensor2D__s_mul_whV_OUT_whV
(f_arrayIn[In], whP_N_whV_x_arrayIn[In],
whV_tmp);
WH_Tensor2D__whV_add_whV_OUT_whV
(OUT__whP_f_whV_x, whV_tmp,
OUT__whP_f_whV_x);
}
}