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 54 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 357 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 531 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 201 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 683 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 422 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 33 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 267 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 227 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 155 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 302 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 365 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 138 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 286 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 343 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 248 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 375 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 208 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 106 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 119 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 353 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 189 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 334 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 396 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 172 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 318 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 387 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 404 of file Intrepid2_ProjectionStruct.hpp.