next up previous contents
: 解説 : 要素熱伝達行列 : 要素熱伝達行列   目次

実装

要素熱伝達行列を厳密積分により求める 関数は、以下のようになる。

/* 要素熱伝達行列:三次元:シンプレックス一次 */
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;
  }
}



Hiroshi KAWAI 平成15年8月11日