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