next up previous contents
: 四面体 : 三次元 : 三次元   目次

実装

/* 形状関数 */
void WH_Fem__Shape3D__N_arrayIn
(WH_Fem__Element3DType elementType,
 int nNodes,
 double whV_xi[3],
 double OUT__N_arrayIn[/* nNodes */])
/*
  入力引数:
    nNodes は整数で、要素節点数
    whV_xi はベクトルで、自然座標
  出力引数:
    OUT__N_arrayIn はスカラーの節点配列で、形状関数
*/
{
  switch (elementType) {
  case WH_FEM__ELEMENT3D__TETRA4N:
    WH_Fem__Shape3D__Tetra4N__N_arrayIn
      (whV_xi,
       OUT__N_arrayIn);
    break;
  case WH_FEM__ELEMENT3D__TETRA10N:
    WH_Fem__Shape3D__Tetra10N__N_arrayIn
      (whV_xi,
       OUT__N_arrayIn);
    break;
  case WH_FEM__ELEMENT3D__HEXA8N:
    WH_Fem__Shape3D__Hexa8N__N_arrayIn
      (whV_xi,
       OUT__N_arrayIn);
    break;
  case WH_FEM__ELEMENT3D__HEXA20N:
    WH_Fem__Shape3D__Hexa20N__N_arrayIn
      (whV_xi,
       OUT__N_arrayIn);
    break;
  case WH_FEM__ELEMENT3D__HEXA27N:
  default:
    assert(0);
    break;
  }
}

/* 形状関数の自然座標についての微分 */
void WH_Fem__Shape3D__whP_N_whV_xi_arrayIn
(WH_Fem__Element3DType elementType,
 int nNodes,
 double whV_xi[3],
 double OUT__whP_N_whV_xi_arrayIn[/* nNodes */][3])
/*
  入力引数:
    nNodes は整数で、要素節点数
    whV_xi はベクトルで、自然座標
  出力引数:
    OUT__whP_N_whV_xi_arrayIn はベクトルの節点配列で、
      形状関数の自然座標に関する微分
*/
{
  switch (elementType) {
  case WH_FEM__ELEMENT3D__TETRA4N:
    WH_Fem__Shape3D__Tetra4N__whP_N_whV_xi_arrayIn
      (whV_xi,
       OUT__whP_N_whV_xi_arrayIn);
    break;
  case WH_FEM__ELEMENT3D__TETRA10N:
    WH_Fem__Shape3D__Tetra10N__whP_N_whV_xi_arrayIn
      (whV_xi,
       OUT__whP_N_whV_xi_arrayIn);
    break;
  case WH_FEM__ELEMENT3D__HEXA8N:
    WH_Fem__Shape3D__Hexa8N__whP_N_whV_xi_arrayIn
      (whV_xi,
       OUT__whP_N_whV_xi_arrayIn);
    break;
  case WH_FEM__ELEMENT3D__HEXA20N:
    WH_Fem__Shape3D__Hexa20N__whP_N_whV_xi_arrayIn
      (whV_xi,
       OUT__whP_N_whV_xi_arrayIn);
    break;
  case WH_FEM__ELEMENT3D__HEXA27N:
  default:
    assert(0);
    break;
  }
}



Hiroshi KAWAI 平成15年8月11日