Documentation 6b54b78464
Loading...
Searching...
No Matches
CFEMStandardBoundaryFace Class Reference

Class to define a FEM standard boundary face. More...

#include <fem_standard_element.hpp>

Inheritance diagram for CFEMStandardBoundaryFace:
[legend]

Public Member Functions

 CFEMStandardBoundaryFace (unsigned short val_VTK_TypeFace, unsigned short val_VTK_TypeElem, unsigned short val_nPolyElem, bool val_constJac, bool val_swapFaceInElement, CConfig *config, unsigned short val_orderExact=0)
 Alternative constructor.
 
 CFEMStandardBoundaryFace (const CFEMStandardBoundaryFace &other)
 Copy constructor.
 
CFEMStandardBoundaryFace & operator= (const CFEMStandardBoundaryFace &other)
 Assignment operator.
 
const su2double * GetDrBasisElemIntegration (void) const
 Function, which makes available the r-derivatives of the element basis functions in the integration points.
 
const su2double * GetDsBasisElemIntegration (void) const
 Function, which makes available the s-derivatives of the element basis functions in the integration points.
 
const su2double * GetDtBasisElemIntegration (void) const
 Function, which makes available the t-derivatives of the element basis functions in the integration points.
 
const su2double * GetMatDerBasisElemIntegration (void) const
 Function, which makes available the matrix with the derivatives of the element basis functions in the integration points.
 
const su2double * GetMatDerBasisElemIntegrationTranspose (void) const
 Function, which makes available the transpose of the matrix with the derivatives of the element basis functions in the integration points.
 
const su2double * GetBasisFaceIntegration (void) const
 Function, which makes available the face basis functions in the integration points.
 
const su2double * GetBasisFaceIntegrationTranspose (void) const
 Function, which makes available transpose matrix of the face basis functions in the integration points.
 
const su2double * GetDrBasisFaceIntegration (void) const
 Function, which makes available the r-derivatives of the face basis functions in the integration points.
 
const su2double * GetDsBasisFaceIntegration (void) const
 Function, which makes available the s-derivatives of the face basis functions in the integration points.
 
unsigned short GetNDOFsElem (void) const
 Function, which makes available the number of DOFs of the adjacent element.
 
unsigned short GetNDOFsFace (void) const
 Function, which makes available the number of DOFs of the face.
 
unsigned short GetNSubFaces (void) const
 Function, which makes available the number of linear subfaces used for plotting, among others.
 
unsigned short GetNDOFsPerSubFace (void) const
 Function, which makes available the number of DOFs of a linear subface, used for plotting, among others, plotting.
 
su2double GetPenaltyConstant (void) const
 Function, which makes available the penalty constant for this standard face.
 
const unsigned short * GetSubFaceConn (void) const
 Function, which makes available the the connectivity of the linear subfaces as a const pointer.
 
bool SameStandardBoundaryFace (unsigned short val_VTK_TypeFace, bool val_constJac, unsigned short val_VTK_TypeElem, unsigned short val_nPolyElem, bool val_swapFaceInElem)
 Function, which checks if the function arguments correspond to this standard face.
 
passivedouble WorkEstimateMetis (CConfig *config)
 Function, which estimates the amount of work for an element of this type. This information is used to determine a well balanced partition.
 
passivedouble WorkEstimateMetisWallFunctions (CConfig *config, const unsigned short nPointsWF)
 Function, which estimates the additional amount of work for an element of this type when a wall function treatment is used. This information is used to determine a well balanced partition.
 
- Public Member Functions inherited from CFEMStandardElementBase
 CFEMStandardElementBase ()=default
 Constructor. Nothing to be done.
 
virtual ~CFEMStandardElementBase ()=default
 Destructor. Nothing to be done, because the vectors are deleted automatically.
 
unsigned short GetVTK_Type (void) const
 Function, which makes available the type of the element.
 
const su2double * GetWeightsIntegration (void) const
 Function, which makes available the weights in the integration points.
 
unsigned short GetNIntegration (void) const
 Function, which makes available the number of integration points for this standard element.
 
unsigned short GetOrderExact (void) const
 Function, which makes available the polynomial order that must be integrated exactly.
 
void GradVandermonde1D (unsigned short nDOFs, const vector< su2double > &r, vector< su2double > &VDr)
 Function, which computes the gradient of the Vandermonde matrix for a standard 1D edge.
 
void Vandermonde1D (unsigned short nDOFs, const vector< su2double > &r, vector< su2double > &V)
 Function, which computes the Vandermonde matrix for a standard 1D edge.
 

Additional Inherited Members

- Static Public Member Functions inherited from CFEMStandardElementBase
static unsigned short GetNDOFsStatic (unsigned short VTK_Type, unsigned short nPoly, unsigned long typeErrorMessage=0)
 Static function, which makes available the number of DOFs for an element corresponding to the arguments.
 
static void InverseMatrix (unsigned short n, vector< su2double > &A)
 Static function, which computes the inverse of the given square matrix.
 
- Protected Member Functions inherited from CFEMStandardElementBase
 CFEMStandardElementBase (unsigned short val_VTK_Type, unsigned short val_nPoly, bool val_constJac, CConfig *config, unsigned short val_orderExact)
 Alternative constructor.
 
void CheckSumDerivativesLagrangianBasisFunctions (const unsigned short nPoints, const unsigned short nDOFs, const vector< su2double > &dLagBasisPoints)
 Function, which checks if the sum of the given derivatives of the Lagrangian interpolation functions is 0 in the points.
 
void CheckSumLagrangianBasisFunctions (const unsigned short nPoints, const unsigned short nDOFs, vector< su2double > &lagBasisPoints)
 Function, which checks if the sum of the given Lagrangian interpolation functions is 1 in the points.
 
void Copy (const CFEMStandardElementBase &other)
 Function, which copies the data of the given object into the current object.
 
void DerivativesBasisFunctionsAdjacentElement (unsigned short VTK_TypeElem, unsigned short nPolyElem, const bool swapFaceInElement, unsigned short &nDOFsElem, vector< su2double > &drLagBasisIntegration, vector< su2double > &dsLagBasisIntegration, vector< su2double > &dtLagBasisIntegration)
 Function, which computes the values of the derivatives of the basis functions of the adjacent elements in the integration points of the face.
 
void GradVandermonde2D_Triangle (unsigned short nPoly, unsigned short nDOFs, const vector< su2double > &r, const vector< su2double > &s, vector< su2double > &VDr, vector< su2double > &VDs)
 Function, which computes the gradients of the Vandermonde matrix for a standard triangle.
 
void GradVandermonde2D_Quadrilateral (unsigned short nPoly, unsigned short nDOFs, const vector< su2double > &r, const vector< su2double > &s, vector< su2double > &VDr, vector< su2double > &VDs)
 Function, which computes the gradients of the Vandermonde matrix for a standard quadrilateral.
 
void GradVandermonde3D_Tetrahedron (unsigned short nPoly, unsigned short nDOFs, const vector< su2double > &r, const vector< su2double > &s, const vector< su2double > &t, vector< su2double > &VDr, vector< su2double > &VDs, vector< su2double > &VDt)
 Function, which computes the gradients of the Vandermonde matrix for a standard tetrahedron.
 
void GradVandermonde3D_Pyramid (unsigned short nPoly, unsigned short nDOFs, const vector< su2double > &r, const vector< su2double > &s, const vector< su2double > &t, vector< su2double > &VDr, vector< su2double > &VDs, vector< su2double > &VDt)
 Function, which computes the gradients of the Vandermonde matrix for a standard pyramid.
 
void GradVandermonde3D_Prism (unsigned short nPoly, unsigned short nDOFs, const vector< su2double > &r, const vector< su2double > &s, const vector< su2double > &t, vector< su2double > &VDr, vector< su2double > &VDs, vector< su2double > &VDt)
 Function, which computes the gradients of the Vandermonde matrix for a standard prism.
 
void GradVandermonde3D_Hexahedron (unsigned short nPoly, unsigned short nDOFs, const vector< su2double > &r, const vector< su2double > &s, const vector< su2double > &t, vector< su2double > &VDr, vector< su2double > &VDs, vector< su2double > &VDt)
 Function, which computes the gradients of the Vandermonde matrix for a standard hexahedron.
 
void LagrangianBasisFunctionAndDerivativesLine (const unsigned short nPoly, const vector< su2double > &rPoints, unsigned short &nDOFs, vector< su2double > &rDOFs, vector< su2double > &matVandermondeInv, vector< su2double > &lagBasisPoints, vector< su2double > &drLagBasisPoints)
 Function, which determines the values of the Lagrangian interpolation functions and its derivatives in the given set of points for a line.
 
void LagrangianBasisFunctionAndDerivativesTriangle (const unsigned short nPoly, const vector< su2double > &rPoints, const vector< su2double > &sPoints, unsigned short &nDOFs, vector< su2double > &rDOFs, vector< su2double > &sDOFs, vector< su2double > &matVandermondeInv, vector< su2double > &lagBasisPoints, vector< su2double > &drLagBasisPoints, vector< su2double > &dsLagBasisPoints)
 Function, which determines the values of the Lagrangian interpolation functions and its derivatives in the given set of points for a triangle.
 
void LagrangianBasisFunctionAndDerivativesQuadrilateral (const unsigned short nPoly, const vector< su2double > &rPoints, const vector< su2double > &sPoints, unsigned short &nDOFs, vector< su2double > &rDOFs, vector< su2double > &sDOFs, vector< su2double > &matVandermondeInv, vector< su2double > &lagBasisPoints, vector< su2double > &drLagBasisPoints, vector< su2double > &dsLagBasisPoints)
 Function, which determines the values of the Lagrangian interpolation functions and its derivatives in the given set of points for a quadrilateral.
 
void LagrangianBasisFunctionAndDerivativesTetrahedron (const unsigned short nPoly, const vector< su2double > &rPoints, const vector< su2double > &sPoints, const vector< su2double > &tPoints, unsigned short &nDOFs, vector< su2double > &rDOFs, vector< su2double > &sDOFs, vector< su2double > &tDOFs, vector< su2double > &matVandermondeInv, vector< su2double > &lagBasisPoints, vector< su2double > &drLagBasisPoints, vector< su2double > &dsLagBasisPoints, vector< su2double > &dtLagBasisPoints)
 Function, which determines the values of the Lagrangian interpolation functions and its derivatives in the given set of points for a tetrahedron.
 
void LagrangianBasisFunctionAndDerivativesPyramid (const unsigned short nPoly, const vector< su2double > &rPoints, const vector< su2double > &sPoints, const vector< su2double > &tPoints, unsigned short &nDOFs, vector< su2double > &rDOFs, vector< su2double > &sDOFs, vector< su2double > &tDOFs, vector< su2double > &matVandermondeInv, vector< su2double > &lagBasisPoints, vector< su2double > &drLagBasisPoints, vector< su2double > &dsLagBasisPoints, vector< su2double > &dtLagBasisPoints)
 Function, which determines the values of the Lagrangian interpolation functions and its derivatives in the given set of points for a pyramid.
 
void LagrangianBasisFunctionAndDerivativesPrism (const unsigned short nPoly, const vector< su2double > &rPoints, const vector< su2double > &sPoints, const vector< su2double > &tPoints, unsigned short &nDOFs, vector< su2double > &rDOFs, vector< su2double > &sDOFs, vector< su2double > &tDOFs, vector< su2double > &matVandermondeInv, vector< su2double > &lagBasisPoints, vector< su2double > &drLagBasisPoints, vector< su2double > &dsLagBasisPoints, vector< su2double > &dtLagBasisPoints)
 Function, which determines the values of the Lagrangian interpolation functions and its derivatives in the given set of points for a prism.
 
void LagrangianBasisFunctionAndDerivativesHexahedron (const unsigned short nPoly, const vector< su2double > &rPoints, const vector< su2double > &sPoints, const vector< su2double > &tPoints, unsigned short &nDOFs, vector< su2double > &rDOFs, vector< su2double > &sDOFs, vector< su2double > &tDOFs, vector< su2double > &matVandermondeInv, vector< su2double > &lagBasisPoints, vector< su2double > &drLagBasisPoints, vector< su2double > &dsLagBasisPoints, vector< su2double > &dtLagBasisPoints)
 Function, which determines the values of the Lagrangian interpolation functions and its derivatives in the given set of points for a hexahedron.
 
void MatMulRowMajor (const unsigned short nDOFs, const unsigned short nPoints, const vector< su2double > &A, const vector< su2double > &B, vector< su2double > &C)
 Function, which carries out a matrix matrix multiplication to obtain data in points and stores the result row major order.
 
void SubConnForPlottingLine (const unsigned short nPoly, vector< unsigned short > &subConn)
 Function, which computes the local connectivity of linear subelements of a line, which can be used for plotting.
 
void SubConnForPlottingQuadrilateral (const unsigned short nPoly, vector< unsigned short > &subConn)
 Function, which computes the local connectivity of linear subelements of a quadrilateral, which can be used for plotting.
 
void SubConnForPlottingTriangle (const unsigned short nPoly, vector< unsigned short > &subConn)
 Function, which computes the local connectivity of linear subelements of a triangle, which can be used for plotting.
 
void Vandermonde2D_Triangle (unsigned short nPoly, unsigned short nDOFs, const vector< su2double > &r, const vector< su2double > &s, vector< su2double > &V)
 Function, which computes the Vandermonde matrix for a standard triangle.
 
void Vandermonde2D_Quadrilateral (unsigned short nPoly, unsigned short nDOFs, const vector< su2double > &r, const vector< su2double > &s, vector< su2double > &V)
 Function, which computes the Vandermonde matrix for a standard quadrilateral.
 
void Vandermonde3D_Tetrahedron (unsigned short nPoly, unsigned short nDOFs, const vector< su2double > &r, const vector< su2double > &s, const vector< su2double > &t, vector< su2double > &V)
 Function, which computes the Vandermonde matrix for a standard tetrahedron.
 
void Vandermonde3D_Pyramid (unsigned short nPoly, unsigned short nDOFs, const vector< su2double > &r, const vector< su2double > &s, const vector< su2double > &t, vector< su2double > &V)
 Function, which computes the Vandermonde matrix for a standard pyramid.
 
void Vandermonde3D_Prism (unsigned short nPoly, unsigned short nDOFs, const vector< su2double > &r, const vector< su2double > &s, const vector< su2double > &t, vector< su2double > &V)
 Function, which computes the Vandermonde matrix for a standard prism.
 
void Vandermonde3D_Hexahedron (unsigned short nPoly, unsigned short nDOFs, const vector< su2double > &r, const vector< su2double > &s, const vector< su2double > &t, vector< su2double > &V)
 Function, which computes the Vandermonde matrix for a standard hexahedron.
 
su2double ViscousPenaltyParameter (const unsigned short VTK_TypeElem, const unsigned short nPolyElem) const
 Function, which computes the constant in the penalty terms for a a viscous discretization.
 
- Protected Attributes inherited from CFEMStandardElementBase
unsigned short VTK_Type
 Element type using the VTK convention.
 
unsigned short orderExact
 Polynomial order that must be integrated exactly by the integration rule.
 
unsigned short nIntegration
 Number of points used in the numerical integration.
 
bool constJacobian
 Whether or not the element has a constant Jacobian.
 
vector< su2double > rIntegration
 r-location of the integration points for this standard element.
 
vector< su2double > sIntegration
 s-location of the integration points for this standard element, if needed.
 
vector< su2double > tIntegration
 t-location of the integration points for this standard element, if needed.
 
vector< su2double > wIntegration
 The weights of the integration points for this standard element.
 

Detailed Description

Class to define a FEM standard boundary face.

Author
E. van der Weide
Version
8.5.0 "Harrier"

Constructor & Destructor Documentation

◆ CFEMStandardBoundaryFace() [1/2]

CFEMStandardBoundaryFace::CFEMStandardBoundaryFace ( unsigned short  val_VTK_TypeFace,
unsigned short  val_VTK_TypeElem,
unsigned short  val_nPolyElem,
bool  val_constJac,
bool  val_swapFaceInElement,
CConfig *  config,
unsigned short  val_orderExact = 0 
)

Alternative constructor.

Parameters
[in]val_VTK_TypeFace- The type of the face using the VTK convention.
[in]val_VTK_TypeElem- Type of the element adjacent to the face using the VTK convention.
[in]val_nPolyElem- Polynomial degree of the element adjacent to the face.
[in]val_constJac- Whether or not the Jacobians are constant.
[in]val_swapFaceInElement- Whether or not the connectivity of the face must be swapped compared to the face of the corresponding standard element adjacent to the face.
[in]config- Object, which contains the input parameters.
[in]val_orderExact- Default argument. If specified, it contains the order of the polynomials that must be integrated exactly by the integration rule.

◆ CFEMStandardBoundaryFace() [2/2]

CFEMStandardBoundaryFace::CFEMStandardBoundaryFace ( const CFEMStandardBoundaryFace &  other)
inline

Copy constructor.

Parameters
[in]other- Object, whose data must be copied.

Member Function Documentation

◆ GetBasisFaceIntegration()

const su2double * CFEMStandardBoundaryFace::GetBasisFaceIntegration ( void  ) const
inline

Function, which makes available the face basis functions in the integration points.

Returns
The pointer to data, which stores this information.

◆ GetBasisFaceIntegrationTranspose()

const su2double * CFEMStandardBoundaryFace::GetBasisFaceIntegrationTranspose ( void  ) const
inline

Function, which makes available transpose matrix of the face basis functions in the integration points.

Returns
The pointer to data, which stores this information.

◆ GetDrBasisElemIntegration()

const su2double * CFEMStandardBoundaryFace::GetDrBasisElemIntegration ( void  ) const
inline

Function, which makes available the r-derivatives of the element basis functions in the integration points.

Returns
The pointer to data, which stores this information.

◆ GetDrBasisFaceIntegration()

const su2double * CFEMStandardBoundaryFace::GetDrBasisFaceIntegration ( void  ) const
inline

Function, which makes available the r-derivatives of the face basis functions in the integration points.

Returns
The pointer to data, which stores this information.

◆ GetDsBasisElemIntegration()

const su2double * CFEMStandardBoundaryFace::GetDsBasisElemIntegration ( void  ) const
inline

Function, which makes available the s-derivatives of the element basis functions in the integration points.

Returns
The pointer to data, which stores this information.

◆ GetDsBasisFaceIntegration()

const su2double * CFEMStandardBoundaryFace::GetDsBasisFaceIntegration ( void  ) const
inline

Function, which makes available the s-derivatives of the face basis functions in the integration points.

Returns
The pointer to data, which stores this information.

◆ GetDtBasisElemIntegration()

const su2double * CFEMStandardBoundaryFace::GetDtBasisElemIntegration ( void  ) const
inline

Function, which makes available the t-derivatives of the element basis functions in the integration points.

Returns
The pointer to data, which stores this information.

◆ GetMatDerBasisElemIntegration()

const su2double * CFEMStandardBoundaryFace::GetMatDerBasisElemIntegration ( void  ) const
inline

Function, which makes available the matrix with the derivatives of the element basis functions in the integration points.

Returns
The pointer to data, which stores this information.

◆ GetMatDerBasisElemIntegrationTranspose()

const su2double * CFEMStandardBoundaryFace::GetMatDerBasisElemIntegrationTranspose ( void  ) const
inline

Function, which makes available the transpose of the matrix with the derivatives of the element basis functions in the integration points.

Returns
The const pointer to data, which stores this information.

◆ GetNDOFsElem()

unsigned short CFEMStandardBoundaryFace::GetNDOFsElem ( void  ) const
inline

Function, which makes available the number of DOFs of the adjacent element.

Returns
The number of DOFs of the element.

◆ GetNDOFsFace()

unsigned short CFEMStandardBoundaryFace::GetNDOFsFace ( void  ) const
inline

Function, which makes available the number of DOFs of the face.

Returns
The number of DOFs of the face.

◆ GetNDOFsPerSubFace()

unsigned short CFEMStandardBoundaryFace::GetNDOFsPerSubFace ( void  ) const

Function, which makes available the number of DOFs of a linear subface, used for plotting, among others, plotting.

Returns
The number of DOFs of a linear subfaces of the face.

◆ GetNSubFaces()

unsigned short CFEMStandardBoundaryFace::GetNSubFaces ( void  ) const
inline

Function, which makes available the number of linear subfaces used for plotting, among others.

Returns
The number of linear subfaces of the face.

◆ GetPenaltyConstant()

su2double CFEMStandardBoundaryFace::GetPenaltyConstant ( void  ) const
inline

Function, which makes available the penalty constant for this standard face.

Returns
The penalty constant.

◆ GetSubFaceConn()

const unsigned short * CFEMStandardBoundaryFace::GetSubFaceConn ( void  ) const
inline

Function, which makes available the the connectivity of the linear subfaces as a const pointer.

Returns
The pointer to the local connectivity of the linear subfaces.

◆ operator=()

CFEMStandardBoundaryFace & CFEMStandardBoundaryFace::operator= ( const CFEMStandardBoundaryFace &  other)
inline

Assignment operator.

Parameters
[in]other- Object, to which this object must be assigned.
Returns
The current object, after the member variables were assigned the correct value.

◆ SameStandardBoundaryFace()

bool CFEMStandardBoundaryFace::SameStandardBoundaryFace ( unsigned short  val_VTK_TypeFace,
bool  val_constJac,
unsigned short  val_VTK_TypeElem,
unsigned short  val_nPolyElem,
bool  val_swapFaceInElem 
)

Function, which checks if the function arguments correspond to this standard face.

Parameters
[in]val_VTK_TypeFace- The type of the face using the VTK convention.
[in]val_constJac- Whether or not the Jacobians are constant.
[in]val_VTK_TypeElem- Type of the element adjacent to the face using the VTK convention.
[in]val_nPolyElem- Polynomial degree of the element adjacent to the face.
[in]val_swapFaceInElem- Whether or not the connectivity of the face must be swapped w.r.t. the connectivity of face of the adjacent element.

◆ WorkEstimateMetis()

passivedouble CFEMStandardBoundaryFace::WorkEstimateMetis ( CConfig *  config)

Function, which estimates the amount of work for an element of this type. This information is used to determine a well balanced partition.

Parameters
[in]config- Object, which contains the input parameters.

◆ WorkEstimateMetisWallFunctions()

passivedouble CFEMStandardBoundaryFace::WorkEstimateMetisWallFunctions ( CConfig *  config,
const unsigned short  nPointsWF 
)

Function, which estimates the additional amount of work for an element of this type when a wall function treatment is used. This information is used to determine a well balanced partition.

Parameters
[in]config- Object, which contains the input parameters.
[in]nPointsWF- Number of points to discretize the wall model.

The documentation for this class was generated from the following files: