|
IFEM
90A354
|
Utilities for immersed boundary calculations. More...
Classes | |
| class | Geometry |
| Interface class representing a geometric object. More... | |
Enumerations | |
| enum | Stab { NO_STAB = 0 , ALL_INTERFACES = 1 , SUBDIV_INTERFACES = 2 } |
| Enum defining different stabilizations. | |
Functions | |
| bool | getQuadraturePoints (const Geometry &geo, const std::vector< PointVec > &elmCorner, int max_depth, int p, Real3DMat &quadPoints, ElementBlock *grid=nullptr) |
| Returns the coordinates and weights for the quadrature points. More... | |
| bool | getQuadraturePoints (const Geometry &geo, const utl::Point &X1, const utl::Point &X2, const utl::Point &X3, const utl::Point &X4, int max_depth, int nGauss, RealArray &GP1, RealArray &GP2, RealArray &GPw, ElementBlock *grid=nullptr) |
| Returns the quadrature points for a 2D element. More... | |
| bool | getQuadraturePoints (const Geometry &geo, const utl::Point &X1, const utl::Point &X2, const utl::Point &X3, const utl::Point &X4, const utl::Point &X5, const utl::Point &X6, const utl::Point &X7, const utl::Point &X8, int max_depth, int nGauss, RealArray &GP1, RealArray &GP2, RealArray &GP3, RealArray &GPw) |
| Returns the quadrature points for a 3D element. More... | |
Variables | |
| int | stabilization = Immersed::NO_STAB |
| Stabilization option. | |
| bool | plotCells = false |
| Flags whether subcells should be plotted or not. | |
Utilities for immersed boundary calculations.
| bool Immersed::getQuadraturePoints | ( | const Geometry & | geo, |
| const std::vector< PointVec > & | elmCorner, | ||
| int | max_depth, | ||
| int | p, | ||
| Real3DMat & | quadPoints, | ||
| ElementBlock * | grid = nullptr |
||
| ) |
Returns the coordinates and weights for the quadrature points.
| [in] | geo | Object describing the boundary of the physical geometry. The objects returns the inside/outside status of a given spatial points through its virtual member function Alpha. |
| [in] | elmCorner | Cartesian coordinates of the element corners; first index is the element counter (0 to number of elements minus 1), second index is the corner point counter (0 to 3 in 2D, 0 to 7 in 3D), third index is the coordinate counter (0 to 2) |
| [in] | max_depth | Maximum depth up to which you want to refine |
| [in] | p | Order of the Gauss integration |
| [out] | quadPoints | the quadrature point coordinates and weights; first index is the element counter (0 to number of elements minus 1), second index is the quadrature point counter for each element (0 to number of quadrature points minus 1 for element identified by the first index), third index is the coordinate/weight index (0=xi, 1=eta, 2=weight in 2D, 0=xi, 1=eta, 2=zeta, 3=weight in 3D) |
| grid | Points to an ElementBlock plotting the added grid lines |
The element corner points are ordered according to a standard tensor-product definition of the element, i.e., the index runs fastest in the first parameter direction, then in the second direction, and finally (in 3D) the third direction. The coordinates returned are assumed to be referring to the bi-unit square (tri-unit cube in 3D) of each element, and the weights are standard Gauss quadrature weights, which summs to 2 in the power of number of dimensions.
Referenced by ASMs2DIB::generateFEMTopology(), and ASMu2DIB::generateFEMTopology().
| bool Immersed::getQuadraturePoints | ( | const Geometry & | geo, |
| const utl::Point & | X1, | ||
| const utl::Point & | X2, | ||
| const utl::Point & | X3, | ||
| const utl::Point & | X4, | ||
| const utl::Point & | X5, | ||
| const utl::Point & | X6, | ||
| const utl::Point & | X7, | ||
| const utl::Point & | X8, | ||
| int | max_depth, | ||
| int | nGauss, | ||
| RealArray & | GP1, | ||
| RealArray & | GP2, | ||
| RealArray & | GP3, | ||
| RealArray & | GPw | ||
| ) |
Returns the quadrature points for a 3D element.
This is the function that you will call: Following our discussion, you need to specify the following: Global x,y,z-coordinate pairs of the 8 vertices of the element. Maximum depth up to which you want to refine. Order of the Gauss integration. 4 arrays that contain xi,eta,zeta-coordinates and weights of the Gauss points.
| bool Immersed::getQuadraturePoints | ( | const Geometry & | geo, |
| const utl::Point & | X1, | ||
| const utl::Point & | X2, | ||
| const utl::Point & | X3, | ||
| const utl::Point & | X4, | ||
| int | max_depth, | ||
| int | nGauss, | ||
| RealArray & | GP1, | ||
| RealArray & | GP2, | ||
| RealArray & | GPw, | ||
| ElementBlock * | grid = nullptr |
||
| ) |
Returns the quadrature points for a 2D element.
This is the function that you will call: Following our discussion, you need to specify the following: Global x,y-coordinate pairs of the 4 vertices of the element. Maximum depth up to which you want to refine. Order of the Gauss integration. 3 arrays that contain xi,eta-coordinates and weights of the Gauss points.
References ElementBlock::addLine(), Immersed::Geometry::Alpha(), cell::CellVerts, cell::depth, cell::eta, GaussQuadrature::getCoord(), GaussQuadrature::getWeight(), Vec4::u, Vec3::x, cell::xi, and Vec3::y.