next up previous contents
: テンソルの固有値 と固有ベクトル : 座標変換 : 座標変換   目次

実装

グローバル座標系のテンソルをローカル座標系へ変換する関数、および、 ローカル座標系のテンソルをグローバル座標系へ変換する関数を、 それぞれ以下のように実装する。

/* テンソルをグローバルからローカルへ */
void WH_Tensor3D__globalToLocal_whCS_whT_OUT_whT
(double whCS_LCS[3][3],
 double whT_X[3][3],
 double OUT__whT_bar_X[3][3])
/*
  入力引数:
    whCS_LCS はローカル座標系
    whT_X はグローバルテンソル
  出力引数:
    OUT__whT_bar_Xはローカルテンソル
*/
{
  double whT_P[3][3];   /* 座標変換テンソル */
  double whTrans_whT_P[3][3];
  double whT_tmp[3][3];

  WH_Tensor3D__transformationTensor 
    (whCS_LCS, 
     whT_P);
  WH_Tensor3D__whTrans_whT_OUT_whT 
    (whT_P, 
     whTrans_whT_P);
  WH_Tensor3D__whT_cdot_whT_OUT_whT
    (whT_P, whT_X,
     whT_tmp);
  WH_Tensor3D__whT_cdot_whT_OUT_whT
    (whT_tmp, whTrans_whT_P,
     OUT__whT_bar_X);
}

/* テンソルをローカルからグローバルへ */
void WH_Tensor3D__localToGlobal_whCS_whT_OUT_whT
(double whCS_LCS[3][3],
 double whT_bar_X[3][3],
 double OUT__whT_X[3][3])
/*
  入力引数:
    whCS_LCS はローカル座標系
    whT_bar_X はローカルテンソル
  出力引数:
    OUT__whT_Xはグローバルテンソル
*/
{
  double whT_P[3][3];   /* 座標変換テンソル */
  double whTrans_whT_P[3][3];
  double whT_tmp[3][3];

  WH_Tensor3D__transformationTensor 
    (whCS_LCS, 
     whT_P);
  WH_Tensor3D__whTrans_whT_OUT_whT 
    (whT_P, 
     whTrans_whT_P);
  WH_Tensor3D__whT_cdot_whT_OUT_whT
    (whTrans_whT_P, whT_bar_X,
     whT_tmp);
  WH_Tensor3D__whT_cdot_whT_OUT_whT
    (whT_tmp, whT_P,
     OUT__whT_X);
}



Hiroshi KAWAI 平成15年8月11日