Compadre
1.2.0
|
Namespaces | |
DivergenceFreePolynomialBasis | |
Definition of the divergence-free polynomial basis. | |
GMLS_LinearAlgebra | |
ScalarTaylorPolynomialBasis | |
Definition of scalar Taylor polynomial basis. | |
Classes | |
struct | SubviewND |
Creates 1D subviews of data from a 2D view, generally constructed with CreateNDSliceOnDeviceView. More... | |
class | Evaluator |
Lightweight Evaluator Helper This class is a lightweight wrapper for extracting and applying all relevant data from a GMLS class in order to transform data into a form that can be acted on by the GMLS operator, apply the action of the GMLS operator, and then transform data again (only if on a manifold) More... | |
struct | DefaultTag |
struct | ConvertLayoutLeftToRight |
struct | ConvertLayoutRightToLeft |
class | GMLS |
Generalized Moving Least Squares (GMLS) More... | |
class | KokkosParser |
Class handling Kokkos command line arguments and returning parameters. More... | |
struct | XYZ |
class | NeighborLists |
NeighborLists assists in accessing entries of compressed row neighborhood lists. More... | |
struct | SamplingFunctional |
class | ParallelManager |
Parallel Manager. More... | |
class | RadiusResultSet |
Custom RadiusResultSet for nanoflann that uses pre-allocated space for indices and radii instead of using std::vec for std::pairs. More... | |
class | PointCloudSearch |
PointCloudSearch generates neighbor lists and window sizes for each target site. More... | |
class | Quadrature |
Quadrature. More... | |
struct | Extract |
Functions | |
template<typename T , typename T2 > | |
struct SubviewND< T, T2, enable_if_t<(T::rank< 2)> >{T _data_in;T2 _data_original_view;bool _scalar_as_vector_if_needed;SubviewND(T data_in, T2 data_original_view, bool scalar_as_vector_if_needed){_data_in=data_in;_data_original_view=data_original_view;_scalar_as_vector_if_needed=scalar_as_vector_if_needed;}auto get1DView(const int column_num) -> | decltype (Kokkos::subview(_data_in, Kokkos::ALL)) |
Creates 1D subviews of data from a 1D view, generally constructed with CreateNDSliceOnDeviceView. More... | |
auto | get2DView (const int column_num, const int block_size) -> decltype(Kokkos::subview(_data_in, Kokkos::ALL)) |
T2 | copyToAndReturnOriginalView () |
template<typename T > | |
auto | CreateNDSliceOnDeviceView (T sampling_input_data_host_or_device, bool scalar_as_vector_if_needed) -> SubviewND< decltype(Kokkos::create_mirror_view(device_memory_space(), sampling_input_data_host_or_device)), T > |
Copies data_in to the device, and then allows for access to 1D columns of data on device. More... | |
KOKKOS_INLINE_FUNCTION double | MetricFactor (const scratch_vector_type a_, const double h, const double u1, const double u2) |
Metric factor (det(G)) at any point in the local chart. More... | |
KOKKOS_INLINE_FUNCTION double | GaussianCurvature (const scratch_vector_type a_, const double h, const double u1, const double u2) |
Gaussian curvature K at any point in the local chart. More... | |
KOKKOS_INLINE_FUNCTION double | SurfaceCurlOfScalar (const scratch_vector_type a_, const double h, const double u1, const double u2, int x_pow, int y_pow, const int component) |
Surface curl at any point in the local chart. More... | |
KOKKOS_INLINE_FUNCTION int | getAdditionalAlphaSizeFromConstraint (DenseSolverType dense_solver_type, ConstraintType constraint_type) |
KOKKOS_INLINE_FUNCTION int | getAdditionalCoeffSizeFromConstraintAndSpace (DenseSolverType dense_solver_type, ConstraintType constraint_type, ReconstructionSpace reconstruction_space, const int dimension) |
KOKKOS_INLINE_FUNCTION int | getRHSSquareDim (DenseSolverType dense_solver_type, ConstraintType constraint_type, ReconstructionSpace reconstruction_space, const int dimension, const int M, const int N) |
KOKKOS_INLINE_FUNCTION void | getPDims (DenseSolverType dense_solver_type, ConstraintType constraint_type, ReconstructionSpace reconstruction_space, const int dimension, const int M, const int N, int &out_row, int &out_col) |
template<typename view_type > | |
NeighborLists< view_type > | CreateNeighborLists (view_type neighbor_lists, view_type number_of_neighbors_list) |
CreateNeighborLists allows for the construction of an object of type NeighborLists with template deduction. More... | |
template<typename view_type > | |
NeighborLists< view_type > | CreateNeighborLists (view_type neighbor_lists, view_type number_of_neighbors_list, view_type neighbor_lists_row_offsets) |
CreateNeighborLists allows for the construction of an object of type NeighborLists with template deduction. More... | |
template<typename view_type_2d , typename view_type_1d = Kokkos::View<int*, typename view_type_2d::memory_space, typename view_type_2d::memory_traits>> | |
NeighborLists< view_type_1d > | Convert2DToCompressedRowNeighborLists (view_type_2d neighbor_lists) |
Converts 2D neighbor lists to compressed row neighbor lists. More... | |
template<typename view_type > | |
PointCloudSearch< view_type > | CreatePointCloudSearch (view_type src_view, const local_index_type dimensions=-1, const local_index_type max_leaf=-1) |
CreatePointCloudSearch allows for the construction of an object of type PointCloudSearch with template deduction. More... | |
KOKKOS_INLINE_FUNCTION void | getMidpointFromCellVertices (const member_type &teamMember, scratch_vector_type midpoint_storage, scratch_matrix_right_type cell_coordinates, const int cell_num, const int dim=3) |
template<typename view_type_1 , typename view_type_2 > | |
KOKKOS_INLINE_FUNCTION double | getAreaFromVectors (const member_type &teamMember, view_type_1 v1, view_type_2 v2) |
template<typename output_memory_space , typename view_type_input_data , typename output_array_layout = typename view_type_input_data::array_layout, typename index_type = int> | |
Kokkos::View< int *, output_array_layout, output_memory_space > | filterViewByID (view_type_input_data input_data_host_or_device, index_type filtered_value) |
KOKKOS_INLINE_FUNCTION void | evaluateConstraints (scratch_matrix_right_type M, scratch_matrix_right_type PsqrtW, const ConstraintType constraint_type, const ReconstructionSpace reconstruction_space, const int NP, const double cutoff_p, const int dimension, const int num_neighbors=0, scratch_matrix_right_type *T=NULL) |
Variables | |
constexpr int | TargetOutputTensorRank [] |
Rank of target functional output for each TargetOperation Rank of target functional input for each TargetOperation is based on the output rank of the SamplingFunctional used on the polynomial basis. More... | |
constexpr int | ActualReconstructionSpaceRank [] |
Number of actual components in the ReconstructionSpace. More... | |
constexpr SamplingFunctional | PointSample = make_sampling_functional(0,0,false,false,(int)Identity) |
Available sampling functionals. More... | |
constexpr SamplingFunctional | VectorPointSample = make_sampling_functional(1,1,false,false,(int)Identity) |
Point evaluations of the entire vector source function. More... | |
constexpr SamplingFunctional | ManifoldVectorPointSample = make_sampling_functional(1,1,false,false,(int)DifferentEachTarget) |
Point evaluations of the entire vector source function (but on a manifold, so it includes a transform into local coordinates) More... | |
constexpr SamplingFunctional | StaggeredEdgeAnalyticGradientIntegralSample = make_sampling_functional(0,0,true,true,(int)SameForAll) |
Analytical integral of a gradient source vector is just a difference of the scalar source at neighbor and target. More... | |
constexpr SamplingFunctional | StaggeredEdgeIntegralSample = make_sampling_functional(1,0,true,true,(int)DifferentEachNeighbor) |
Samples consist of the result of integrals of a vector dotted with the tangent along edges between neighbor and target. More... | |
constexpr SamplingFunctional | VaryingManifoldVectorPointSample = make_sampling_functional(1,1,false,false,(int)DifferentEachNeighbor) |
For integrating polynomial dotted with normal over an edge. More... | |
constexpr SamplingFunctional | FaceNormalIntegralSample = make_sampling_functional(1,0,false,false,(int)Identity) |
For integrating polynomial dotted with normal over an edge. More... | |
constexpr SamplingFunctional | FaceNormalPointSample = make_sampling_functional(1,0,false,false,(int)Identity) |
For polynomial dotted with normal on edge. More... | |
constexpr SamplingFunctional | FaceTangentIntegralSample = make_sampling_functional(1,0,false,false,(int)Identity) |
For integrating polynomial dotted with tangent over an edge. More... | |
constexpr SamplingFunctional | FaceTangentPointSample = make_sampling_functional(1,0,false,false,(int)Identity) |
For polynomial dotted with tangent. More... | |
constexpr SamplingFunctional | ScalarFaceAverageSample = make_sampling_functional(0,0,false,false,(int)DifferentEachNeighbor) |
For polynomial integrated on faces. More... | |
Constraint type.
Enumerator | |
---|---|
NO_CONSTRAINT |
No constraint. |
NEUMANN_GRAD_SCALAR |
Neumann Gradient Scalar Type. |
Definition at line 194 of file Compadre_Operators.hpp.
Coordinate type for input and output format of vector data on manifold problems.
Anything without a manifold is always Ambient.
Enumerator | |
---|---|
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 |
Definition at line 210 of file Compadre_Operators.hpp.
Dense solver type.
Enumerator | |
---|---|
QR |
QR factorization performed on P*sqrt(w) matrix. |
SVD |
SVD factorization performed on P*sqrt(w) matrix. |
LU |
LU factorization performed on P^T*W*P matrix. |
Definition at line 175 of file Compadre_Operators.hpp.
Problem type, that optionally can handle manifolds.
Enumerator | |
---|---|
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 SamplingNontrivialNullspace. |
Definition at line 185 of file Compadre_Operators.hpp.
Enumerator | |
---|---|
INVALID | |
LINE | |
TRI | |
QUAD | |
TET | |
HEX |
Definition at line 11 of file Compadre_Quadrature.hpp.
Space in which to reconstruct polynomial.
Definition at line 71 of file Compadre_Operators.hpp.
Describes the SamplingFunction relationship to targets, neighbors.
Enumerator | |
---|---|
Identity |
No action performed on data before GMLS target operation. |
SameForAll |
Each neighbor for each target all apply the same transform. |
DifferentEachTarget |
Each target applies a different data transform, but the same to each neighbor. |
DifferentEachNeighbor |
Each target applies a different transform for each neighbor. |
Definition at line 94 of file Compadre_Operators.hpp.
Available target functionals.
Definition at line 11 of file Compadre_Operators.hpp.
Available weighting kernel function types.
Enumerator | |
---|---|
Power | |
Gaussian | |
CubicSpline |
Definition at line 202 of file Compadre_Operators.hpp.
NeighborLists<view_type_1d> Compadre::Convert2DToCompressedRowNeighborLists | ( | view_type_2d | neighbor_lists | ) |
Converts 2D neighbor lists to compressed row neighbor lists.
Definition at line 279 of file Compadre_NeighborLists.hpp.
T2 Compadre::copyToAndReturnOriginalView | ( | ) |
Definition at line 87 of file Compadre_Evaluator.hpp.
auto Compadre::CreateNDSliceOnDeviceView | ( | T | sampling_input_data_host_or_device, |
bool | scalar_as_vector_if_needed | ||
) | -> SubviewND<decltype(Kokkos::create_mirror_view( device_memory_space(), sampling_input_data_host_or_device)), T> |
Copies data_in to the device, and then allows for access to 1D columns of data on device.
Handles either 2D or 1D views as input, and they can be on the host or the device.
Definition at line 98 of file Compadre_Evaluator.hpp.
NeighborLists<view_type> Compadre::CreateNeighborLists | ( | view_type | neighbor_lists, |
view_type | number_of_neighbors_list | ||
) |
CreateNeighborLists allows for the construction of an object of type NeighborLists with template deduction.
Definition at line 267 of file Compadre_NeighborLists.hpp.
NeighborLists<view_type> Compadre::CreateNeighborLists | ( | view_type | neighbor_lists, |
view_type | number_of_neighbors_list, | ||
view_type | neighbor_lists_row_offsets | ||
) |
CreateNeighborLists allows for the construction of an object of type NeighborLists with template deduction.
Definition at line 273 of file Compadre_NeighborLists.hpp.
PointCloudSearch<view_type> Compadre::CreatePointCloudSearch | ( | view_type | src_view, |
const local_index_type | dimensions = -1 , |
||
const local_index_type | max_leaf = -1 |
||
) |
CreatePointCloudSearch allows for the construction of an object of type PointCloudSearch with template deduction.
Definition at line 804 of file Compadre_PointCloudSearch.hpp.
struct SubviewND< T, T2, enable_if_t<(T::rank< 2)> >{T _data_in;T2 _data_original_view;bool _scalar_as_vector_if_needed;SubviewND(T data_in, T2 data_original_view, bool scalar_as_vector_if_needed){_data_in=data_in;_data_original_view=data_original_view;_scalar_as_vector_if_needed=scalar_as_vector_if_needed;}auto get1DView(const int column_num) -> Compadre::decltype | ( | Kokkos:: | subview_data_in, Kokkos::ALL | ) |
Creates 1D subviews of data from a 1D view, generally constructed with CreateNDSliceOnDeviceView.
Definition at line 72 of file Compadre_Evaluator.hpp.
KOKKOS_INLINE_FUNCTION void Compadre::evaluateConstraints | ( | scratch_matrix_right_type | M, |
scratch_matrix_right_type | PsqrtW, | ||
const ConstraintType | constraint_type, | ||
const ReconstructionSpace | reconstruction_space, | ||
const int | NP, | ||
const double | cutoff_p, | ||
const int | dimension, | ||
const int | num_neighbors = 0 , |
||
scratch_matrix_right_type * | T = NULL |
||
) |
Definition at line 9 of file Compadre_CreateConstraints.hpp.
Kokkos::View<int*, output_array_layout, output_memory_space> Compadre::filterViewByID | ( | view_type_input_data | input_data_host_or_device, |
index_type | filtered_value | ||
) |
Definition at line 47 of file Compadre_Utilities.hpp.
KOKKOS_INLINE_FUNCTION double Compadre::GaussianCurvature | ( | const scratch_vector_type | a_, |
const double | h, | ||
const double | u1, | ||
const double | u2 | ||
) |
Gaussian curvature K at any point in the local chart.
Definition at line 50 of file Compadre_Manifold_Functions.hpp.
auto Compadre::get2DView | ( | const int | column_num, |
const int | block_size | ||
) | -> decltype(Kokkos::subview(_data_in, Kokkos::ALL)) |
Definition at line 82 of file Compadre_Evaluator.hpp.
KOKKOS_INLINE_FUNCTION int Compadre::getAdditionalAlphaSizeFromConstraint | ( | DenseSolverType | dense_solver_type, |
ConstraintType | constraint_type | ||
) |
Definition at line 43 of file Compadre_Misc.hpp.
KOKKOS_INLINE_FUNCTION int Compadre::getAdditionalCoeffSizeFromConstraintAndSpace | ( | DenseSolverType | dense_solver_type, |
ConstraintType | constraint_type, | ||
ReconstructionSpace | reconstruction_space, | ||
const int | dimension | ||
) |
Definition at line 53 of file Compadre_Misc.hpp.
KOKKOS_INLINE_FUNCTION double Compadre::getAreaFromVectors | ( | const member_type & | teamMember, |
view_type_1 | v1, | ||
view_type_2 | v2 | ||
) |
Definition at line 24 of file Compadre_Utilities.hpp.
KOKKOS_INLINE_FUNCTION void Compadre::getMidpointFromCellVertices | ( | const member_type & | teamMember, |
scratch_vector_type | midpoint_storage, | ||
scratch_matrix_right_type | cell_coordinates, | ||
const int | cell_num, | ||
const int | dim = 3 |
||
) |
Definition at line 10 of file Compadre_Utilities.hpp.
KOKKOS_INLINE_FUNCTION void Compadre::getPDims | ( | DenseSolverType | dense_solver_type, |
ConstraintType | constraint_type, | ||
ReconstructionSpace | reconstruction_space, | ||
const int | dimension, | ||
const int | M, | ||
const int | N, | ||
int & | out_row, | ||
int & | out_col | ||
) |
Definition at line 83 of file Compadre_Misc.hpp.
KOKKOS_INLINE_FUNCTION int Compadre::getRHSSquareDim | ( | DenseSolverType | dense_solver_type, |
ConstraintType | constraint_type, | ||
ReconstructionSpace | reconstruction_space, | ||
const int | dimension, | ||
const int | M, | ||
const int | N | ||
) |
Definition at line 64 of file Compadre_Misc.hpp.
KOKKOS_INLINE_FUNCTION double Compadre::MetricFactor | ( | const scratch_vector_type | a_, |
const double | h, | ||
const double | u1, | ||
const double | u2 | ||
) |
Metric factor (det(G)) at any point in the local chart.
Definition at line 6 of file Compadre_Manifold_Functions.hpp.
KOKKOS_INLINE_FUNCTION double Compadre::SurfaceCurlOfScalar | ( | const scratch_vector_type | a_, |
const double | h, | ||
const double | u1, | ||
const double | u2, | ||
int | x_pow, | ||
int | y_pow, | ||
const int | component | ||
) |
Surface curl at any point in the local chart.
Definition at line 96 of file Compadre_Manifold_Functions.hpp.
constexpr int Compadre::ActualReconstructionSpaceRank[] |
Number of actual components in the ReconstructionSpace.
Definition at line 86 of file Compadre_Operators.hpp.
constexpr SamplingFunctional Compadre::FaceNormalIntegralSample = make_sampling_functional(1,0,false,false,(int)Identity) |
For integrating polynomial dotted with normal over an edge.
Definition at line 160 of file Compadre_Operators.hpp.
constexpr SamplingFunctional Compadre::FaceNormalPointSample = make_sampling_functional(1,0,false,false,(int)Identity) |
For polynomial dotted with normal on edge.
Definition at line 163 of file Compadre_Operators.hpp.
constexpr SamplingFunctional Compadre::FaceTangentIntegralSample = make_sampling_functional(1,0,false,false,(int)Identity) |
For integrating polynomial dotted with tangent over an edge.
Definition at line 166 of file Compadre_Operators.hpp.
constexpr SamplingFunctional Compadre::FaceTangentPointSample = make_sampling_functional(1,0,false,false,(int)Identity) |
For polynomial dotted with tangent.
Definition at line 169 of file Compadre_Operators.hpp.
constexpr SamplingFunctional Compadre::ManifoldVectorPointSample = make_sampling_functional(1,1,false,false,(int)DifferentEachTarget) |
Point evaluations of the entire vector source function (but on a manifold, so it includes a transform into local coordinates)
Definition at line 148 of file Compadre_Operators.hpp.
constexpr SamplingFunctional Compadre::PointSample = make_sampling_functional(0,0,false,false,(int)Identity) |
Available sampling functionals.
Point evaluations of the scalar source function
Definition at line 141 of file Compadre_Operators.hpp.
constexpr SamplingFunctional Compadre::ScalarFaceAverageSample = make_sampling_functional(0,0,false,false,(int)DifferentEachNeighbor) |
For polynomial integrated on faces.
Definition at line 172 of file Compadre_Operators.hpp.
constexpr SamplingFunctional Compadre::StaggeredEdgeAnalyticGradientIntegralSample = make_sampling_functional(0,0,true,true,(int)SameForAll) |
Analytical integral of a gradient source vector is just a difference of the scalar source at neighbor and target.
Definition at line 151 of file Compadre_Operators.hpp.
constexpr SamplingFunctional Compadre::StaggeredEdgeIntegralSample = make_sampling_functional(1,0,true,true,(int)DifferentEachNeighbor) |
Samples consist of the result of integrals of a vector dotted with the tangent along edges between neighbor and target.
Definition at line 154 of file Compadre_Operators.hpp.
constexpr int Compadre::TargetOutputTensorRank[] |
Rank of target functional output for each TargetOperation Rank of target functional input for each TargetOperation is based on the output rank of the SamplingFunctional used on the polynomial basis.
PointEvaluation VectorPointEvaluation LaplacianOfScalarPointEvaluation VectorLaplacianPointEvaluation GradientOfScalarPointEvaluation GradientOfVectorPointEvaluation DivergenceOfVectorPointEvaluation CurlOfVectorPointEvaluation CurlCurlOfVectorPointEvaluation PartialXOfScalarPointEvaluation PartialYOfScalarPointEvaluation PartialZOfScalarPointEvaluation ChainedStaggeredLaplacianOfScalarPointEvaluation GaussianCurvaturePointEvaluation ScalarFaceAverageEvaluation
Definition at line 52 of file Compadre_Operators.hpp.
constexpr SamplingFunctional Compadre::VaryingManifoldVectorPointSample = make_sampling_functional(1,1,false,false,(int)DifferentEachNeighbor) |
For integrating polynomial dotted with normal over an edge.
Definition at line 157 of file Compadre_Operators.hpp.
constexpr SamplingFunctional Compadre::VectorPointSample = make_sampling_functional(1,1,false,false,(int)Identity) |
Point evaluations of the entire vector source function.
Definition at line 144 of file Compadre_Operators.hpp.