next up previous contents
: 領域積分 : 2次元アイソパラメトリック要素 : ベクトル未知数の勾配   目次

実装

もし、 ベクトル未知数の自由度が各軸方向の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;
  }
}



Hiroshi KAWAI 平成15年4月19日