要素熱伝達行列を厳密積分により求める 関数は、以下のようになる。
/* 要素熱伝達行列:三次元:シンプレックス一次 */ void WH_ThermalFem3D__Linear__Simplex__K_cnv_arrayInJn (int Iface, double whV_x_arrayIn[4][3], double h, double OUT__K_cnv_arrayInJn[4][4]) /* 入力引数: Iface は整数で、要素面ID whV_x_arrayIn はベクトルの節点配列で、位置(節点座標) h はスカラーで、熱伝達係数 出力引数: OUT__K_cnv_arrayInJn はスカラーの配列(節点、節点)で、 要素熱伝達行列 */ { double S; int In, Jn; int Ivertex, Jvertex; assert (0 <= Iface); assert (Iface < 4); WH_Fem__Simplex3D__S (whV_x_arrayIn[0], whV_x_arrayIn[1], whV_x_arrayIn[2], whV_x_arrayIn[3], Iface, &S); for (In = 0; In < 4; In++) { for (Jn = 0; Jn < 4; Jn++) { OUT__K_cnv_arrayInJn[In][Jn] = 0.0; } } for (Ivertex = 0; Ivertex < 3; Ivertex++) { In = WH_Fem__Simplex3D4N__FaceToNode[Iface][Ivertex]; for (Jvertex = 0; Jvertex < 3; Jvertex++) { Jn = WH_Fem__Simplex3D4N__FaceToNode[Iface][Jvertex]; OUT__K_cnv_arrayInJn[In][Jn] = 1.0 / 12 * S * h; } } for (Ivertex = 0; Ivertex < 3; Ivertex++) { In = WH_Fem__Simplex3D4N__FaceToNode[Iface][Ivertex]; OUT__K_cnv_arrayInJn[In][In] = 2.0 / 12 * S * h; } }