Intrepid2
|
A class providing static members to perform projection-based interpolations: More...
#include <Intrepid2_ProjectionTools.hpp>
Classes | |
struct | ElemSystem |
Class to solve a square system A x = b on each cell A is expected to be saddle a point (KKT) matrix of the form [C B; B^T 0], where C has size nxn and B nxm, with n>0, m>=0. B^T is copied from B, so one does not have to define the B^T portion of A. b will contain the solution x. The first n-entries of x are copied into the provided basis coefficients using the provided indexing. The system is solved either with a QR factorization implemented in KokkosKernels or with Lapack GELS function. More... | |
Public Types | |
using | ExecSpaceType = typename DeviceType::execution_space |
using | MemSpaceType = typename DeviceType::memory_space |
using | EvalPointsType = typename ProjectionStruct<DeviceType, double>::EvalPointsType |
Static Public Member Functions | |
template<typename BasisType , typename ortValueType , class ... ortProperties> | |
static void | getL2EvaluationPoints (typename BasisType::ScalarViewType evaluationPoints, const Kokkos::DynRankView< ortValueType, ortProperties... > cellOrientations, const BasisType *cellBasis, ProjectionStruct< DeviceType, typename BasisType::scalarType > *projStruct, const EvalPointsType evalPointType=EvalPointsType::TARGET) |
Computes evaluation points for L2 projection. | |
template<typename basisCoeffsValueType , class ... basisCoeffsProperties, typename funValsValueType , class ... funValsProperties, typename BasisType , typename ortValueType , class ... ortProperties> | |
static void | getL2BasisCoeffs (Kokkos::DynRankView< basisCoeffsValueType, basisCoeffsProperties... > basisCoeffs, const Kokkos::DynRankView< funValsValueType, funValsProperties... > targetAtEvalPoints, const typename BasisType::ScalarViewType evaluationPoints, const Kokkos::DynRankView< ortValueType, ortProperties... > cellOrientations, const BasisType *cellBasis, ProjectionStruct< DeviceType, typename BasisType::scalarType > *projStruct) |
Computes the basis coefficients of the L2 projection of the target function. | |
template<typename BasisType > | |
static void | getL2DGEvaluationPoints (typename BasisType::ScalarViewType evaluationPoints, const BasisType *cellBasis, ProjectionStruct< DeviceType, typename BasisType::scalarType > *projStruct, const EvalPointsType evalPointType=EvalPointsType::TARGET) |
Computes evaluation points for local L2 projection for broken HGRAD HCURL HDIV and HVOL spaces. | |
template<typename basisCoeffsValueType , class ... basisCoeffsProperties, typename funValsValueType , class ... funValsProperties, typename BasisType , typename ortValueType , class ... ortProperties> | |
static void | getL2DGBasisCoeffs (Kokkos::DynRankView< basisCoeffsValueType, basisCoeffsProperties... > basisCoeffs, const Kokkos::DynRankView< funValsValueType, funValsProperties... > targetAtEvalPoints, const Kokkos::DynRankView< ortValueType, ortProperties... > cellOrientations, const BasisType *cellBasis, ProjectionStruct< DeviceType, typename BasisType::scalarType > *projStruct) |
Computes evaluation points for local L2 projection for broken HGRAD HCURL HDIV and HVOL spaces. | |
template<typename basisViewType , typename targetViewType , typename BasisType > | |
static void | getL2DGBasisCoeffs (basisViewType basisCoeffs, const targetViewType targetAtTargetEPoints, const BasisType *cellBasis, ProjectionStruct< DeviceType, typename BasisType::scalarType > *projStruct) |
Computes evaluation points for local L2 projection for broken HGRAD HCURL HDIV and HVOL spaces. | |
template<typename BasisType , typename OrientationViewType > | |
static void | getHGradEvaluationPoints (typename BasisType::ScalarViewType evaluationPoints, typename BasisType::ScalarViewType gradEvalPoints, const OrientationViewType cellOrientations, const BasisType *cellBasis, ProjectionStruct< DeviceType, typename BasisType::scalarType > *projStruct, const EvalPointsType evalPointType=EvalPointsType::TARGET) |
Computes evaluation points for HGrad projection. | |
template<class BasisCoeffsViewType , class TargetValueViewType , class TargetGradViewType , class BasisType , class OrientationViewType > | |
static void | getHGradBasisCoeffs (BasisCoeffsViewType basisCoeffs, const TargetValueViewType targetAtEvalPoints, const TargetGradViewType targetGradAtGradEvalPoints, const typename BasisType::ScalarViewType evaluationPoints, const typename BasisType::ScalarViewType gradEvalPoints, const OrientationViewType cellOrientations, const BasisType *cellBasis, ProjectionStruct< DeviceType, typename BasisType::scalarType > *projStruct) |
Computes the basis coefficients of the HGrad projection of the target function. | |
template<typename BasisType , typename ortValueType , class ... ortProperties> | |
static void | getHCurlEvaluationPoints (typename BasisType::ScalarViewType evaluationPoints, typename BasisType::ScalarViewType curlEvalPoints, const Kokkos::DynRankView< ortValueType, ortProperties... > cellOrientations, const BasisType *cellBasis, ProjectionStruct< DeviceType, typename BasisType::scalarType > *projStruct, const EvalPointsType evalPointType=EvalPointsType::TARGET) |
Computes evaluation points for HCurl projection. | |
template<typename basisCoeffsValueType , class ... basisCoeffsProperties, typename funValsValueType , class ... funValsProperties, typename BasisType , typename ortValueType , class ... ortProperties> | |
static void | getHCurlBasisCoeffs (Kokkos::DynRankView< basisCoeffsValueType, basisCoeffsProperties... > basisCoeffs, const Kokkos::DynRankView< funValsValueType, funValsProperties... > targetAtEvalPoints, const Kokkos::DynRankView< funValsValueType, funValsProperties... > targetCurlAtCurlEvalPoints, const typename BasisType::ScalarViewType evaluationPoints, const typename BasisType::ScalarViewType curlEvalPoints, const Kokkos::DynRankView< ortValueType, ortProperties... > cellOrientations, const BasisType *cellBasis, ProjectionStruct< DeviceType, typename BasisType::scalarType > *projStruct) |
Computes the basis coefficients of the HCurl projection of the target function. | |
template<typename BasisType , typename ortValueType , class ... ortProperties> | |
static void | getHDivEvaluationPoints (typename BasisType::ScalarViewType evaluationPoints, typename BasisType::ScalarViewType divEvalPoints, const Kokkos::DynRankView< ortValueType, ortProperties... > cellOrientations, const BasisType *cellBasis, ProjectionStruct< DeviceType, typename BasisType::scalarType > *projStruct, const EvalPointsType evalPointType=EvalPointsType::TARGET) |
Computes evaluation points for HDiv projection. | |
template<typename basisCoeffsValueType , class ... basisCoeffsProperties, typename funValsValueType , class ... funValsProperties, typename BasisType , typename ortValueType , class ... ortProperties> | |
static void | getHDivBasisCoeffs (Kokkos::DynRankView< basisCoeffsValueType, basisCoeffsProperties... > basisCoeffs, const Kokkos::DynRankView< funValsValueType, funValsProperties... > targetAtEvalPoints, const Kokkos::DynRankView< funValsValueType, funValsProperties... > targetDivAtDivEvalPoints, const typename BasisType::ScalarViewType evaluationPoints, const typename BasisType::ScalarViewType divEvalPoints, const Kokkos::DynRankView< ortValueType, ortProperties... > cellOrientations, const BasisType *cellBasis, ProjectionStruct< DeviceType, typename BasisType::scalarType > *projStruct) |
Computes the basis coefficients of the HDiv projection of the target function. | |
template<typename BasisType , typename ortValueType , class ... ortProperties> | |
static void | getHVolEvaluationPoints (typename BasisType::ScalarViewType evaluationPoints, const Kokkos::DynRankView< ortValueType, ortProperties... > cellOrientations, const BasisType *cellBasis, ProjectionStruct< DeviceType, typename BasisType::scalarType > *projStruct, const EvalPointsType evalPointType=EvalPointsType::TARGET) |
Computes evaluation points for HVol projection. | |
template<typename basisCoeffsValueType , class ... basisCoeffsProperties, typename funValsValueType , class ... funValsProperties, typename BasisType , typename ortValueType , class ... ortProperties> | |
static void | getHVolBasisCoeffs (Kokkos::DynRankView< basisCoeffsValueType, basisCoeffsProperties... > basisCoeffs, const Kokkos::DynRankView< funValsValueType, funValsProperties... > targetAtEvalPoints, const typename BasisType::ScalarViewType evaluationPoints, const Kokkos::DynRankView< ortValueType, ortProperties... > cellOrientations, const BasisType *cellBasis, ProjectionStruct< DeviceType, typename BasisType::scalarType > *projStruct) |
Computes the basis coefficients of the HVol projection of the target function. | |
A class providing static members to perform projection-based interpolations:
This class provides tools to perform projection-based interpolations of a target function
The projection-based interpolation
where
It also provides tools to perform a local L2 projection into HGrad, HCurl, HDiv and L2 fields. This projection does not satisfy the properties of the projection-based interpolations, but it is simpler and does not require to evaluate the derivatives of the target functions.
Use:
Note: Other algorithmic improvements could be enabled by accessing the implementation of the orientation tools, however, we preferred the projections to work with any orientation, and assuming only that internal basis functions are not affected by the orientation.
Definition at line 183 of file Intrepid2_ProjectionTools.hpp.
using Intrepid2::Experimental::ProjectionTools< DeviceType >::EvalPointsType = typename ProjectionStruct<DeviceType, double>::EvalPointsType |
Definition at line 187 of file Intrepid2_ProjectionTools.hpp.
using Intrepid2::Experimental::ProjectionTools< DeviceType >::ExecSpaceType = typename DeviceType::execution_space |
Definition at line 185 of file Intrepid2_ProjectionTools.hpp.
using Intrepid2::Experimental::ProjectionTools< DeviceType >::MemSpaceType = typename DeviceType::memory_space |
Definition at line 186 of file Intrepid2_ProjectionTools.hpp.
|
static |
Computes the basis coefficients of the HCurl projection of the target function.
basisCoeffs | [out] - rank-2 view (C,F) containing the basis coefficients |
targetAtEvalPoints | [in] - rank-3 view (C,P1,D) containing the values of the target function evaluated at the evaluation points |
targetcurlAtCurlEvalPoints | [in] - variable rank view containing the values of the curl of the target function evaluated at the evaluation points |
evaluationPoints | [in] - rank-3 view (C,P1,D) containing the coordinates of the evaluation points for the projection at each cell |
curlEvalPoints | [in] - rank-3 view (C,P2,D) containing the coordinates of the points where to evaluate the function curls, at each cell |
cellOrientations | [in] - 1-rank view (C) containing the Orientation objects at each cell |
cellBasis | [in] - pointer to the HCURL basis for the projection |
projStruct | [in] - pointer to ProjectionStruct object |
Definition at line 484 of file Intrepid2_ProjectionToolsDefHCURL.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), Intrepid2::RefSubcellParametrization< DeviceType >::get(), Intrepid2::Basis< Device, outputValueType, pointValueType >::getAllDofOrdinal(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisDerivEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisDerivPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisPointsRange(), Intrepid2::Basis< Device, outputValueType, pointValueType >::getCardinality(), Intrepid2::Basis< Device, outputValueType, pointValueType >::getDofCount(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getNumBasisDerivEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getNumBasisEvalPoints(), Intrepid2::CellTools< DeviceType >::getReferenceEdgeTangent(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetDerivEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetDerivPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTopologyKey(), Intrepid2::Basis< Device, outputValueType, pointValueType >::getValues(), Intrepid2::FunctionSpaceTools< DeviceType >::integrate(), Intrepid2::OrientationTools< DeviceType >::modifyBasisByOrientation(), and Intrepid2::Experimental::ProjectionTools< DeviceType >::ElemSystem::solve().
|
static |
Computes evaluation points for HCurl projection.
evaluationPoints | [out] - rank-3 view (C,P1,D) containing the coordinates of the evaluation points for the projection at each cell |
curlEvalPoints | [in] - rank-3 view (C,P2,D) containing the coordinates of the points where to evaluate the function curls, at each cell |
cellOrientations | [in] - rank-1 view (C) containing the Orientation objects at each cell |
cellBasis | [in] - pointer to the HCURL basis for the projection |
projStruct | [in] - pointer to ProjectionStruct object |
evalPointType | [in] - enum selecting whether the points should be computed for the basis functions or for the target function |
Definition at line 396 of file Intrepid2_ProjectionToolsDefHCURL.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), Intrepid2::RefSubcellParametrization< DeviceType >::get(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getDerivEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getDerivPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTopologyKey(), and Intrepid2::Impl::OrientationTools::mapSubcellCoordsToRefCell().
|
static |
Computes the basis coefficients of the HDiv projection of the target function.
basisCoeffs | [out] - rank-2 view (C,F) containing the basis coefficients |
targetAtEvalPoints | [in] - rank-3 view (C,P1,D) containing the values of the target function evaluated at the evaluation points |
targetDivAtDivEvalPoints | [in] - rank-2 view (C,P2) view containing the values of the divergence of the target function evaluated at the evaluation points |
evaluationPoints | [in] - rank-3 view (C,P1,D) containing the coordinates of the evaluation points, at each cell |
divEvalPoints | [in] - rank-3 view (C,P2,D) containing the coordinates of the points where to evaluate the function divergence, at each cell |
cellOrientations | [in] - 1-rank view (C) containing the Orientation objects at each cell |
cellBasis | [in] - pointer to the HDIV basis for the projection |
projStruct | [in] - pointer to ProjectionStruct object |
Definition at line 317 of file Intrepid2_ProjectionToolsDefHDIV.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), Intrepid2::Basis< Device, outputValueType, pointValueType >::getAllDofOrdinal(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisDerivEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisDerivPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisPointsRange(), Intrepid2::Basis< Device, outputValueType, pointValueType >::getCardinality(), Intrepid2::Basis< Device, outputValueType, pointValueType >::getDofCount(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getNumBasisDerivEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getNumBasisEvalPoints(), Intrepid2::CellTools< DeviceType >::getReferenceSideNormal(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetDerivEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetDerivPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetPointsRange(), Intrepid2::Basis< Device, outputValueType, pointValueType >::getValues(), Intrepid2::FunctionSpaceTools< DeviceType >::integrate(), Intrepid2::OrientationTools< DeviceType >::modifyBasisByOrientation(), and Intrepid2::Experimental::ProjectionTools< DeviceType >::ElemSystem::solve().
|
static |
Computes evaluation points for HDiv projection.
evaluationPoints | [out] - rank-3 view (C,P1,D) containing the coordinates of the evaluation points for the projection at each cell |
divEvalPoints | [in] - rank-3 view (C,P2,D) containing the coordinates of the points where to evaluate the function divergence, at each cell |
cellOrientations | [in] - rank-1 view (C) containing the Orientation objects at each cell |
cellBasis | [in] - pointer to the HDIV basis for the projection |
projStruct | [in] - pointer to ProjectionStruct object |
evalPointType | [in] - enum selecting whether the points should be computed for the basis functions or for the target function |
Definition at line 249 of file Intrepid2_ProjectionToolsDefHDIV.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), Intrepid2::RefSubcellParametrization< DeviceType >::get(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getDerivEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getDerivPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTopologyKey(), and Intrepid2::Impl::OrientationTools::mapSubcellCoordsToRefCell().
|
static |
Computes the basis coefficients of the HGrad projection of the target function.
basisCoeffs | [out] - rank-2 view (C,F) containing the basis coefficients |
targetAtEvalPoints | [in] - rank-2 view (C,P1) containing the values of the target function evaluated at the evaluation points |
targetGradAtGradEvalPoints | [in] - rank-3 view (C,P2,D) view containing the values of the gradient of the target function evaluated at the evaluation points |
evaluationPoints | [in] - rank-3 view (C,P1,D) containing the coordinates of the evaluation points, at each cell |
gradEvalPoints | [in] - rank-3 view (C,P2,D) containing the coordinates of the points where to evaluate the function gradients, at each cell |
cellOrientations | [in] - 1-rank view (C) containing the Orientation objects at each cell |
cellBasis | [in] - pointer to the HGRAD basis for the projection |
projStruct | [in] - pointer to ProjectionStruct object |
Definition at line 413 of file Intrepid2_ProjectionToolsDefHGRAD.hpp.
References Intrepid2::RefSubcellParametrization< DeviceType >::get(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisDerivEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisDerivPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getNumBasisDerivEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getNumBasisEvalPoints(), Intrepid2::CellTools< DeviceType >::getReferenceEdgeTangent(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetDerivEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetDerivPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTopologyKey(), Intrepid2::FunctionSpaceTools< DeviceType >::integrate(), Intrepid2::OrientationTools< DeviceType >::modifyBasisByOrientation(), and Intrepid2::Experimental::ProjectionTools< DeviceType >::ElemSystem::solve().
|
static |
Computes evaluation points for HGrad projection.
evaluationPoints | [out] - rank-3 view (C,P1,D) containing the coordinates of the evaluation points, at each cell |
gradEvalPoints | [in] - rank-3 view (C,P2,D) containing the coordinates of the points where to evaluate the function gradients, at each cell |
cellOrientations | [in] - rank-1 container (C) containing the Orientation objects at each cell |
cellBasis | [in] - pointer to the HGRAD basis for the projection |
projStruct | [in] - pointer to ProjectionStruct object |
evalPointType | [in] - enum selecting whether the points should be computed for the basis functions or for the target function |
Definition at line 322 of file Intrepid2_ProjectionToolsDefHGRAD.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), Intrepid2::RefSubcellParametrization< DeviceType >::get(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getDerivEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getDerivPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTopologyKey(), and Intrepid2::Impl::OrientationTools::mapSubcellCoordsToRefCell().
|
static |
Computes the basis coefficients of the HVol projection of the target function.
basisCoeffs | [out] - rank-2 view (C,F) containing the basis coefficients |
targetAtEvalPoints | [in] - rank-2 view (C,P) containing the values of the target function evaluated at the evaluation points |
evaluationPoints | [in] - rank-3 view (C,P,D) containing the coordinates of the evaluation points, at each cell |
cellOrientations | [in] - 1-rank view (C) containing the Orientation objects at each cell |
cellBasis | [in] - pointer to the HGRAD basis for the projection |
projStruct | [in] - pointer to ProjectionStruct object |
Definition at line 82 of file Intrepid2_ProjectionToolsDefHVOL.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getNumBasisEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetPointsRange(), Intrepid2::FunctionSpaceTools< DeviceType >::integrate(), and Intrepid2::Experimental::ProjectionTools< DeviceType >::ElemSystem::solve().
|
static |
Computes evaluation points for HVol projection.
evaluationPoints | [out] - rank-3 view (C,P,D) containing the coordinates of the evaluation points, at each cell |
cellOrientations | [in] - rank-1 view (C) containing the Orientation objects at each cell |
cellBasis | [in] - pointer to the HVOL basis for the projection |
projStruct | [in] - pointer to ProjectionStruct object |
evalPointType | [in] - enum selecting whether the points should be computed for the basis functions or for the target function |
Definition at line 64 of file Intrepid2_ProjectionToolsDefHVOL.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getEvalPoints(), and Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getPointsRange().
|
static |
Computes the basis coefficients of the L2 projection of the target function.
basisCoeffs | [out] - rank-2 view (C,F) containing the basis coefficients |
targetAtEvalPoints | [in] - variable rank view containing the values of the target function evaluated at the evaluation points |
cellOrientations | [in] - 1-rank view (C) containing the Orientation objects at each cell |
cellBasis | [in] - pointer to the basis for the projection |
projStruct | [in] - pointer to ProjectionStruct object |
Definition at line 481 of file Intrepid2_ProjectionToolsDefL2.hpp.
References Intrepid2::RefSubcellParametrization< DeviceType >::get(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getNumBasisEvalPoints(), Intrepid2::CellTools< DeviceType >::getReferenceEdgeTangent(), Intrepid2::CellTools< DeviceType >::getReferenceSideNormal(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTopologyKey(), Intrepid2::FunctionSpaceTools< DeviceType >::integrate(), Intrepid2::OrientationTools< DeviceType >::modifyBasisByOrientation(), and Intrepid2::Experimental::ProjectionTools< DeviceType >::ElemSystem::solve().
|
static |
Computes evaluation points for local L2 projection for broken HGRAD HCURL HDIV and HVOL spaces.
This function simply perform an L2 projection in each cell with no guarantee of preserving continuity across cells. It also does not account for orientation.
basisCoeffs | [out] - rank-2 view (C,F) containing the basis coefficients |
targetAtEvalPoints | [in] - variable rank view containing the values of the target function evaluated at the evaluation points |
cellBasis | [in] - pointer to the basis for the projection |
projStruct | [in] - pointer to ProjectionStruct object |
Definition at line 900 of file Intrepid2_ProjectionToolsDefL2.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getNumBasisEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetEvalWeights(), Intrepid2::FunctionSpaceTools< DeviceType >::integrate(), and Intrepid2::Experimental::ProjectionTools< DeviceType >::ElemSystem::solve().
|
static |
Computes evaluation points for local L2 projection for broken HGRAD HCURL HDIV and HVOL spaces.
This function simply perform an L2 projection in each cell with no guarantee of preserving continuity across cells
basisCoeffs | [out] - rank-2 view (C,F) containing the basis coefficients |
targetAtEvalPoints | [in] - variable rank view containing the values of the target function evaluated at the evaluation points |
cellOrientations | [in] - 1-rank view (C) containing the Orientation objects at each cell |
cellBasis | [in] - pointer to the basis for the projection |
projStruct | [in] - pointer to ProjectionStruct object |
Definition at line 810 of file Intrepid2_ProjectionToolsDefL2.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getBasisEvalWeights(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getNumBasisEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTargetEvalWeights(), Intrepid2::FunctionSpaceTools< DeviceType >::integrate(), Intrepid2::OrientationTools< DeviceType >::modifyBasisByOrientation(), and Intrepid2::Experimental::ProjectionTools< DeviceType >::ElemSystem::solve().
|
static |
Computes evaluation points for local L2 projection for broken HGRAD HCURL HDIV and HVOL spaces.
evaluationPoints | [out] - rank-3 view (C,P,D) containing the coordinates of the evaluation points for the projection at each cell |
cellBasis | [in] - pointer to the basis for the projection |
projStruct | [in] - pointer to ProjectionStruct object |
evalPointType | [in] - enum selecting whether the points should be computed for the basis functions or for the target function |
Definition at line 794 of file Intrepid2_ProjectionToolsDefL2.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), and Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getEvalPoints().
|
static |
Computes evaluation points for L2 projection.
evaluationPoints | [out] - rank-3 view (C,P,D) containing the coordinates of the evaluation points for the projection at each cell |
cellOrientations | [in] - rank-1 view (C) containing the Orientation objects at each cell |
cellBasis | [in] - pointer to the basis for the projection |
projStruct | [in] - pointer to ProjectionStruct object |
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_ProjectionToolsDefL2.hpp.
References Intrepid2::RealSpaceTools< DeviceType >::clone(), Intrepid2::RefSubcellParametrization< DeviceType >::get(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getMaxNumEvalPoints(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getPointsRange(), Intrepid2::Experimental::ProjectionStruct< DeviceType, ValueType >::getTopologyKey(), Intrepid2::Impl::OrientationTools::mapSubcellCoordsToRefCell(), and Intrepid2::Impl::OrientationTools::mapToModifiedReference().