1 #ifndef _COMPADRE_OPERATORS_HPP_
2 #define _COMPADRE_OPERATORS_HPP_
6 #define make_sampling_functional(input, output, targets, nontrivial, transform) SamplingFunctional(input, output, targets, nontrivial, transform, __COUNTER__)
117 KOKKOS_INLINE_FUNCTION
119 const bool use_target_site_weights_,
const bool nontrivial_nullspace_,
120 const int transform_type_,
const int id_) :
125 KOKKOS_INLINE_FUNCTION
130 KOKKOS_INLINE_FUNCTION
138 constexpr SamplingFunctional
#define make_sampling_functional(input, output, targets, nontrivial, transform)
constexpr int ActualReconstructionSpaceRank[]
Number of actual components in the ReconstructionSpace.
ProblemType
Problem type, that optionally can handle manifolds.
@ STANDARD
Standard GMLS problem type.
@ MANIFOLD
Solve GMLS problem on a manifold (will use QR or SVD to solve the resultant GMLS problem dependent on...
constexpr SamplingFunctional VaryingManifoldVectorPointSample
For integrating polynomial dotted with normal over an edge.
constexpr SamplingFunctional FaceNormalIntegralSample
For integrating polynomial dotted with normal over an edge.
ConstraintType
Constraint type.
@ NEUMANN_GRAD_SCALAR
Neumann Gradient Scalar Type.
@ NO_CONSTRAINT
No constraint.
constexpr SamplingFunctional StaggeredEdgeIntegralSample
Samples consist of the result of integrals of a vector dotted with the tangent along edges between ne...
constexpr SamplingFunctional PointSample
Available sampling functionals.
TargetOperation
Available target functionals.
@ LaplacianOfScalarPointEvaluation
Point evaluation of the laplacian of a scalar (could be on a manifold or not)
@ COUNT
Should be the total count of all available target functionals.
@ ScalarFaceAverageEvaluation
Average of values in a face of a cell using quadrature 2D in 3D problem, 1D in 2D problem.
@ GradientOfScalarPointEvaluation
Point evaluation of the gradient of a scalar.
@ CurlOfVectorPointEvaluation
Point evaluation of the curl of a vector (results in a vector)
@ PartialYOfScalarPointEvaluation
Point evaluation of the partial with respect to y of a scalar.
@ ChainedStaggeredLaplacianOfScalarPointEvaluation
Point evaluation of the chained staggered Laplacian acting on VectorTaylorPolynomial basis + Staggere...
@ GaussianCurvaturePointEvaluation
Point evaluation of Gaussian curvature.
@ CurlCurlOfVectorPointEvaluation
Point evaluation of the curl of a curl of a vector (results in a vector)
@ GradientOfVectorPointEvaluation
Point evaluation of the gradient of a vector (results in a matrix, NOT CURRENTLY IMPLEMENTED)
@ PartialZOfScalarPointEvaluation
Point evaluation of the partial with respect to z of a scalar.
@ DivergenceOfVectorPointEvaluation
Point evaluation of the divergence of a vector (results in a scalar)
@ VectorPointEvaluation
Point evaluation of a vector (reconstructs entire vector at once, requiring a ReconstructionSpace hav...
@ VectorLaplacianPointEvaluation
Point evaluation of the laplacian of each component of a vector.
@ ScalarPointEvaluation
Point evaluation of a scalar.
@ PartialXOfScalarPointEvaluation
Point evaluation of the partial with respect to x of a scalar.
SamplingTransformType
Describes the SamplingFunction relationship to targets, neighbors.
@ DifferentEachNeighbor
Each target applies a different transform for each neighbor.
@ DifferentEachTarget
Each target applies a different data transform, but the same to each neighbor.
@ SameForAll
Each neighbor for each target all apply the same transform.
@ Identity
No action performed on data before GMLS target operation.
constexpr SamplingFunctional StaggeredEdgeAnalyticGradientIntegralSample
Analytical integral of a gradient source vector is just a difference of the scalar source at neighbor...
DenseSolverType
Dense solver type.
@ LU
LU factorization performed on P^T*W*P matrix.
@ SVD
SVD factorization performed on P*sqrt(w) matrix.
@ QR
QR factorization performed on P*sqrt(w) matrix.
WeightingFunctionType
Available weighting kernel function types.
constexpr SamplingFunctional FaceTangentIntegralSample
For integrating polynomial dotted with tangent over an edge.
constexpr SamplingFunctional FaceNormalPointSample
For polynomial dotted with normal on edge.
constexpr SamplingFunctional ManifoldVectorPointSample
Point evaluations of the entire vector source function (but on a manifold, so it includes a transform...
constexpr SamplingFunctional FaceTangentPointSample
For polynomial dotted with tangent.
constexpr SamplingFunctional VectorPointSample
Point evaluations of the entire vector source function.
CoordinatesType
Coordinate type for input and output format of vector data on manifold problems.
@ Ambient
a 2D manifold in 3D in ambient coordinates would have 3 components for a vector
@ Local
a 2D manifold in 3D in local coordinates would have 2 components for a vector
constexpr SamplingFunctional ScalarFaceAverageSample
For polynomial integrated on faces.
ReconstructionSpace
Space in which to reconstruct polynomial.
@ DivergenceFreeVectorTaylorPolynomial
Divergence-free vector polynomial basis.
@ VectorTaylorPolynomial
Vector polynomial basis having # of components _dimensions, or (_dimensions-1) in the case of manifol...
@ ScalarTaylorPolynomial
Scalar polynomial basis centered at the target site and scaled by sum of basis powers e....
@ VectorOfScalarClonesTaylorPolynomial
Scalar basis reused as many times as there are components in the vector resulting in a much cheaper p...
constexpr int TargetOutputTensorRank[]
Rank of target functional output for each TargetOperation Rank of target functional input for each Ta...
constexpr KOKKOS_INLINE_FUNCTION SamplingFunctional(const int input_rank_, const int output_rank_, const bool use_target_site_weights_, const bool nontrivial_nullspace_, const int transform_type_, const int id_)
int transform_type
Describes the SamplingFunction relationship to targets, neighbors.
int output_rank
Rank of sampling functional output for each SamplingFunctional.
constexpr KOKKOS_INLINE_FUNCTION bool operator==(const SamplingFunctional sf) const
bool use_target_site_weights
Whether or not the SamplingTensor acts on the target site as well as the neighbors.
bool nontrivial_nullspace
Whether the SamplingFunctional + ReconstructionSpace results in a nontrivial nullspace requiring SVD.
int input_rank
Rank of sampling functional input for each SamplingFunctional.
constexpr KOKKOS_INLINE_FUNCTION bool operator!=(const SamplingFunctional sf) const