グローバル座標系のテンソルをローカル座標系へ変換する関数、および、 ローカル座標系のテンソルをグローバル座標系へ変換する関数を、 それぞれ以下のように実装する。
/* テンソルをグローバルからローカルへ */ 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); }