next up previous contents
: ベクトル量 : 2次元アイソパラメトリック要素 : スカラー量の勾配   目次

実装

スカラー量の勾配を求める 関数は以下のようになる。

/* スカラー量の勾配 */
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);
  }
}



Hiroshi KAWAI 平成15年4月19日