稜線上の線積分の変換子
を評価する
関数は以下のようになる。
/* 稜線上の線積分の変換子 */
void WH_Fem__Isoparam2D__Quad__J_l_Iedge
(int Iedge,
double whPt_whV_x_whV_xi[2][2],
double a,
double *OUT__J_l)
/*
入力引数:
Iedge は整数で、要素辺ID
whPt_whV_x_whV_xi はテンソルで、Jacobian
a はスカラーで、厚み
出力引数:
OUT__J_l はスカラーで、線積分の変換子
*/
{
double whP_whV_x_xi[2];
double whP_whV_x_eta[2];
double tmp;
whP_whV_x_xi[0] = whPt_whV_x_whV_xi[0][0];
whP_whV_x_xi[1] = whPt_whV_x_whV_xi[0][1];
whP_whV_x_eta[0] = whPt_whV_x_whV_xi[1][0];
whP_whV_x_eta[1] = whPt_whV_x_whV_xi[1][1];
switch (Iedge) {
case 3: /* -xi */
case 1: /* +xi */
WH_Tensor2D__whLen_whV_OUT_s
(whP_whV_x_eta,
&tmp);
break;
case 0: /* -eta */
case 2: /* +eta */
WH_Tensor2D__whLen_whV_OUT_s
(whP_whV_x_xi,
&tmp);
break;
default:
assert(0);
break;
}
*OUT__J_l = a * tmp;
}