Intrepid2
|
An helper class to compute the evaluation points and weights needed for performing projections. More...
#include <Intrepid2_ProjectionStruct.hpp>
Public Member Functions | |
ordinal_type | getNumBasisEvalPoints () |
Returns number of basis evaluation points. | |
ordinal_type | getNumBasisDerivEvalPoints () |
Returns number of evaluation points for basis derivatives. | |
ordinal_type | getNumTargetEvalPoints () |
Returns number of points where to evaluate the target function. | |
ordinal_type | getNumTargetDerivEvalPoints () |
Returns number of points where to evaluate the derivatives of the target function. | |
ordinal_type | getMaxNumDerivPoints (const EvalPointsType type) const |
Returns the maximum number of derivative evaluation points across all the subcells. More... | |
ordinal_type | getMaxNumEvalPoints (const EvalPointsType type) const |
Returns the maximum number of evaluation points across all the subcells. More... | |
host_view_type | getBasisEvalPoints (const ordinal_type subCellDim, const ordinal_type subCellId) |
Returns the basis evaluation points on a subcell. More... | |
host_view_type | getBasisDerivEvalPoints (const ordinal_type subCellDim, const ordinal_type subCellId) |
Returns the evaluation points for basis derivatives on a subcell. More... | |
host_view_type | getTargetEvalPoints (const ordinal_type subCellDim, const ordinal_type subCellId) |
Returns the points where to evaluate the target function on a subcell. More... | |
host_view_type | getTargetDerivEvalPoints (const ordinal_type subCellDim, const ordinal_type subCellId) |
Returns the points where to evaluate the derivatives of the target function on a subcell. More... | |
host_view_type | getEvalPoints (const ordinal_type subCellDim, const ordinal_type subCellId, EvalPointsType type) const |
Returns the basis/target evaluation points on a subcell. More... | |
view_type | getAllEvalPoints (EvalPointsType type=TARGET) const |
Returns the basis/target evaluation points in the cell. More... | |
host_view_type | getDerivEvalPoints (const ordinal_type subCellDim, const ordinal_type subCellId, EvalPointsType type) const |
Returns the evaluation points for basis/target derivatives on a subcell. More... | |
view_type | getAllDerivEvalPoints (EvalPointsType type=TARGET) const |
Returns all the evaluation points for basis/target derivatives in the cell. More... | |
host_view_type | getBasisEvalWeights (const ordinal_type subCellDim, const ordinal_type subCellId) |
Returns the basis evaluation weights on a subcell. More... | |
host_view_type | getBasisDerivEvalWeights (const ordinal_type subCellDim, const ordinal_type subCellId) |
Returns the basis derivatives evaluation weights on a subcell. More... | |
host_view_type | getTargetEvalWeights (const ordinal_type subCellDim, const ordinal_type subCellId) |
Returns the function evaluation weights on a subcell. More... | |
host_view_type | getTargetDerivEvalWeights (const ordinal_type subCellDim, const ordinal_type subCellId) |
Returns the function derivatives evaluation weights on a subcell. More... | |
const range_tag | getBasisPointsRange () const |
Returns the range tag of the basis evaluation points subcells. More... | |
const range_tag | getPointsRange (const EvalPointsType type) const |
Returns the range tag of the basis/target evaluation points in subcells. More... | |
const range_tag | getBasisDerivPointsRange () const |
Returns the range tag of the derivative evaluation points on subcell. More... | |
const range_tag | getDerivPointsRange (const EvalPointsType type) const |
Returns the range tag of the basis/target derivative evaluation points on subcells. More... | |
const range_tag | getTargetPointsRange () const |
Returns the range of the target function evaluation points on subcells. More... | |
const range_tag | getTargetDerivPointsRange () const |
Returns the range tag of the target function derivative evaluation points on subcells. More... | |
const key_tag | getTopologyKey () const |
Returns the key tag for subcells. More... | |
template<typename BasisPtrType > | |
void | createL2ProjectionStruct (const BasisPtrType cellBasis, const ordinal_type targetCubDegree) |
Initialize the ProjectionStruct for L2 projections. More... | |
template<typename BasisPtrType > | |
void | createL2DGProjectionStruct (const BasisPtrType cellBasis, const ordinal_type targetCubDegree) |
Initialize the ProjectionStruct for (discontinuous local-L2) projection. More... | |
template<typename BasisPtrType > | |
void | createHGradProjectionStruct (const BasisPtrType cellBasis, const ordinal_type targetCubDegree, const ordinal_type targetGradCubDegre) |
Initialize the ProjectionStruct for HGRAD projections. More... | |
template<typename BasisPtrType > | |
void | createHCurlProjectionStruct (const BasisPtrType cellBasis, const ordinal_type targetCubDegree, const ordinal_type targetCurlCubDegre) |
Initialize the ProjectionStruct for HCURL projections. More... | |
template<typename BasisPtrType > | |
void | createHDivProjectionStruct (const BasisPtrType cellBasis, const ordinal_type targetCubDegree, const ordinal_type targetDivCubDegre) |
Initialize the ProjectionStruct for HDIV projections. More... | |
template<typename BasisPtrType > | |
void | createHVolProjectionStruct (const BasisPtrType cellBasis, const ordinal_type targetCubDegree) |
Initialize the ProjectionStruct for HVOL (local-L2) projection. More... | |
Static Public Attributes | |
static constexpr int | numberSubCellDims = 4 |
static constexpr int | maxSubCellsCount = 12 |
An helper class to compute the evaluation points and weights needed for performing projections.
In order to perform projections, the basis functions and the target function need to be evaluated at several sets of evaluation points (cubature points) defined on subcell entities (edges, faces, volumes). Depending on the projection, the evaluation of derivatives of the basis functions and of the target function may be needed as well. This class provides a struct to store the evaluation points/weights on the reference cell.
Use: create the proper ProjectionStruct rule by calling one of the functions: createL2ProjectionStruct, createHGradProjectionStruct, createHCurlProjectionStruct, createHDivProjectionStruct, createHVolProjectionStruct, depending on the type of projection wanted.
The created class is then used with the Projection Tools. See ProjectionTools class for more info.
Definition at line 88 of file Intrepid2_ProjectionStruct.hpp.
void Intrepid2::ProjectionStruct< DeviceType, ValueType >::createHCurlProjectionStruct | ( | const BasisPtrType | cellBasis, |
const ordinal_type | targetCubDegree, | ||
const ordinal_type | targetCurlCubDegre | ||
) |
Initialize the ProjectionStruct for HCURL projections.
cellBasis | [in] - HCURL basis functions for the projection |
targetCubDegree | [in] - degree of the cubature needed to integrate the target function |
targetGradCubDegre | [in] - degree of the cubature needed to integrate the derivative of target function |
Definition at line 390 of file Intrepid2_ProjectionStructDef.hpp.
References Intrepid2::DefaultCubatureFactory::create(), Intrepid2::RefSubcellParametrization< DeviceType >::get(), and Intrepid2::CellTools< DeviceType >::mapToReferenceSubcell().
void Intrepid2::ProjectionStruct< DeviceType, ValueType >::createHDivProjectionStruct | ( | const BasisPtrType | cellBasis, |
const ordinal_type | targetCubDegree, | ||
const ordinal_type | targetDivCubDegre | ||
) |
Initialize the ProjectionStruct for HDIV projections.
cellBasis | [in] - HDIV basis functions for the projection |
targetCubDegree | [in] - degree of the cubature needed to integrate the target function |
targetGradCubDegre | [in] - degree of the cubature needed to integrate the derivative of target function |
Definition at line 564 of file Intrepid2_ProjectionStructDef.hpp.
References Intrepid2::DefaultCubatureFactory::create(), Intrepid2::RefSubcellParametrization< DeviceType >::get(), Intrepid2::Basis< DeviceType, OutputType, PointType >::getDofCount(), and Intrepid2::CellTools< DeviceType >::mapToReferenceSubcell().
void Intrepid2::ProjectionStruct< DeviceType, ValueType >::createHGradProjectionStruct | ( | const BasisPtrType | cellBasis, |
const ordinal_type | targetCubDegree, | ||
const ordinal_type | targetGradCubDegre | ||
) |
Initialize the ProjectionStruct for HGRAD projections.
cellBasis | [in] - HGRAD basis functions for the projection |
targetCubDegree | [in] - degree of the cubature needed to integrate the target function |
targetGradCubDegre | [in] - degree of the cubature needed to integrate the derivative of target function |
Definition at line 234 of file Intrepid2_ProjectionStructDef.hpp.
References Intrepid2::DefaultCubatureFactory::create(), Intrepid2::RefSubcellParametrization< DeviceType >::get(), Intrepid2::CellTools< DeviceType >::getReferenceVertex(), and Intrepid2::CellTools< DeviceType >::mapToReferenceSubcell().
Referenced by Intrepid2::ProjectedGeometry< spaceDim, PointScalar, DeviceType >::projectOntoHGRADBasis().
void Intrepid2::ProjectionStruct< DeviceType, ValueType >::createHVolProjectionStruct | ( | const BasisPtrType | cellBasis, |
const ordinal_type | targetCubDegree | ||
) |
Initialize the ProjectionStruct for HVOL (local-L2) projection.
cellBasis | [in] - HVOL basis functions for the projection |
targetCubDegree | [in] - degree of the cubature needed to integrate the target function |
Definition at line 716 of file Intrepid2_ProjectionStructDef.hpp.
References Intrepid2::DefaultCubatureFactory::create().
Referenced by Intrepid2::ProjectionStruct< DeviceType, ValueType >::createL2DGProjectionStruct().
|
inline |
Initialize the ProjectionStruct for (discontinuous local-L2) projection.
cellBasis | [in] - basis functions for the projection |
targetCubDegree | [in] - degree of the cubature needed to integrate the target function |
Definition at line 456 of file Intrepid2_ProjectionStruct.hpp.
References Intrepid2::ProjectionStruct< DeviceType, ValueType >::createHVolProjectionStruct().
void Intrepid2::ProjectionStruct< DeviceType, ValueType >::createL2ProjectionStruct | ( | const BasisPtrType | cellBasis, |
const ordinal_type | targetCubDegree | ||
) |
Initialize the ProjectionStruct for L2 projections.
cellBasis | [in] - basis functions for the projection |
targetCubDegree | [in] - degree of the cubature needed to integrate the target function |
Definition at line 66 of file Intrepid2_ProjectionStructDef.hpp.
References Intrepid2::DefaultCubatureFactory::create(), Intrepid2::RefSubcellParametrization< DeviceType >::get(), Intrepid2::CellTools< DeviceType >::getReferenceVertex(), and Intrepid2::CellTools< DeviceType >::mapToReferenceSubcell().
Referenced by Intrepid2::ProjectionTools< DeviceType >::projectField().
|
inline |
Returns all the evaluation points for basis/target derivatives in the cell.
evalPointType | [in] - enum selecting whether the points should be computed for the basis functions or for the target function |
Definition at line 301 of file Intrepid2_ProjectionStruct.hpp.
Referenced by Intrepid2::ProjectionTools< DeviceType >::getHCurlBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getHDivBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getHGradBasisCoeffs(), and Intrepid2::ProjectedGeometry< spaceDim, PointScalar, DeviceType >::projectOntoHGRADBasis().
|
inline |
Returns the basis/target evaluation points in the cell.
evalPointType | [in] - enum selecting whether the points should be computed for the basis functions or for the target function |
Definition at line 261 of file Intrepid2_ProjectionStruct.hpp.
Referenced by Intrepid2::ProjectionTools< DeviceType >::getHCurlBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getHDivBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getHGradBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getL2BasisCoeffs(), and Intrepid2::ProjectedGeometry< spaceDim, PointScalar, DeviceType >::projectOntoHGRADBasis().
|
inline |
Returns the evaluation points for basis derivatives on a subcell.
subCellDim | [in] - dimension of the subcell |
subCellId | [in] - ordinal of the subcell defined by cell topology |
Definition at line 189 of file Intrepid2_ProjectionStruct.hpp.
|
inline |
Returns the basis derivatives evaluation weights on a subcell.
subCellDim | [in] - dimension of the subcell |
subCellId | [in] - ordinal of the subcell defined by cell topology |
Definition at line 336 of file Intrepid2_ProjectionStruct.hpp.
Referenced by Intrepid2::ProjectionTools< DeviceType >::getHCurlBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getHDivBasisCoeffs(), and Intrepid2::ProjectionTools< DeviceType >::getHGradBasisCoeffs().
|
inline |
Returns the range tag of the derivative evaluation points on subcell.
Definition at line 399 of file Intrepid2_ProjectionStruct.hpp.
Referenced by Intrepid2::ProjectionTools< DeviceType >::getHCurlBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getHDivBasisCoeffs(), and Intrepid2::ProjectionTools< DeviceType >::getHGradBasisCoeffs().
|
inline |
Returns the basis evaluation points on a subcell.
subCellDim | [in] - dimension of the subcell |
subCellId | [in] - ordinal of the subcell defined by cell topology |
Definition at line 172 of file Intrepid2_ProjectionStruct.hpp.
|
inline |
Returns the basis evaluation weights on a subcell.
subCellDim | [in] - dimension of the subcell |
subCellId | [in] - ordinal of the subcell defined by cell topology |
Definition at line 320 of file Intrepid2_ProjectionStruct.hpp.
Referenced by Intrepid2::ProjectionTools< DeviceType >::getHCurlBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getHDivBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getL2BasisCoeffs(), and Intrepid2::ProjectionTools< DeviceType >::getL2DGBasisCoeffs().
|
inline |
Returns the range tag of the basis evaluation points subcells.
Definition at line 377 of file Intrepid2_ProjectionStruct.hpp.
Referenced by Intrepid2::ProjectionTools< DeviceType >::getHCurlBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getHDivBasisCoeffs(), and Intrepid2::ProjectionTools< DeviceType >::getL2BasisCoeffs().
|
inline |
Returns the evaluation points for basis/target derivatives on a subcell.
subCellDim | [in] - dimension of the subcell |
subCellId | [in] - ordinal of the subcell defined by cell topology |
evalPointType | [in] - enum selecting whether the points should be computed for the basis functions or for the target function |
Definition at line 282 of file Intrepid2_ProjectionStruct.hpp.
|
inline |
Returns the range tag of the basis/target derivative evaluation points on subcells.
evalPointType | [in] - enum selecting whether the points should be computed for the basis functions or for the target function |
Definition at line 409 of file Intrepid2_ProjectionStruct.hpp.
|
inline |
Returns the basis/target evaluation points on a subcell.
subCellDim | [in] - dimension of the subcell |
subCellId | [in] - ordinal of the subcell defined by cell topology |
evalPointType | [in] - enum selecting whether the points should be computed for the basis functions or for the target function |
Definition at line 242 of file Intrepid2_ProjectionStruct.hpp.
Referenced by Intrepid2::ProjectionTools< DeviceType >::getL2DGBasisCoeffs().
|
inline |
Returns the maximum number of derivative evaluation points across all the subcells.
evalPointType | [in] - enum selecting whether the points should be computed for the basis functions or for the target function |
Definition at line 140 of file Intrepid2_ProjectionStruct.hpp.
|
inline |
Returns the maximum number of evaluation points across all the subcells.
evalPointType | [in] - enum selecting whether the points should be computed for the basis functions or for the target function |
Definition at line 153 of file Intrepid2_ProjectionStruct.hpp.
|
inline |
Returns the range tag of the basis/target evaluation points in subcells.
evalPointType | [in] - enum selecting whether the points should be computed for the basis functions or for the target function |
Definition at line 387 of file Intrepid2_ProjectionStruct.hpp.
|
inline |
Returns the points where to evaluate the derivatives of the target function on a subcell.
subCellDim | [in] - dimension of the subcell |
subCellId | [in] - ordinal of the subcell defined by cell topology |
Definition at line 223 of file Intrepid2_ProjectionStruct.hpp.
|
inline |
Returns the function derivatives evaluation weights on a subcell.
subCellDim | [in] - dimension of the subcell |
subCellId | [in] - ordinal of the subcell defined by cell topology |
Definition at line 368 of file Intrepid2_ProjectionStruct.hpp.
Referenced by Intrepid2::ProjectionTools< DeviceType >::getHCurlBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getHDivBasisCoeffs(), and Intrepid2::ProjectionTools< DeviceType >::getHGradBasisCoeffs().
|
inline |
Returns the range tag of the target function derivative evaluation points on subcells.
Definition at line 430 of file Intrepid2_ProjectionStruct.hpp.
Referenced by Intrepid2::ProjectionTools< DeviceType >::getHCurlBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getHDivBasisCoeffs(), and Intrepid2::ProjectionTools< DeviceType >::getHGradBasisCoeffs().
|
inline |
Returns the points where to evaluate the target function on a subcell.
subCellDim | [in] - dimension of the subcell |
subCellId | [in] - ordinal of the subcell defined by cell topology |
Definition at line 206 of file Intrepid2_ProjectionStruct.hpp.
|
inline |
Returns the function evaluation weights on a subcell.
subCellDim | [in] - dimension of the subcell |
subCellId | [in] - ordinal of the subcell defined by cell topology |
Definition at line 352 of file Intrepid2_ProjectionStruct.hpp.
Referenced by Intrepid2::ProjectionTools< DeviceType >::getHCurlBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getHDivBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getL2BasisCoeffs(), and Intrepid2::ProjectionTools< DeviceType >::getL2DGBasisCoeffs().
|
inline |
Returns the range of the target function evaluation points on subcells.
Definition at line 421 of file Intrepid2_ProjectionStruct.hpp.
Referenced by Intrepid2::ProjectionTools< DeviceType >::getHCurlBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getHDivBasisCoeffs(), Intrepid2::ProjectionTools< DeviceType >::getHGradBasisCoeffs(), and Intrepid2::ProjectionTools< DeviceType >::getL2BasisCoeffs().
|
inline |
Returns the key tag for subcells.
Definition at line 438 of file Intrepid2_ProjectionStruct.hpp.