弾性定数テンソルを求める 関数は、以下のようになる。
/* 弾性定数テンソル: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; }