要素熱伝導行列を厳密積分により求める 関数は、以下のようになる。
/* 要素熱伝導行列:三次元:シンプレックス一次 */
void WH_ThermalFem3D__Linear__Simplex__K_cnd_arrayInJn
(double whV_x_arrayIn[4][3],
double whM_lambda[3][3],
double OUT__K_cnd_arrayInJn[4][4])
/*
入力引数:
whV_x_arrayIn はベクトルの節点配列で、位置(節点座標)
whM_lambda は行列で、熱伝導率の行列
出力引数:
OUT__K_cnd_arrayInJn はスカラーの配列(節点、節点)で、
要素熱伝導行列
*/
{
double V;
double whM_N_x[3][4];
double whM_tmp[3][4];
WH_Fem__Simplex3D__V
(whV_x_arrayIn[0], whV_x_arrayIn[1],
whV_x_arrayIn[2], whV_x_arrayIn[3],
&V);
WH_ThermalFem3D__Linear__Simplex__whM_N_x
(whV_x_arrayIn, V,
whM_N_x);
WH_Matrix__whM_mul_whM_OUT_whM
(3, 3, whM_lambda,
3, 4, whM_N_x,
3, 4, whM_tmp);
WH_Matrix__whTrans_whM_mul_whM_OUT_whM
(3, 4, whM_N_x,
3, 4, whM_tmp,
4, 4, OUT__K_cnd_arrayInJn);
WH_Matrix__whM_mul_s_OUT_whM
(4, 4, OUT__K_cnd_arrayInJn,
V,
4, 4, OUT__K_cnd_arrayInJn);
}