形状関数の微分を体積座標および自然座標で評価する関数は それぞれ以下のようになる。 これは、全節点の形状関数について一度に計算される。
/* 形状関数の体積座標 L0 についての微分(体積座標で評価) */ void WH_Fem__Shape3D__Tetra4N__whP_N_L0_arrayIn_atVC (double L0, double L1, double L2, double L3, double OUT__whP_N_L0_arrayIn[4]) /* 入力引数: L0, L1, L2, L3 はスカラーで、体積座標 出力引数: OUT__whP_N_L0_arrayIn はスカラーの節点配列で、 形状関数の体積座標 L0 についての微分 */ { OUT__whP_N_L0_arrayIn[0] = 1; OUT__whP_N_L0_arrayIn[1] = 0; OUT__whP_N_L0_arrayIn[2] = 0; OUT__whP_N_L0_arrayIn[3] = 0; } /* 形状関数の体積座標 L1 についての微分(体積座標で評価) */ void WH_Fem__Shape3D__Tetra4N__whP_N_L1_arrayIn_atVC (double L0, double L1, double L2, double L3, double OUT__whP_N_L1_arrayIn[4]) /* 入力引数: L0, L1, L2, L3 はスカラーで、体積座標 出力引数: OUT__whP_N_L1_arrayIn はスカラーの節点配列で、 形状関数の体積座標 L1 についての微分 */ { OUT__whP_N_L1_arrayIn[0] = 0; OUT__whP_N_L1_arrayIn[1] = 1; OUT__whP_N_L1_arrayIn[2] = 0; OUT__whP_N_L1_arrayIn[3] = 0; } /* 形状関数の体積座標 L2 についての微分(体積座標で評価) */ void WH_Fem__Shape3D__Tetra4N__whP_N_L2_arrayIn_atVC (double L0, double L1, double L2, double L3, double OUT__whP_N_L2_arrayIn[4]) /* 入力引数: L0, L1, L2, L3 はスカラーで、体積座標 出力引数: OUT__whP_N_L2_arrayIn はスカラーの節点配列で、 形状関数の体積座標 L2 についての微分 */ { OUT__whP_N_L2_arrayIn[0] = 0; OUT__whP_N_L2_arrayIn[1] = 0; OUT__whP_N_L2_arrayIn[2] = 1; OUT__whP_N_L2_arrayIn[3] = 0; } /* 形状関数の体積座標 L3 についての微分(体積座標で評価) */ void WH_Fem__Shape3D__Tetra4N__whP_N_L3_arrayIn_atVC (double L0, double L1, double L2, double L3, double OUT__whP_N_L3_arrayIn[4]) /* 入力引数: L0, L1, L2, L3 はスカラーで、体積座標 出力引数: OUT__whP_N_L3_arrayIn はスカラーの節点配列で、 形状関数の体積座標 L3 についての微分 */ { OUT__whP_N_L3_arrayIn[0] = 0; OUT__whP_N_L3_arrayIn[1] = 0; OUT__whP_N_L3_arrayIn[2] = 0; OUT__whP_N_L3_arrayIn[3] = 1; } /* 形状関数の自然座標についての微分(自然座標で評価) */ void WH_Fem__Shape3D__Tetra4N__whP_N_whV_xi_arrayIn (double whV_xi[3], double OUT__whP_N_whV_xi_arrayIn[4][3]) /* 入力引数: whV_xi はベクトルで、自然座標 出力引数: OUT__whP_N_whV_xi_arrayIn はベクトルの節点配列で、 形状関数の自然座標に関する微分 */ { OUT__whP_N_whV_xi_arrayIn[0][0] = -1; OUT__whP_N_whV_xi_arrayIn[1][0] = 1; OUT__whP_N_whV_xi_arrayIn[2][0] = 0; OUT__whP_N_whV_xi_arrayIn[3][0] = 0; OUT__whP_N_whV_xi_arrayIn[0][1] = -1; OUT__whP_N_whV_xi_arrayIn[1][1] = 0; OUT__whP_N_whV_xi_arrayIn[2][1] = 1; OUT__whP_N_whV_xi_arrayIn[3][1] = 0; OUT__whP_N_whV_xi_arrayIn[0][2] = -1; OUT__whP_N_whV_xi_arrayIn[1][2] = 0; OUT__whP_N_whV_xi_arrayIn[2][2] = 0; OUT__whP_N_whV_xi_arrayIn[3][2] = 1; }