next up previous contents
: 二次 : 形状関数の勾配 : 形状関数の勾配   目次

実装

形状関数の勾配を面積座標で評価する関数は それぞれ以下のようになる。 これは、全節点の形状関数について一度に計算される。

/* 形状関数の勾配(面積座標で評価) */
void WH_Fem__Simplex2D3N__whP_N_whV_x_arrayIn
(double whV_x0[2], 
 double whV_x1[2], 
 double whV_x2[2],
 double L0, double L1, double L2,
 double OUT__whP_N_whV_x_arrayIn[3][2])
/*
  入力引数:
    whV_x0, whV_x1, whV_x2 はベクトルで、各頂点の位置
    L0, L1, L2 はスカラーで、面積座標
  出力引数:
    OUT__whP_N_whV_x_arrayIn はベクトルの節点配列で、
      形状関数の勾配
*/
{
  double S;
  double b0, b1, b2;
  double c0, c1, c2;
  
  WH_Fem__Simplex2D__S
    (whV_x0, whV_x1, whV_x2, 
     &S);
  WH_Fem__Simplex2D__bc
    (whV_x0, whV_x1, whV_x2, S,
     &b0, &b1, &b2, 
     &c0, &c1, &c2);

  OUT__whP_N_whV_x_arrayIn[0][0] = b0;
  OUT__whP_N_whV_x_arrayIn[1][0] = b1;
  OUT__whP_N_whV_x_arrayIn[2][0] = b2;

  OUT__whP_N_whV_x_arrayIn[0][1] = c0;
  OUT__whP_N_whV_x_arrayIn[1][1] = c1;
  OUT__whP_N_whV_x_arrayIn[2][1] = c2;
}



Hiroshi KAWAI 平成15年8月11日