next up previous contents
: 解説 : 応力テンソルと平衡方程式 : 応力テンソルと平衡方程式   目次

実装

平均応力を求める 関数は、2次元と3次元について、それぞれ以下のようになる。

/* 平均応力:2次元 */
void WH_SolidDeformation2D__sigma_m
(double whT_sigma[2][2],
 double *OUT__sigma_m)
/*
  入力引数:
    whT_sigma はテンソルで、応力テンソル
  出力引数:
    OUT__sigma_m はスカラーで、平均応力
*/
{
  WH_Tensor2D__whTr_whT_OUT_s
    (whT_sigma,
     OUT__sigma_m);
  *OUT__sigma_m /= 3;
}

/* 平均応力:3次元 */
void WH_SolidDeformation3D__sigma_m
(double whT_sigma[3][3],
 double *OUT__sigma_m)
/*
  入力引数:
    whT_sigma はテンソルで、応力テンソル
  出力引数:
    OUT__sigma_m はスカラーで、平均応力
*/
{
  WH_Tensor3D__whTr_whT_OUT_s
    (whT_sigma,
     OUT__sigma_m);
  *OUT__sigma_m /= 3;
}

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

/* 偏差応力テンソル:2次元 */
void WH_SolidDeformation2D__whT_sigma_prime
(double whT_sigma[2][2],
 double OUT__whT_sigma_prime[2][2])
/*
  入力引数:
    whT_sigma はテンソルで、応力テンソル
  出力引数:
    OUT__whT_sigma_prime はテンソルで、偏差応力テンソル
*/
{
  double sigma_m;
  double whT_tmp[2][2];

  WH_SolidDeformation2D__sigma_m
   (whT_sigma,
    &sigma_m);
  WH_Tensor2D__s_mul_whT_OUT_whT
    (sigma_m, WH_Tensor2D__whT_I,
     whT_tmp);
  WH_Tensor2D__whT_sub_whT_OUT_whT
    (whT_sigma, whT_tmp,
     OUT__whT_sigma_prime);
}

/* 偏差応力テンソル:3次元 */
void WH_SolidDeformation3D__whT_sigma_prime
(double whT_sigma[3][3],
 double OUT__whT_sigma_prime[3][3])
/*
  入力引数:
    whT_sigma はテンソルで、応力テンソル
  出力引数:
    OUT__whT_sigma_prime はテンソルで、偏差応力テンソル
*/
{
  double sigma_m;
  double whT_tmp[3][3];

  WH_SolidDeformation3D__sigma_m
   (whT_sigma,
    &sigma_m);
  WH_Tensor3D__s_mul_whT_OUT_whT
    (sigma_m, WH_Tensor3D__whT_I,
     whT_tmp);
  WH_Tensor3D__whT_sub_whT_OUT_whT
    (whT_sigma, whT_tmp,
     OUT__whT_sigma_prime);
}

第1Piola-Kirchhoff応力テンソルを求める 関数は、2次元と3次元について、それぞれ以下のようになる。

/* 第1Piola-Kirchhoff応力テンソル:2次元 */
void WH_SolidDeformation2D__whT_tau
(double whT_sigma[2][2],
 double whT_F[2][2],
 double OUT__whT_tau[2][2])
/*
  入力引数:
    whT_sigma はテンソルで、Cauchy応力テンソル
    whT_F はテンソルで、変形勾配テンソル
  出力引数:
    OUT__whT_tau はテンソルで、
      第1Piola-Kirchhoff応力テンソル
*/
{
  double J;

  WH_SolidDeformation2D__J
   (whT_F,
    &J);
  WH_Tensor2D__s_mul_whT_OUT_whT
    (J, whT_sigma,
     OUT__whT_tau);
}

/* 第1Piola-Kirchhoff応力テンソル:3次元 */
void WH_SolidDeformation3D__whT_tau
(double whT_sigma[3][3],
 double whT_F[3][3],
 double OUT__whT_tau[3][3])
/*
  入力引数:
    whT_sigma はテンソルで、Cauchy応力テンソル
    whT_F はテンソルで、変形勾配テンソル
  出力引数:
    OUT__whT_tau はテンソルで、
      第1Piola-Kirchhoff応力テンソル
*/
{
  double J;

  WH_SolidDeformation3D__J
   (whT_F,
    &J);
  WH_Tensor3D__s_mul_whT_OUT_whT
    (J, whT_sigma,
     OUT__whT_tau);
}

第2Piola-Kirchhoff応力テンソルを求める 関数は、2次元と3次元について、それぞれ以下のようになる。

/* 第2Piola-Kirchhoff応力テンソル:2次元 */
void WH_SolidDeformation2D__whT_S
(double whT_sigma[2][2],
 double whT_F[2][2],
 double OUT__whT_S[2][2])
/*
  入力引数:
    whT_sigma はテンソルで、Cauchy応力テンソル
    whT_F はテンソルで、変形勾配テンソル
  出力引数:
    OUT__whT_S はテンソルで、
      第2Piola-Kirchhoff応力テンソル
*/
{
  double J;
  double whT_tmp0[2][2];
  double whT_tmp1[2][2];
  double whT_tmp2[2][2];
  double whT_tmp3[2][2];

  WH_SolidDeformation2D__J
   (whT_F,
    &J);
  WH_Tensor2D__whInv_whT_OUT_whT
    (whT_F,
     whT_tmp0);
  WH_Tensor2D__s_mul_whT_OUT_whT
    (J, whT_tmp0,
     whT_tmp1);
  WH_Tensor2D__whT_cdot_whT_OUT_whT
    (whT_tmp1, whT_sigma,
     whT_tmp2);
  WH_Tensor2D__whTrans_whT_OUT_whT
    (whT_tmp0,
     whT_tmp3);
  WH_Tensor2D__whT_cdot_whT_OUT_whT
    (whT_tmp2, whT_tmp3,
     OUT__whT_S);
}

/* 第2Piola-Kirchhoff応力テンソル:3次元 */
void WH_SolidDeformation3D__whT_S
(double whT_sigma[3][3],
 double whT_F[3][3],
 double OUT__whT_S[3][3])
/*
  入力引数:
    whT_sigma はテンソルで、Cauchy応力テンソル
    whT_F はテンソルで、変形勾配テンソル
  出力引数:
    OUT__whT_S はテンソルで、
      第2Piola-Kirchhoff応力テンソル
*/
{
  double J;
  double whT_tmp0[3][3];
  double whT_tmp1[3][3];
  double whT_tmp2[3][3];
  double whT_tmp3[3][3];

  WH_SolidDeformation3D__J
   (whT_F,
    &J);
  WH_Tensor3D__whInv_whT_OUT_whT
    (whT_F,
     whT_tmp0);
  WH_Tensor3D__s_mul_whT_OUT_whT
    (J, whT_tmp0,
     whT_tmp1);
  WH_Tensor3D__whT_cdot_whT_OUT_whT
    (whT_tmp1, whT_sigma,
     whT_tmp2);
  WH_Tensor3D__whTrans_whT_OUT_whT
    (whT_tmp0,
     whT_tmp3);
  WH_Tensor3D__whT_cdot_whT_OUT_whT
    (whT_tmp2, whT_tmp3,
     OUT__whT_S);
}



Hiroshi KAWAI 平成15年4月19日