稜線上の線積分の変換子 を評価する 関数は以下のようになる。
/* 稜線上の線積分の変換子 */ 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; }