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

Base class for a FEM standard element. More...

#include <fem_standard_element.hpp>

Inheritance diagram for CFEMStandardElementBase:
[legend]

Public Member Functions

 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.
 

Static Public Member Functions

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

 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

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

Base class for a FEM standard element.

Author
E. van der Weide
Version
8.5.0 "Harrier"

Constructor & Destructor Documentation

◆ CFEMStandardElementBase() [1/2]

CFEMStandardElementBase::CFEMStandardElementBase ( )
default

Constructor. Nothing to be done.

◆ ~CFEMStandardElementBase()

virtual CFEMStandardElementBase::~CFEMStandardElementBase ( )
virtualdefault

Destructor. Nothing to be done, because the vectors are deleted automatically.

◆ CFEMStandardElementBase() [2/2]

CFEMStandardElementBase::CFEMStandardElementBase ( unsigned short  val_VTK_Type,
unsigned short  val_nPoly,
bool  val_constJac,
CConfig *  config,
unsigned short  val_orderExact 
)
protected

Alternative constructor.

Parameters
[in]val_VTK_Type- Type of the element using the VTK convention.
[in]val_nPoly- Polynomial degree of the element.
[in]val_constJac- Whether or not the Jacobians are constant.
[in]config- Object, which contains the input parameters.
[in]val_orderExact- The order of the polynomials that must be integrated exactly by the integration rule. If 0, it will be determined from the polynomial degree and the parameters in config.

Member Function Documentation

◆ CheckSumDerivativesLagrangianBasisFunctions()

void CFEMStandardElementBase::CheckSumDerivativesLagrangianBasisFunctions ( const unsigned short  nPoints,
const unsigned short  nDOFs,
const vector< su2double > &  dLagBasisPoints 
)
protected

Function, which checks if the sum of the given derivatives of the Lagrangian interpolation functions is 0 in the points.

Parameters
[in]nPoints- Number of points to be checked.
[in]nDOFs- Number of DOFs of the element.
[in]dLagBasisPoints- Values of the derivatives of the Lagrangian interpolation functions in the given points.

◆ CheckSumLagrangianBasisFunctions()

void CFEMStandardElementBase::CheckSumLagrangianBasisFunctions ( const unsigned short  nPoints,
const unsigned short  nDOFs,
vector< su2double > &  lagBasisPoints 
)
protected

Function, which checks if the sum of the given Lagrangian interpolation functions is 1 in the points.

Parameters
[in]nPoints- Number of points to be checked.
[in]nDOFs- Number of DOFs of the element.
[in,out]lagBasisPoints- Values of the Lagrangian interpolation functions in the given points.

◆ Copy()

void CFEMStandardElementBase::Copy ( const CFEMStandardElementBase &  other)
protected

Function, which copies the data of the given object into the current object.

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

◆ DerivativesBasisFunctionsAdjacentElement()

void CFEMStandardElementBase::DerivativesBasisFunctionsAdjacentElement ( unsigned short  VTK_TypeElem,
unsigned short  nPolyElem,
const bool  swapFaceInElement,
unsigned short &  nDOFsElem,
vector< su2double > &  drLagBasisIntegration,
vector< su2double > &  dsLagBasisIntegration,
vector< su2double > &  dtLagBasisIntegration 
)
protected

Function, which computes the values of the derivatives of the basis functions of the adjacent elements in the integration points of the face.

Parameters
[in]VTK_TypeElem- Type of the element adjacent to the face using the VTK convention.
[in]nPolyElem- Polynomial degree of the element adjacent to the face.
[in]swapFaceInElement- Whether or not the connectivity of the face must be swapped to get the desired numbering compared to the numbering used in the corresponding face of the element.
[out]nDOFsElem- Number of DOFs of the element adjacent to the face.
[out]drLagBasisIntegration- r-derivatives of the basis functions in the integration points of the face.
[out]dsLagBasisIntegration- s-derivatives of the basis functions in the integration points of the face.
[out]dtLagBasisIntegration- t-derivatives of the basis functions in the integration points of the face.

◆ GetNDOFsStatic()

unsigned short CFEMStandardElementBase::GetNDOFsStatic ( unsigned short  VTK_Type,
unsigned short  nPoly,
unsigned long  typeErrorMessage = 0 
)
static

Static function, which makes available the number of DOFs for an element corresponding to the arguments.

Parameters
[in]VTK_Type- Type of the element using the VTK convention.
[in]nPoly- Polynomial degree of the element.
[in]typeErrorMessage- Default argument used to write a good error message.
Returns
The number of DOFs

◆ GetNIntegration()

unsigned short CFEMStandardElementBase::GetNIntegration ( void  ) const
inline

Function, which makes available the number of integration points for this standard element.

Returns
The number of integration points of this standard element.

◆ GetOrderExact()

unsigned short CFEMStandardElementBase::GetOrderExact ( void  ) const
inline

Function, which makes available the polynomial order that must be integrated exactly.

Returns
The polynomial order that must be integrated exactly.

◆ GetVTK_Type()

unsigned short CFEMStandardElementBase::GetVTK_Type ( void  ) const
inline

Function, which makes available the type of the element.

Returns
The type of the element using the VTK convention.

◆ GetWeightsIntegration()

const su2double * CFEMStandardElementBase::GetWeightsIntegration ( void  ) const
inline

Function, which makes available the weights in the integration points.

Returns
The const pointer to data, which stores the weights in the integration points.

◆ GradVandermonde1D()

void CFEMStandardElementBase::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.

Parameters
[in]nDOFs- Number of DOFs, which in 1D is the polynomial degree + 1.
[in]r- Parametric coordinates for which the gradient of the Vandermonde matrix must be computed.
[out]VDr- Matrix to store the gradient of the Vandermonde matrix in all r-locations.

◆ GradVandermonde2D_Quadrilateral()

void CFEMStandardElementBase::GradVandermonde2D_Quadrilateral ( unsigned short  nPoly,
unsigned short  nDOFs,
const vector< su2double > &  r,
const vector< su2double > &  s,
vector< su2double > &  VDr,
vector< su2double > &  VDs 
)
protected

Function, which computes the gradients of the Vandermonde matrix for a standard quadrilateral.

Parameters
[in]nPoly- Polynomial degree of the quadrilateral.
[in]nDOFs- Number of DOFs of the quadrilateral.
[in]r- Parametric coordinate in r-direction for which the gradient of the Vandermonde matrix must be computed.
[in]s- Parametric coordinate in s-direction for which the gradient of the Vandermonde matrix must be computed.
[out]VDr- Matrix to store the gradient in r-direction of the Vandermonde matrix in all r- and s-locations.
[out]VDs- Matrix to store the gradient in s-direction of the Vandermonde matrix in all r- and s-locations.

◆ GradVandermonde2D_Triangle()

void CFEMStandardElementBase::GradVandermonde2D_Triangle ( unsigned short  nPoly,
unsigned short  nDOFs,
const vector< su2double > &  r,
const vector< su2double > &  s,
vector< su2double > &  VDr,
vector< su2double > &  VDs 
)
protected

Function, which computes the gradients of the Vandermonde matrix for a standard triangle.

Parameters
[in]nPoly- Polynomial degree of the triangle.
[in]nDOFs- Number of DOFs of the triangle.
[in]r- Parametric coordinate in r-direction for which the gradient of the Vandermonde matrix must be computed.
[in]s- Parametric coordinate in s-direction for which the gradient of the Vandermonde matrix must be computed.
[out]VDr- Matrix to store the gradient in r-direction of the Vandermonde matrix in all r- and s-locations.
[out]VDs- Matrix to store the gradient in s-direction of the Vandermonde matrix in all r- and s-locations.

◆ GradVandermonde3D_Hexahedron()

void CFEMStandardElementBase::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 
)
protected

Function, which computes the gradients of the Vandermonde matrix for a standard hexahedron.

Parameters
[in]nPoly- Polynomial degree of the hexahedron.
[in]nDOFs- Number of DOFs of the hexahedron.
[in]r- Parametric coordinate in r-direction for which the gradient of the Vandermonde matrix must be computed.
[in]s- Parametric coordinate in s-direction for which the gradient of the Vandermonde matrix must be computed.
[in]t- Parametric coordinate in t-direction for which the gradient of the Vandermonde matrix must be computed.
[out]VDr- Matrix to store the gradient in r-direction of the Vandermonde matrix in all r-, s- and t-locations.
[out]VDs- Matrix to store the gradient in s-direction of the Vandermonde matrix in all r-, s- and t-locations.
[out]VDt- Matrix to store the gradient in t-direction of the Vandermonde matrix in all r-, s- and t-locations.

◆ GradVandermonde3D_Prism()

void CFEMStandardElementBase::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 
)
protected

Function, which computes the gradients of the Vandermonde matrix for a standard prism.

Parameters
[in]nPoly- Polynomial degree of the prism.
[in]nDOFs- Number of DOFs of the prism.
[in]r- Parametric coordinate in r-direction for which the gradient of the Vandermonde matrix must be computed.
[in]s- Parametric coordinate in s-direction for which the gradient of the Vandermonde matrix must be computed.
[in]t- Parametric coordinate in t-direction for which the gradient of the Vandermonde matrix must be computed.
[out]VDr- Matrix to store the gradient in r-direction of the Vandermonde matrix in all r-, s- and t-locations.
[out]VDs- Matrix to store the gradient in s-direction of the Vandermonde matrix in all r-, s- and t-locations.
[out]VDt- Matrix to store the gradient in t-direction of the Vandermonde matrix in all r-, s- and t-locations.

◆ GradVandermonde3D_Pyramid()

void CFEMStandardElementBase::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 
)
protected

Function, which computes the gradients of the Vandermonde matrix for a standard pyramid.

Parameters
[in]nPoly- Polynomial degree of the pyramid.
[in]nDOFs- Number of DOFs of the pyramid.
[in]r- Parametric coordinate in r-direction for which the gradient of the Vandermonde matrix must be computed.
[in]s- Parametric coordinate in s-direction for which the gradient of the Vandermonde matrix must be computed.
[in]t- Parametric coordinate in t-direction for which the gradient of the Vandermonde matrix must be computed.
[out]VDr- Matrix to store the gradient in r-direction of the Vandermonde matrix in all r-, s- and t-locations.
[out]VDs- Matrix to store the gradient in s-direction of the Vandermonde matrix in all r-, s- and t-locations.
[out]VDt- Matrix to store the gradient in t-direction of the Vandermonde matrix in all r-, s- and t-locations.

◆ GradVandermonde3D_Tetrahedron()

void CFEMStandardElementBase::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 
)
protected

Function, which computes the gradients of the Vandermonde matrix for a standard tetrahedron.

Parameters
[in]nPoly- Polynomial degree of the tetrahedron.
[in]nDOFs- Number of DOFs of the tetrahedron.
[in]r- Parametric coordinate in r-direction for which the gradient of the Vandermonde matrix must be computed.
[in]s- Parametric coordinate in s-direction for which the gradient of the Vandermonde matrix must be computed.
[in]t- Parametric coordinate in t-direction for which the gradient of the Vandermonde matrix must be computed.
[out]VDr- Matrix to store the gradient in r-direction of the Vandermonde matrix in all r-, s- and t-locations.
[out]VDs- Matrix to store the gradient in s-direction of the Vandermonde matrix in all r-, s- and t-locations.
[out]VDt- Matrix to store the gradient in t-direction of the Vandermonde matrix in all r-, s- and t-locations.

◆ InverseMatrix()

void CFEMStandardElementBase::InverseMatrix ( unsigned short  n,
vector< su2double > &  A 
)
static

Static function, which computes the inverse of the given square matrix.

Parameters
[in]n- Number of rows/columns of the square matrix A.
[in,out]A- On input the square matrix to be inverted. On output the inverse.

◆ LagrangianBasisFunctionAndDerivativesHexahedron()

void CFEMStandardElementBase::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 
)
protected

Function, which determines the values of the Lagrangian interpolation functions and its derivatives in the given set of points for a hexahedron.

Parameters
[in]nPoly- Polynomial degree of the interpolation functions.
[in]rPoints- r-coordinates of the points where the interpolation functions must be evaluated.
[in]sPoints- s-coordinates of the points where the interpolation functions must be evaluated.
[in]tPoints- t-coordinates of the points where the interpolation functions must be evaluated.
[out]nDOFs- Number of DOFs of the quadrilateral.
[out]rDOFs- r-coordinates of the DOFs of the hexahedron.
[out]sDOFs- s-coordinates of the DOFs of the hexahedron.
[out]tDOFs- t-coordinates of the DOFs of the hexahedron.
[out]matVandermondeInv-Values of the inverse matrix of Vandermonde matrix
[out]lagBasisPoints- Values of the Lagrangian interpolation functions in the given points.
[out]drLagBasisPoints- Values of the r-derivatives of the Lagrangian interpolation functions in the given points.
[out]dsLagBasisPoints- Values of the s-derivatives of the Lagrangian interpolation functions in the given points.
[out]dtLagBasisPoints- Values of the t-derivatives of the Lagrangian interpolation functions in the given points.

◆ LagrangianBasisFunctionAndDerivativesLine()

void CFEMStandardElementBase::LagrangianBasisFunctionAndDerivativesLine ( const unsigned short  nPoly,
const vector< su2double > &  rPoints,
unsigned short &  nDOFs,
vector< su2double > &  rDOFs,
vector< su2double > &  matVandermondeInv,
vector< su2double > &  lagBasisPoints,
vector< su2double > &  drLagBasisPoints 
)
protected

Function, which determines the values of the Lagrangian interpolation functions and its derivatives in the given set of points for a line.

Parameters
[in]nPoly- Polynomial degree of the interpolation functions.
[in]rPoints- r-coordinates of the points where the interpolation functions must be evaluated.
[out]nDOFs- Number of DOFs of the line element.
[out]rDOFs- r-coordinates of the DOFs of the line element.
[out]matVandermondeInv-Values of the inverse matrix of Vandermonde matrix
[out]lagBasisPoints- Values of the Lagrangian interpolation functions in the given points.
[out]drLagBasisPoints- Values of the r-derivatives of the Lagrangian interpolation functions in the given points.

◆ LagrangianBasisFunctionAndDerivativesPrism()

void CFEMStandardElementBase::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 
)
protected

Function, which determines the values of the Lagrangian interpolation functions and its derivatives in the given set of points for a prism.

Parameters
[in]nPoly- Polynomial degree of the interpolation functions.
[in]rPoints- r-coordinates of the points where the interpolation functions must be evaluated.
[in]sPoints- s-coordinates of the points where the interpolation functions must be evaluated.
[in]tPoints- t-coordinates of the points where the interpolation functions must be evaluated.
[out]nDOFs- Number of DOFs of the quadrilateral.
[out]rDOFs- r-coordinates of the DOFs of the prism.
[out]sDOFs- s-coordinates of the DOFs of the prism.
[out]tDOFs- t-coordinates of the DOFs of the prism.
[out]matVandermondeInv-Values of the inverse matrix of Vandermonde matrix
[out]lagBasisPoints- Values of the Lagrangian interpolation functions in the given points.
[out]drLagBasisPoints- Values of the r-derivatives of the Lagrangian interpolation functions in the given points.
[out]dsLagBasisPoints- Values of the s-derivatives of the Lagrangian interpolation functions in the given points.
[out]dtLagBasisPoints- Values of the t-derivatives of the Lagrangian interpolation functions in the given points.

◆ LagrangianBasisFunctionAndDerivativesPyramid()

void CFEMStandardElementBase::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 
)
protected

Function, which determines the values of the Lagrangian interpolation functions and its derivatives in the given set of points for a pyramid.

Parameters
[in]nPoly- Polynomial degree of the interpolation functions.
[in]rPoints- r-coordinates of the points where the interpolation functions must be evaluated.
[in]sPoints- s-coordinates of the points where the interpolation functions must be evaluated.
[in]tPoints- t-coordinates of the points where the interpolation functions must be evaluated.
[out]nDOFs- Number of DOFs of the quadrilateral.
[out]rDOFs- r-coordinates of the DOFs of the pyramid.
[out]sDOFs- s-coordinates of the DOFs of the pyramid.
[out]tDOFs- t-coordinates of the DOFs of the pyramid.
[out]matVandermondeInv-Values of the inverse matrix of Vandermonde matrix
[out]lagBasisPoints- Values of the Lagrangian interpolation functions in the given points.
[out]drLagBasisPoints- Values of the r-derivatives of the Lagrangian interpolation functions in the given points.
[out]dsLagBasisPoints- Values of the s-derivatives of the Lagrangian interpolation functions in the given points.
[out]dtLagBasisPoints- Values of the t-derivatives of the Lagrangian interpolation functions in the given points.

◆ LagrangianBasisFunctionAndDerivativesQuadrilateral()

void CFEMStandardElementBase::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 
)
protected

Function, which determines the values of the Lagrangian interpolation functions and its derivatives in the given set of points for a quadrilateral.

Parameters
[in]nPoly- Polynomial degree of the interpolation functions.
[in]rPoints- r-coordinates of the points where the interpolation functions must be evaluated.
[in]sPoints- s-coordinates of the points where the interpolation functions must be evaluated.
[out]nDOFs- Number of DOFs of the quadrilateral.
[out]rDOFs- r-coordinates of the DOFs of the quadrilateral.
[out]sDOFs- s-coordinates of the DOFs of the quadrilateral.
[out]matVandermondeInv-Values of the inverse matrix of Vandermonde matrix
[out]lagBasisPoints- Values of the Lagrangian interpolation functions in the given points.
[out]drLagBasisPoints- Values of the r-derivatives of the Lagrangian interpolation functions in the given points.
[out]dsLagBasisPoints- Values of the s-derivatives of the Lagrangian interpolation functions in the given points.

◆ LagrangianBasisFunctionAndDerivativesTetrahedron()

void CFEMStandardElementBase::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 
)
protected

Function, which determines the values of the Lagrangian interpolation functions and its derivatives in the given set of points for a tetrahedron.

Parameters
[in]nPoly- Polynomial degree of the interpolation functions.
[in]rPoints- r-coordinates of the points where the interpolation functions must be evaluated.
[in]sPoints- s-coordinates of the points where the interpolation functions must be evaluated.
[in]tPoints- t-coordinates of the points where the interpolation functions must be evaluated.
[out]nDOFs- Number of DOFs of the quadrilateral.
[out]rDOFs- r-coordinates of the DOFs of the tetrahedron.
[out]sDOFs- s-coordinates of the DOFs of the tetrahedron.
[out]tDOFs- t-coordinates of the DOFs of the tetrahedron.
[out]matVandermondeInv-Values of the inverse matrix of Vandermonde matrix
[out]lagBasisPoints- Values of the Lagrangian interpolation functions in the given points.
[out]drLagBasisPoints- Values of the r-derivatives of the Lagrangian interpolation functions in the given points.
[out]dsLagBasisPoints- Values of the s-derivatives of the Lagrangian interpolation functions in the given points.
[out]dtLagBasisPoints- Values of the t-derivatives of the Lagrangian interpolation functions in the given points.

◆ LagrangianBasisFunctionAndDerivativesTriangle()

void CFEMStandardElementBase::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 
)
protected

Function, which determines the values of the Lagrangian interpolation functions and its derivatives in the given set of points for a triangle.

Parameters
[in]nPoly- Polynomial degree of the interpolation functions.
[in]rPoints- r-coordinates of the points where the interpolation functions must be evaluated.
[in]sPoints- s-coordinates of the points where the interpolation functions must be evaluated.
[out]nDOFs- Number of DOFs of the triangle.
[out]rDOFs- r-coordinates of the DOFs of the triangle.
[out]sDOFs- s-coordinates of the DOFs of the triangle.
[out]matVandermondeInv-Values of the inverse matrix of Vandermonde matrix
[out]lagBasisPoints- Values of the Lagrangian interpolation functions in the given points.
[out]drLagBasisPoints- Values of the r-derivatives of the Lagrangian interpolation functions in the given points.
[out]dsLagBasisPoints- Values of the s-derivatives of the Lagrangian interpolation functions in the given points.

◆ MatMulRowMajor()

void CFEMStandardElementBase::MatMulRowMajor ( const unsigned short  nDOFs,
const unsigned short  nPoints,
const vector< su2double > &  A,
const vector< su2double > &  B,
vector< su2double > &  C 
)
protected

Function, which carries out a matrix matrix multiplication to obtain data in points and stores the result row major order.

Parameters
[in]nDOFs- Dimension of the matrices. This typically corresponds to the number of DOFs that are considered.
[in]nPoints- Dimension of the matrices. This typically corresponds to the number of integration points used.
[in]A- First matrix in the matrix matrix product A*B, dimension nPoints X nDOFs. A is stored in column major order.
[in]B- Second matrix in the matrix matrix product A*B, dimension nDOFs X nDOFs. B is stored in column major order.
[out]C- Result of A*B, dimension nPoints X nDOFs. The result is stored in row major order

◆ SubConnForPlottingLine()

void CFEMStandardElementBase::SubConnForPlottingLine ( const unsigned short  nPoly,
vector< unsigned short > &  subConn 
)
protected

Function, which computes the local connectivity of linear subelements of a line, which can be used for plotting.

Parameters
[in]nPoly- Polynomial degree of the line.
[out]subConn- The local subconnectivity of a line element.

◆ SubConnForPlottingQuadrilateral()

void CFEMStandardElementBase::SubConnForPlottingQuadrilateral ( const unsigned short  nPoly,
vector< unsigned short > &  subConn 
)
protected

Function, which computes the local connectivity of linear subelements of a quadrilateral, which can be used for plotting.

Parameters
[in]nPoly- Polynomial degree of the quadrilateral.
[out]subConn- The local subconnectivity of a triangle element.

◆ SubConnForPlottingTriangle()

void CFEMStandardElementBase::SubConnForPlottingTriangle ( const unsigned short  nPoly,
vector< unsigned short > &  subConn 
)
protected

Function, which computes the local connectivity of linear subelements of a triangle, which can be used for plotting.

Parameters
[in]nPoly- Polynomial degree of the triangle.
[out]subConn- The local subconnectivity of a triangle element.

◆ Vandermonde1D()

void CFEMStandardElementBase::Vandermonde1D ( unsigned short  nDOFs,
const vector< su2double > &  r,
vector< su2double > &  V 
)

Function, which computes the Vandermonde matrix for a standard 1D edge.

Parameters
[in]nDOFs- Number of DOFs, which in 1D is the polynomial degree + 1.
[in]r- Parametric coordinates for which the Vandermonde matrix must be computed.
[out]V- Matrix to store the Vandermonde matrix in all r-locations.

◆ Vandermonde2D_Quadrilateral()

void CFEMStandardElementBase::Vandermonde2D_Quadrilateral ( unsigned short  nPoly,
unsigned short  nDOFs,
const vector< su2double > &  r,
const vector< su2double > &  s,
vector< su2double > &  V 
)
protected

Function, which computes the Vandermonde matrix for a standard quadrilateral.

Parameters
[in]nPoly- Polynomial degree of the quadrilateral.
[in]nDOFs- Number of DOFs of the quadrilateral.
[in]r- Parametric coordinates in r-direction for which the Vandermonde matrix must be computed.
[in]s- Parametric coordinates in s-direction for which the Vandermonde matrix must be computed.
[out]V- Matrix to store the Vandermonde matrix in all r- and s-locations.

◆ Vandermonde2D_Triangle()

void CFEMStandardElementBase::Vandermonde2D_Triangle ( unsigned short  nPoly,
unsigned short  nDOFs,
const vector< su2double > &  r,
const vector< su2double > &  s,
vector< su2double > &  V 
)
protected

Function, which computes the Vandermonde matrix for a standard triangle.

Parameters
[in]nPoly- Polynomial degree of the triangle.
[in]nDOFs- Number of DOFs of the triangle.
[in]r- Parametric coordinates in r-direction for which the Vandermonde matrix must be computed.
[in]s- Parametric coordinates in s-direction for which the Vandermonde matrix must be computed.
[out]V- Matrix to store the Vandermonde matrix in all r- and s-locations.

◆ Vandermonde3D_Hexahedron()

void CFEMStandardElementBase::Vandermonde3D_Hexahedron ( unsigned short  nPoly,
unsigned short  nDOFs,
const vector< su2double > &  r,
const vector< su2double > &  s,
const vector< su2double > &  t,
vector< su2double > &  V 
)
protected

Function, which computes the Vandermonde matrix for a standard hexahedron.

Parameters
[in]nPoly- Polynomial degree of the hexahedron.
[in]nDOFs- Number of DOFs of the hexahedron.
[in]r- Parametric coordinates in r-direction for which the Vandermonde matrix must be computed.
[in]s- Parametric coordinates in s-direction for which the Vandermonde matrix must be computed.
[in]t- Parametric coordinates in t-direction for which the Vandermonde matrix must be computed.
[out]V- Matrix to store the Vandermonde matrix in all r-, s- and t-locations.

◆ Vandermonde3D_Prism()

void CFEMStandardElementBase::Vandermonde3D_Prism ( unsigned short  nPoly,
unsigned short  nDOFs,
const vector< su2double > &  r,
const vector< su2double > &  s,
const vector< su2double > &  t,
vector< su2double > &  V 
)
protected

Function, which computes the Vandermonde matrix for a standard prism.

Parameters
[in]nPoly- Polynomial degree of the prism.
[in]nDOFs- Number of DOFs of the prism.
[in]r- Parametric coordinates in r-direction for which the Vandermonde matrix must be computed.
[in]s- Parametric coordinates in s-direction for which the Vandermonde matrix must be computed.
[in]t- Parametric coordinates in t-direction for which the Vandermonde matrix must be computed.
[out]V- Matrix to store the Vandermonde matrix in all r-, s- and t-locations.

◆ Vandermonde3D_Pyramid()

void CFEMStandardElementBase::Vandermonde3D_Pyramid ( unsigned short  nPoly,
unsigned short  nDOFs,
const vector< su2double > &  r,
const vector< su2double > &  s,
const vector< su2double > &  t,
vector< su2double > &  V 
)
protected

Function, which computes the Vandermonde matrix for a standard pyramid.

Parameters
[in]nPoly- Polynomial degree of the pyramid.
[in]nDOFs- Number of DOFs of the pyramid.
[in]r- Parametric coordinates in r-direction for which the Vandermonde matrix must be computed.
[in]s- Parametric coordinates in s-direction for which the Vandermonde matrix must be computed.
[in]t- Parametric coordinates in t-direction for which the Vandermonde matrix must be computed.
[out]V- Matrix to store the Vandermonde matrix in all r-, s- and t-locations.

◆ Vandermonde3D_Tetrahedron()

void CFEMStandardElementBase::Vandermonde3D_Tetrahedron ( unsigned short  nPoly,
unsigned short  nDOFs,
const vector< su2double > &  r,
const vector< su2double > &  s,
const vector< su2double > &  t,
vector< su2double > &  V 
)
protected

Function, which computes the Vandermonde matrix for a standard tetrahedron.

Parameters
[in]nPoly- Polynomial degree of the tetrahedron.
[in]nDOFs- Number of DOFs of the tetrahedron.
[in]r- Parametric coordinates in r-direction for which the Vandermonde matrix must be computed.
[in]s- Parametric coordinates in s-direction for which the Vandermonde matrix must be computed.
[in]t- Parametric coordinates in t-direction for which the Vandermonde matrix must be computed.
[out]V- Matrix to store the Vandermonde matrix in all r-, s- and t-locations.

◆ ViscousPenaltyParameter()

su2double CFEMStandardElementBase::ViscousPenaltyParameter ( const unsigned short  VTK_TypeElem,
const unsigned short  nPolyElem 
) const
protected

Function, which computes the constant in the penalty terms for a a viscous discretization.

Parameters
[in]VTK_TypeElem- The element type, using the VTK convention, adjacent to the face.
[in]nPolyElem- The polynomial degree of the adjacent element.
Returns
The value of the viscous penalty parameter.

Member Data Documentation

◆ constJacobian

bool CFEMStandardElementBase::constJacobian
protected

Whether or not the element has a constant Jacobian.

◆ nIntegration

unsigned short CFEMStandardElementBase::nIntegration
protected

Number of points used in the numerical integration.

◆ orderExact

unsigned short CFEMStandardElementBase::orderExact
protected

Polynomial order that must be integrated exactly by the integration rule.

◆ rIntegration

vector<su2double> CFEMStandardElementBase::rIntegration
protected

r-location of the integration points for this standard element.

◆ sIntegration

vector<su2double> CFEMStandardElementBase::sIntegration
protected

s-location of the integration points for this standard element, if needed.

◆ tIntegration

vector<su2double> CFEMStandardElementBase::tIntegration
protected

t-location of the integration points for this standard element, if needed.

◆ VTK_Type

unsigned short CFEMStandardElementBase::VTK_Type
protected

Element type using the VTK convention.

◆ wIntegration

vector<su2double> CFEMStandardElementBase::wIntegration
protected

The weights of the integration points for this standard element.


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