next up previous contents
: 形状関数の微分 : 形状関数 : 形状関数   目次

実装

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

/* 形状関数(体積座標で評価) */
void WH_Fem__Shape3D__Tetra10N__N_arrayIn_atVC
(double L0, double L1, double L2, double L3,
 double OUT__N_arrayIn[10])
/*
  入力引数:
    L0, L1, L2, L3 はスカラーで、体積座標
  出力引数:
    OUT__N_arrayIn はスカラーの節点配列で、形状関数
*/
{
  OUT__N_arrayIn[0] =  L0 * (2 * L0 - 1);
  OUT__N_arrayIn[1] =  L1 * (2 * L1 - 1);
  OUT__N_arrayIn[2] =  L2 * (2 * L2 - 1);
  OUT__N_arrayIn[3] =  L3 * (2 * L3 - 1);
  OUT__N_arrayIn[4] =  4 * L0 * L1;
  OUT__N_arrayIn[5] =  4 * L0 * L2;
  OUT__N_arrayIn[6] =  4 * L0 * L3;
  OUT__N_arrayIn[7] =  4 * L1 * L2;
  OUT__N_arrayIn[8] =  4 * L2 * L3;
  OUT__N_arrayIn[9] =  4 * L3 * L1;
}

/* 形状関数(自然座標で評価) */
void WH_Fem__Shape3D__Tetra10N__N_arrayIn
(double whV_xi[3],
 double OUT__N_arrayIn[10])
/*
  入力引数:
    whV_xi はベクトルで、自然座標
  出力引数:
    OUT__N_arrayIn はスカラーの節点配列で、形状関数
*/
{
  double L0, L1, L2, L3;

  WH_Fem__Shape3D__Tetra__NaturalToVolume
    (whV_xi,
     &L0, &L1, &L2, &L3);
  WH_Fem__Shape3D__Tetra10N__N_arrayIn_atVC
    (L0, L1, L2, L3,
     OUT__N_arrayIn);
}



Hiroshi KAWAI 平成15年8月11日