next up previous contents
: 解説 : 3次元ソリッド : 3次元ソリッド   目次

実装

弾性定数テンソルを求める 関数は、以下のようになる。

/* 弾性定数テンソル:3次元ソリッド */
void WH_LinearElastic3D__Solid__whT4_C_e
(double E,
 double nu,
 double OUT__whT4_C_e[3][3][3][3])
/*
  入力引数:
    E はスカラーで、ヤング率
    nu はスカラーで、ポアソン比
  出力引数:
    OUT__whT4_C_e は4階テンソルで、弾性定数テンソル
*/
{
  double G;

  WH_Tensor3D__assign_whT4_OUT_whT4
    (WH_Tensor3D__whT4_O,
     OUT__whT4_C_e);
  WH_LinearElastic__G
    (E, nu,
     &G);

  OUT__whT4_C_e[0][0][0][0] 
    = OUT__whT4_C_e[1][1][1][1] 
    = OUT__whT4_C_e[2][2][2][2] 
    = (E * (1 - nu)) / ((1 + nu) * (1 - 2 * nu))    
    
  OUT__whT4_C_e[0][0][1][1] 
    = OUT__whT4_C_e[1][1][2][2] 
    = OUT__whT4_C_e[2][2][0][0] 
    = OUT__whT4_C_e[1][1][0][0] 
    = OUT__whT4_C_e[2][2][1][1] 
    = OUT__whT4_C_e[0][0][2][2] 
    = (E * nu) / ((1 + nu) * (1 - 2 * nu));

  OUT__whT4_C_e[0][1][0][1] 
    = OUT__whT4_C_e[1][2][1][2] 
    = OUT__whT4_C_e[2][0][2][0] 
    = OUT__whT4_C_e[1][0][1][0] 
    = OUT__whT4_C_e[2][1][2][1] 
    = OUT__whT4_C_e[0][2][0][2] 
    = 2 * G;
}



Hiroshi KAWAI 平成15年4月19日