形状関数の微分を面積座標および自然座標で評価する関数は それぞれ以下のようになる。 これは、全節点の形状関数について一度に計算される。
/* 形状関数の面積座標 L0 についての微分(面積座標で評価) */
void WH_Fem__Shape2D__Tri3N__whP_N_L0_arrayIn_atAC
(double L0, double L1, double L2,
double OUT__whP_N_L0_arrayIn[3])
/*
入力引数:
L0, L1, L2 はスカラーで、面積座標
出力引数:
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;
}
/* 形状関数の面積座標 L1 についての微分(面積座標で評価) */
void WH_Fem__Shape2D__Tri3N__whP_N_L1_arrayIn_atAC
(double L0, double L1, double L2,
double OUT__whP_N_L1_arrayIn[3])
/*
入力引数:
L0, L1, L2 はスカラーで、面積座標
出力引数:
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;
}
/* 形状関数の面積座標 L2 についての微分(面積座標で評価) */
void WH_Fem__Shape2D__Tri3N__whP_N_L2_arrayIn_atAC
(double L0, double L1, double L2,
double OUT__whP_N_L2_arrayIn[3])
/*
入力引数:
L0, L1, L2 はスカラーで、面積座標
出力引数:
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;
}
/* 形状関数の自然座標についての微分(自然座標で評価) */
void WH_Fem__Shape2D__Tri3N__whP_N_whV_xi_arrayIn
(double whV_xi[2],
double OUT__whP_N_whV_xi_arrayIn[3][2])
/*
入力引数:
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[0][1] = -1;
OUT__whP_N_whV_xi_arrayIn[1][1] = 0;
OUT__whP_N_whV_xi_arrayIn[2][1] = 1;
}