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__)
67 KOKKOS_INLINE_FUNCTION
69 constexpr int TargetOutputTensorRank[] {
91 return TargetOutputTensorRank[index];
112 KOKKOS_INLINE_FUNCTION
114 constexpr int ActualReconstructionSpaceRank[] = {
121 return ActualReconstructionSpaceRank[index];
148 KOKKOS_INLINE_FUNCTION
150 const bool use_target_site_weights_,
const bool nontrivial_nullspace_,
151 const int transform_type_,
const int id_) :
156 KOKKOS_INLINE_FUNCTION
161 KOKKOS_INLINE_FUNCTION
169 constexpr SamplingFunctional
#define make_sampling_functional(input, output, targets, nontrivial, transform)
ProblemType
Problem type, that optionally can handle manifolds.
@ STANDARD
Standard GMLS problem type.
constexpr SamplingFunctional VaryingManifoldVectorPointSample
For integrating polynomial dotted with normal over an edge.
KOKKOS_INLINE_FUNCTION int getTargetOutputTensorRank(const int &index)
constexpr SamplingFunctional FaceNormalIntegralSample
For integrating polynomial dotted with normal over an edge.
KOKKOS_INLINE_FUNCTION int getActualReconstructionSpaceRank(const int &index)
Number of actual components in the ReconstructionSpace.
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.
@ FaceNormalIntegralEvaluation
@ 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.
@ FaceNormalAverageEvaluation
@ 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
@ 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).
@ EdgeTangentAverageEvaluation
@ 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).
@ EdgeTangentIntegralEvaluation
@ 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...
constexpr SamplingFunctional CellAverageSample
For polynomial integrated on cells.
constexpr SamplingFunctional CellIntegralSample
For polynomial integrated on cells.
constexpr SamplingFunctional FaceNormalAverageSample
For polynomial dotted with normal on edge.
DenseSolverType
Dense solver type.
@ LU
LU factorization performed on P^T*W*P matrix.
@ QR
QR+Pivoting factorization performed on P*sqrt(w) matrix.
WeightingFunctionType
Available weighting kernel function types.
constexpr SamplingFunctional ManifoldVectorPointSample
constexpr SamplingFunctional VectorPointSample
Point evaluations of the entire vector source function.
constexpr SamplingFunctional EdgeTangentAverageSample
For polynomial dotted with tangent.
@ 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 EdgeTangentIntegralSample
For integrating polynomial dotted with tangent over an edge.
ReconstructionSpace
Space in which to reconstruct polynomial.
@ DivergenceFreeVectorTaylorPolynomial
Divergence-free vector polynomial basis.
@ BernsteinPolynomial
Bernstein polynomial basis.
@ VectorTaylorPolynomial
Vector polynomial basis having # of components _dimensions, or (_dimensions-1) in the case of manifol...
@ VectorOfScalarClonesTaylorPolynomial
KOKKOS_INLINE_FUNCTION constexpr bool operator!=(const SamplingFunctional sf) const
int transform_type
Describes the SamplingFunction relationship to targets, neighbors.
int output_rank
Rank of sampling functional output for each SamplingFunctional.
KOKKOS_INLINE_FUNCTION constexpr 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_)
bool use_target_site_weights
bool nontrivial_nullspace
Whether the SamplingFunctional + ReconstructionSpace results in a nontrivial nullspace.
KOKKOS_INLINE_FUNCTION constexpr bool operator==(const SamplingFunctional sf) const
int input_rank
Rank of sampling functional input for each SamplingFunctional.