next up previous contents
: 解説 : 歪みテンソル : 歪みテンソル   目次

実装

Green-Lagrange歪みテンソルを求める 関数は、2次元と3次元について、それぞれ以下のようになる。

/* Green-Lagrange歪みテンソル:2次元 */
void WH_SolidDeformation2D__whT_E
(double whT_Z[2][2],
 double OUT__whT_E[2][2])
/*
  入力引数:
    whT_Z はテンソルで、変位勾配テンソル
  出力引数:
    OUT__whT_E はテンソルで、Green-Lagrange歪みテンソル
*/
{
  double whT_tmp0[2][2];
  double whT_tmp1[2][2];
  double whT_tmp2[2][2];
  double whT_tmp3[2][2];

  WH_Tensor2D__whSym_whT_OUT_whT 
    (whT_Z,
     whT_tmp0);
  WH_Tensor2D__whTrans_whT_OUT_whT 
    (whT_Z,
     whT_tmp1);
  WH_Tensor2D__s_mul_whT_OUT_whT 
    (0.5, whT_tmp1, 
     whT_tmp2);
  WH_Tensor2D__whT_cdot_whT_OUT_whT 
    (whT_tmp2, whT_Z, 
     whT_tmp3);
  WH_Tensor2D__whT_add_whT_OUT_whT 
    (whT_tmp0, whT_tmp3, 
     OUT__whT_E);
}

/* Green-Lagrange歪みテンソル:3次元 */
void WH_SolidDeformation3D__whT_E
(double whT_Z[3][3],
 double OUT__whT_E[3][3])
/*
  入力引数:
    whT_Z はテンソルで、変位勾配テンソル
  出力引数:
    OUT__whT_E はテンソルで、Green-Lagrange歪みテンソル
*/
{
  double whT_tmp0[3][3];
  double whT_tmp1[3][3];
  double whT_tmp2[3][3];
  double whT_tmp3[3][3];

  WH_Tensor3D__whSym_whT_OUT_whT 
    (whT_Z,
     whT_tmp0);
  WH_Tensor3D__whTrans_whT_OUT_whT 
    (whT_Z,
     whT_tmp1);
  WH_Tensor3D__s_mul_whT_OUT_whT 
    (0.5, whT_tmp1, 
     whT_tmp2);
  WH_Tensor3D__whT_cdot_whT_OUT_whT 
    (whT_tmp2, whT_Z, 
     whT_tmp3);
  WH_Tensor3D__whT_add_whT_OUT_whT 
    (whT_tmp0, whT_tmp3, 
     OUT__whT_E);
}

Almansi歪みテンソルを求める 関数は、2次元と3次元について、それぞれ以下のようになる。

/* Almansi歪みテンソル:2次元 */
void WH_SolidDeformation2D__whT_A
(double whT_Y[2][2],
 double OUT__whT_A[2][2])
/*
  入力引数:
    whT_Y はテンソルで、現時刻における変位勾配テンソル
  出力引数:
    OUT__whT_A はテンソルで、Almansi歪みテンソル
*/
{
  double whT_tmp0[2][2];
  double whT_tmp1[2][2];
  double whT_tmp2[2][2];
  double whT_tmp3[2][2];

  WH_Tensor2D__whSym_whT_OUT_whT 
    (whT_Y,
     whT_tmp0);
  WH_Tensor2D__whTrans_whT_OUT_whT 
    (whT_Y,
     whT_tmp1);
  WH_Tensor2D__s_mul_whT_OUT_whT 
    (0.5, whT_tmp1, 
     whT_tmp2);
  WH_Tensor2D__whT_cdot_whT_OUT_whT 
    (whT_tmp2, whT_Y, 
     whT_tmp3);
  WH_Tensor2D__whT_sub_whT_OUT_whT 
    (whT_tmp0, whT_tmp3, 
     OUT__whT_A);
}

/* Almansi歪みテンソル:3次元 */
void WH_SolidDeformation3D__whT_A
(double whT_Y[3][3],
 double OUT__whT_A[3][3])
/*
  入力引数:
    whT_Y はテンソルで、現時刻における変位勾配テンソル
  出力引数:
    OUT__whT_A はテンソルで、Almansi歪みテンソル
*/
{
  double whT_tmp0[3][3];
  double whT_tmp1[3][3];
  double whT_tmp2[3][3];
  double whT_tmp3[3][3];

  WH_Tensor3D__whSym_whT_OUT_whT 
    (whT_Y,
     whT_tmp0);
  WH_Tensor3D__whTrans_whT_OUT_whT 
    (whT_Y,
     whT_tmp1);
  WH_Tensor3D__s_mul_whT_OUT_whT 
    (0.5, whT_tmp1, 
     whT_tmp2);
  WH_Tensor3D__whT_cdot_whT_OUT_whT 
    (whT_tmp2, whT_Y, 
     whT_tmp3);
  WH_Tensor3D__whT_sub_whT_OUT_whT 
    (whT_tmp0, whT_tmp3, 
     OUT__whT_A);
}



Hiroshi KAWAI 平成15年4月19日