/* 領域での積分点数 */ void WH_Fem__NumInt__Gauss3D__nPoints (WH_Fem__Shape3DType shapeType, int order, int *OUT__nPoints) /* 入力引数: shapeType は要素形状のタイプ order は整数で、ガウス積分の次数 出力引数: OUT__nPoints は整数で、積分点数 */ { switch (shapeType) { case WH_FEM__SHAPE3D__TETRA: WH_Fem__NumInt__Gauss3D__Tetra__nPoints (order, OUT__nPoints); break; case WH_FEM__SHAPE3D__HEXA: WH_Fem__NumInt__Gauss3D__Hexa__nPoints (order, OUT__nPoints); break; default: assert(0); break; } } /* 領域での積分点の自然座標 */ void WH_Fem__NumInt__Gauss3D__whV_xi_Ip (WH_Fem__Shape3DType shapeType, int order, int Ip, double OUT__whV_xi_Ip[3]) /* 入力引数: shapeType は要素形状のタイプ order は整数で、ガウス積分の次数 Ip は整数で、積分点ID 出力引数: OUT__whV_xi_Ip はベクトルで、自然座標 */ { switch (shapeType) { case WH_FEM__SHAPE3D__TETRA: WH_Fem__NumInt__Gauss3D__Tetra__whV_xi_Ip (order, Ip, OUT__whV_xi_Ip); break; case WH_FEM__SHAPE3D__HEXA: WH_Fem__NumInt__Gauss3D__Hexa__whV_xi_Ip (order, Ip, OUT__whV_xi_Ip); break; default: assert(0); break; } } /* 領域での積分点の重み係数 */ void WH_Fem__NumInt__Gauss3D__w_Ip (WH_Fem__Shape3DType shapeType, int order, int Ip, double *OUT__w_Ip) /* 入力引数: shapeType は要素形状のタイプ order は整数で、ガウス積分の次数 Ip は整数で、積分点ID 出力引数: OUT__w_Ip はスカラーで、重み係数 */ { switch (shapeType) { case WH_FEM__SHAPE3D__TETRA: WH_Fem__NumInt__Gauss3D__Tetra__w_Ip (order, Ip, OUT__w_Ip); break; case WH_FEM__SHAPE3D__HEXA: WH_Fem__NumInt__Gauss3D__Hexa__w_Ip (order, Ip, OUT__w_Ip); break; default: assert(0); break; } } /* 境界表面上での積分点数 */ void WH_Fem__NumInt__Gauss3D__nPoints_Iface (WH_Fem__Shape3DType shapeType, int order, int Iface, int *OUT__nPoints) /* 入力引数: shapeType は要素形状のタイプ order は整数で、ガウス積分の次数 Iface は整数で、要素面ID 出力引数: OUT__nPoints は整数で、積分点数 */ { switch (shapeType) { case WH_FEM__SHAPE3D__TETRA: WH_Fem__NumInt__Gauss3D__Tetra__nPoints_Iface (order, Iface, OUT__nPoints); break; case WH_FEM__SHAPE3D__HEXA: WH_Fem__NumInt__Gauss3D__Hexa__nPoints_Iface (order, Iface, OUT__nPoints); break; default: assert(0); break; } } /* 境界表面上での積分点の自然座標 */ void WH_Fem__NumInt__Gauss3D__whV_xi_IfaceIp (WH_Fem__Shape3DType shapeType, int order, int Iface, int Ip, double OUT__whV_xi_Ip[3]) /* 入力引数: shapeType は要素形状のタイプ order は整数で、ガウス積分の次数 Iface は整数で、要素面ID Ip は整数で、積分点ID 出力引数: OUT__whV_xi_Ip はベクトルで、自然座標 */ { switch (shapeType) { case WH_FEM__SHAPE3D__TETRA: WH_Fem__NumInt__Gauss3D__Tetra__whV_xi_IfaceIp (order, Iface, Ip, OUT__whV_xi_Ip); break; case WH_FEM__SHAPE3D__HEXA: WH_Fem__NumInt__Gauss3D__Hexa__whV_xi_IfaceIp (order, Iface, Ip, OUT__whV_xi_Ip); break; default: assert(0); break; } } /* 境界表面上での積分点の重み係数 */ void WH_Fem__NumInt__Gauss3D__w_IfaceIp (WH_Fem__Shape3DType shapeType, int order, int Iface, int Ip, double *OUT__w_Ip) /* 入力引数: shapeType は要素形状のタイプ order は整数で、ガウス積分の次数 Iface は整数で、要素面ID Ip は整数で、積分点ID 出力引数: OUT__w_Ip はスカラーで、重み係数 */ { switch (shapeType) { case WH_FEM__SHAPE3D__TETRA: WH_Fem__NumInt__Gauss3D__Tetra__w_IfaceIp (order, Iface, Ip, OUT__w_Ip); break; case WH_FEM__SHAPE3D__HEXA: WH_Fem__NumInt__Gauss3D__Hexa__w_IfaceIp (order, Iface, Ip, OUT__w_Ip); break; default: assert(0); break; } }