IFEM  90A354
Functions
Lagrange Namespace Reference

Evaluation of Lagrange basis functions. More...

Functions

bool computeBasis (RealArray &val, int p1, double x1, int p2=0, double x2=0.0, int p3=0, double x3=0.0)
 Evaluates a 1D, 2D or 3D Lagrangian basis at a given point. More...
 
bool computeBasis (RealArray &val, Matrix &derval, int p1, double x1, int p2=0, double x2=0.0, int p3=0, double x3=0.0)
 Evaluates a 1D, 2D or 3D Lagrangian basis at a given point. More...
 
bool computeBasis (RealArray &val, Matrix *derval, const RealArray &p1, double x1, const RealArray &p2={}, double x2=0.0, const RealArray &p3={}, double x3=0.0)
 Evaluates a 1D, 2D or 3D Lagrangian basis at a given point. More...
 

Detailed Description

Evaluation of Lagrange basis functions.

Function Documentation

◆ computeBasis() [1/3]

bool Lagrange::computeBasis ( RealArray val,
int  p1,
double  x1,
int  p2 = 0,
double  x2 = 0.0,
int  p3 = 0,
double  x3 = 0.0 
)

Evaluates a 1D, 2D or 3D Lagrangian basis at a given point.

Parameters
[out]valValues of all basis functions
[in]p1Polynomial degree in first parameter direction
[in]x1Natural coordinate in first parameter direction
[in]p2Polynomial degree in second parameter direction
[in]x2Natural coordinate in second parameter direction
[in]p3Polynomial degree in third parameter direction
[in]x3Natural coordinate in third parameter direction

If p2 is zero, a 1D basis is assumed. Otherwise, if p3 is zero, a 2D basis is assumed. If p1, p2, and p3 all are non-zero, a 3D basis is assumed.

Referenced by ASMs2DLag::BasisFunctionCache::calculateAll(), ASMs2DmxLag::BasisFunctionCache::calculateAll(), ASMs3DLag::BasisFunctionCache::calculateAll(), ASMs3DmxLag::BasisFunctionCache::calculateAll(), ASMs2DLag::BasisFunctionCache::calculatePt(), ASMs2DmxLag::BasisFunctionCache::calculatePt(), ASMs3DLag::BasisFunctionCache::calculatePt(), ASMs3DmxLag::BasisFunctionCache::calculatePt(), computeBasis(), ASMs3DLag::evalSolPt(), ASMs2DLag::evalSolPt(), ASMs2DmxLag::evalSolution(), ASMs3DmxLag::evalSolution(), ASMs1DLag::evalSolution(), ASMs2Dmx::evalSolution(), ASMs3Dmx::evalSolution(), ASMs2DLag::evalSolution(), ASMs3DLag::evalSolution(), ASMs2Dmx::evalSolutionPiola(), LagrangeFields2D::gradFE(), LagrangeFields3D::gradFE(), LagrangeField3D::gradFE(), LagrangeField2D::gradFE(), initMPC4flat(), ASMs1DLag::integrate(), ASMs1DSpec::integrate(), ASMs2DLag::integrate(), ASMs2DmxLag::integrate(), ASMs3DLag::integrate(), ASMs3DmxLag::integrate(), ASMs3DLag::integrateEdge(), LagrangeField3D::valueFE(), LagrangeField2D::valueFE(), LagrangeFields2D::valueFE(), and LagrangeFields3D::valueFE().

◆ computeBasis() [2/3]

bool Lagrange::computeBasis ( RealArray val,
Matrix derval,
int  p1,
double  x1,
int  p2 = 0,
double  x2 = 0.0,
int  p3 = 0,
double  x3 = 0.0 
)

Evaluates a 1D, 2D or 3D Lagrangian basis at a given point.

Parameters
[out]valValues of all basis functions
[out]dervalDerivatives of all basis functions
[in]p1Polynomial degree in first parameter direction
[in]x1Natural coordinate in first parameter direction
[in]p2Polynomial degree in second parameter direction
[in]x2Natural coordinate in second parameter direction
[in]p3Polynomial degree in third parameter direction
[in]x3Natural coordinate in third parameter direction

If p2 is zero, a 1D basis is assumed. Otherwise, if p3 is zero, a 2D basis is assumed. If p1, p2, and p3 all are non-zero, a 3D basis is assumed.

References computeBasis().

◆ computeBasis() [3/3]

bool Lagrange::computeBasis ( RealArray val,
Matrix derval,
const RealArray p1,
double  x1,
const RealArray p2 = {},
double  x2 = 0.0,
const RealArray p3 = {},
double  x3 = 0.0 
)

Evaluates a 1D, 2D or 3D Lagrangian basis at a given point.

Parameters
[out]valValues of all basis functions
[out]dervalPointer to derivatives of all basis functions
[in]p1Natural point coordinates in first parameter direction
[in]x1Natural coordinate in first parameter direction
[in]p2Natural point coordinates in second parameter direction
[in]x2Natural coordinate in second parameter direction
[in]p3Natural point coordinates in third parameter direction
[in]x3Natural coordinate in third parameter direction

If derval is a null pointer, the derivatives are not computed. If p2 is empty, a 1D basis is assumed. Otherwise, if p3 is empty, a 2D basis is assumed. If p1, p2, and p3 all are non-empty, a 3D basis is assumed.

References utl::matrix< T >::cols(), Lagrange1D::eval(), utl::matrix< T >::resize(), and utl::matrix< T >::rows().