弾性定数テンソルを求める 関数は、以下のようになる。
/* 弾性定数テンソル:2次元平面歪み */
void WH_LinearElastic2D__PlaneStrain__whT4_C_e
(double E,
double nu,
double OUT__whT4_C_e[2][2][2][2])
/*
入力引数:
E はスカラーで、ヤング率
nu はスカラーで、ポアソン比
出力引数:
OUT__whT4_C_e は4階テンソルで、弾性定数テンソル
*/
{
double G;
WH_Tensor2D__assign_whT4_OUT_whT4
(WH_Tensor2D__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]
= (E * (1 - nu)) / ((1 + nu) * (1 - 2 * nu))
OUT__whT4_C_e[0][0][1][1]
= OUT__whT4_C_e[1][1][0][0]
= (E * nu) / ((1 + nu) * (1 - 2 * nu));
OUT__whT4_C_e[0][1][0][1]
= OUT__whT4_C_e[1][0][1][0]
= 2 * G;
}