グローバル座標系のテンソルをローカル座標系へ変換する関数、および、 ローカル座標系のテンソルをグローバル座標系へ変換する関数を、 それぞれ以下のように実装する。
/* テンソルをグローバルからローカルへ */
void WH_Tensor2D__globalToLocal_whCS_whT_OUT_whT
(double whCS_LCS[2][2],
double whT_X[2][2],
double OUT__whT_bar_X[2][2])
/*
入力引数:
whCS_LCS はローカル座標系
whT_X はグローバルテンソル
出力引数:
OUT__whT_bar_Xはローカルテンソル
*/
{
double whT_P[2][2]; /* 座標変換テンソル */
double whTrans_whT_P[2][2];
double whT_tmp[2][2];
WH_Tensor2D__transformationTensor
(whCS_LCS,
whT_P);
WH_Tensor2D__whTrans_whT_OUT_whT
(whT_P,
whTrans_whT_P);
WH_Tensor2D__whT_cdot_whT_OUT_whT
(whT_P, whT_X,
whT_tmp);
WH_Tensor2D__whT_cdot_whT_OUT_whT
(whT_tmp, whTrans_whT_P,
OUT__whT_bar_X);
}
/* テンソルをローカルからグローバルへ */
void WH_Tensor2D__localToGlobal_whCS_whT_OUT_whT
(double whCS_LCS[2][2],
double whT_bar_X[2][2],
double OUT__whT_X[2][2])
/*
入力引数:
whCS_LCS はローカル座標系
whT_bar_X はローカルテンソル
出力引数:
OUT__whT_Xはグローバルテンソル
*/
{
double whT_P[2][2]; /* 座標変換テンソル */
double whTrans_whT_P[2][2];
double whT_tmp[2][2];
WH_Tensor2D__transformationTensor
(whCS_LCS,
whT_P);
WH_Tensor2D__whTrans_whT_OUT_whT
(whT_P,
whTrans_whT_P);
WH_Tensor2D__whT_cdot_whT_OUT_whT
(whTrans_whT_P, whT_bar_X,
whT_tmp);
WH_Tensor2D__whT_cdot_whT_OUT_whT
(whT_tmp, whT_P,
OUT__whT_X);
}