/* 領域での積分点数 */ void WH_Fem__NumInt__Gauss2D__nPoints (WH_Fem__Shape2DType shapeType, int order, int *OUT__nPoints) /* 入力引数: shapeType は要素形状のタイプ order は整数で、ガウス積分の次数 出力引数: OUT__nPoints は整数で、積分点数 */ { switch (shapeType) { case WH_FEM__SHAPE2D__TRI: WH_Fem__NumInt__Gauss2D__Tri__nPoints (order, OUT__nPoints); break; case WH_FEM__SHAPE2D__QUAD: WH_Fem__NumInt__Gauss2D__Quad__nPoints (order, OUT__nPoints); break; default: assert(0); break; } } /* 領域での積分点の自然座標 */ void WH_Fem__NumInt__Gauss2D__whV_xi_Ip (WH_Fem__Shape2DType shapeType, int order, int Ip, double OUT__whV_xi_Ip[2]) /* 入力引数: shapeType は要素形状のタイプ order は整数で、ガウス積分の次数 Ip は整数で、積分点ID 出力引数: OUT__whV_xi_Ip はベクトルで、自然座標 */ { switch (shapeType) { case WH_FEM__SHAPE2D__TRI: WH_Fem__NumInt__Gauss2D__Tri__whV_xi_Ip (order, Ip, OUT__whV_xi_Ip); break; case WH_FEM__SHAPE2D__QUAD: WH_Fem__NumInt__Gauss2D__Quad__whV_xi_Ip (order, Ip, OUT__whV_xi_Ip); break; default: assert(0); break; } } /* 領域での積分点の重み係数 */ void WH_Fem__NumInt__Gauss2D__w_Ip (WH_Fem__Shape2DType shapeType, int order, int Ip, double *OUT__w_Ip) /* 入力引数: shapeType は要素形状のタイプ order は整数で、ガウス積分の次数 Ip は整数で、積分点ID 出力引数: OUT__w_Ip はスカラーで、重み係数 */ { switch (shapeType) { case WH_FEM__SHAPE2D__TRI: WH_Fem__NumInt__Gauss2D__Tri__w_Ip (order, Ip, OUT__w_Ip); break; case WH_FEM__SHAPE2D__QUAD: WH_Fem__NumInt__Gauss2D__Quad__w_Ip (order, Ip, OUT__w_Ip); break; default: assert(0); break; } } /* 境界稜線上での積分点数 */ void WH_Fem__NumInt__Gauss2D__nPoints_Iedge (WH_Fem__Shape2DType shapeType, int order, int Iedge, int *OUT__nPoints) /* 入力引数: shapeType は要素形状のタイプ order は整数で、ガウス積分の次数 Iedge は整数で、要素辺ID 出力引数: OUT__nPoints は整数で、積分点数 */ { switch (shapeType) { case WH_FEM__SHAPE2D__TRI: WH_Fem__NumInt__Gauss2D__Tri__nPoints_Iedge (order, Iedge, OUT__nPoints); break; case WH_FEM__SHAPE2D__QUAD: WH_Fem__NumInt__Gauss2D__Quad__nPoints_Iedge (order, Iedge, OUT__nPoints); break; default: assert(0); break; } } /* 境界稜線上での積分点の自然座標 */ void WH_Fem__NumInt__Gauss2D__whV_xi_IedgeIp (WH_Fem__Shape2DType shapeType, int order, int Iedge, int Ip, double OUT__whV_xi_Ip[2]) /* 入力引数: shapeType は要素形状のタイプ order は整数で、ガウス積分の次数 Iedge は整数で、要素辺ID Ip は整数で、積分点ID 出力引数: OUT__whV_xi_Ip はベクトルで、自然座標 */ { switch (shapeType) { case WH_FEM__SHAPE2D__TRI: WH_Fem__NumInt__Gauss2D__Tri__whV_xi_IedgeIp (order, Iedge, Ip, OUT__whV_xi_Ip); break; case WH_FEM__SHAPE2D__QUAD: WH_Fem__NumInt__Gauss2D__Quad__whV_xi_IedgeIp (order, Iedge, Ip, OUT__whV_xi_Ip); break; default: assert(0); break; } } /* 境界稜線上での積分点の重み係数 */ void WH_Fem__NumInt__Gauss2D__w_IedgeIp (WH_Fem__Shape2DType shapeType, int order, int Iedge, int Ip, double *OUT__w_Ip) /* 入力引数: shapeType は要素形状のタイプ order は整数で、ガウス積分の次数 Iedge は整数で、要素辺ID Ip は整数で、積分点ID 出力引数: OUT__w_Ip はスカラーで、重み係数 */ { switch (shapeType) { case WH_FEM__SHAPE2D__TRI: WH_Fem__NumInt__Gauss2D__Tri__w_IedgeIp (order, Iedge, Ip, OUT__w_Ip); break; case WH_FEM__SHAPE2D__QUAD: WH_Fem__NumInt__Gauss2D__Quad__w_IedgeIp (order, Iedge, Ip, OUT__w_Ip); break; default: assert(0); break; } }