IFEM  90A354
Classes | Enumerations | Functions | Variables
Immersed Namespace Reference

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.
 

Detailed Description

Utilities for immersed boundary calculations.

Function Documentation

◆ getQuadraturePoints() [1/3]

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.

Parameters
[in]geoObject 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]elmCornerCartesian 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_depthMaximum depth up to which you want to refine
[in]pOrder of the Gauss integration
[out]quadPointsthe 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)
gridPoints 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().

◆ getQuadraturePoints() [2/3]

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.

◆ getQuadraturePoints() [3/3]

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.