![]() |
PACMAN 0.1.0
Portable Algorithms for Coupling, Mapping, and Adaptive iNterpolation
|
Namespaces | |
| namespace | FiniteElements |
| namespace | fp_consts |
| namespace | MLS |
| namespace | RbfPum |
Classes | |
| struct | ExecSpaces |
| Constants representing available Kokkos execution spaces as unsigned chars, usable both from C++ and the Python bindings. More... | |
| struct | FeInterpolateResult |
| Result of a finite-elements interpolation call. More... | |
| struct | is_kokkos_array |
| struct | is_kokkos_array< Kokkos::Array< T, N > > |
| struct | is_kokkos_view |
| struct | is_kokkos_view< Kokkos::View< DataType, P... > > |
| struct | MLSInterpolateResult |
| Result of a Moving Least Squares interpolation call. More... | |
| struct | RbfFunctions |
| Constants representing available RBF basis functions as unsigned chars, matching PyBindingsRbf::RbfFunctions in the Python bindings. More... | |
| struct | RbfInterpolateResult |
| Result of an RBF-PUM interpolation call. More... | |
Concepts | |
| concept | IsKokkosView |
| concept | IsRank |
| concept | IsRBFFunction |
| concept | IsKokkosArray |
| concept | IsValidDim |
| concept | KokkosViewRank |
| concept | KokkosArray |
| concept | RBFFunction |
Typedefs | |
| using | AvailableExecSpaces = std::variant< > |
| A type variant which defines the enabled Kokkos execution spaces. | |
| typedef double | fp_t |
| typedef double | coordinates_t |
| typedef int32_t | int_t |
| typedef int32_t | shortint_t |
| typedef uint32_t | index_t |
| typedef int32_t | offset_t |
| typedef int32_t | method_t |
| typedef int32_t | cell_t |
| typedef int32_t | status_t |
| typedef int32_t | geosupport_t |
| using | ExecSpaces = PACMAN::ExecSpaces |
Enumerations | |
| enum class | TransferMethods : method_t { NEAREST_NEAREST = 0xF0 , INTERP_CLAMP = 0xF1 , INTERP_NEAREST = 0xF2 , INTERP_ZEROFILL = 0xF3 , INTERP_EXTRAP = 0xF4 , RBF_PUM = 0xF5 , MLS = 0xF6 } |
| enum class | TransferStatus : status_t { OUTSIDE , NEAREST , INTER , EXTRAP , CLAMP } |
| enum class | GeoSupport : geosupport_t { NA , POINT , LINE , TRIANGLE , QUAD , TETRA , HEXAHEDRON , WEDGE , PYRAMID } |
| enum class | CellType : cell_t { VTK_EMPTY_CELL , VTK_VERTEX , VTK_LINE , VTK_QUADRATIC_EDGE , VTK_TRIANGLE , VTK_QUAD , VTK_QUADRATIC_TRIANGLE , VTK_QUADRATIC_QUAD , VTK_TETRA , VTK_HEXAHEDRON , VTK_WEDGE , VTK_PYRAMID , VTK_QUADRATIC_TETRA , VTK_QUADRATIC_HEXAHEDRON , VTK_QUADRATIC_WEDGE , VTK_QUADRATIC_PYRAMID } |
| using PACMAN::AvailableExecSpaces = typedef std::variant< > |
A type variant which defines the enabled Kokkos execution spaces.
Used to dispatch runtime execution-space selectors to template arguments.
Definition at line 29 of file execspaces.hpp.
Definition at line 18 of file interface.hpp.
|
strong |
|
strong |
|
strong |
|
strong |
| FeInterpolateResult PACMAN::fe_interpolate | ( | int_t | spaceDimension, |
| unsigned char | execSpace, | ||
| method_t | method, | ||
| coordinates_t * | sourcePoints, | ||
| int_t | nSourcePoints, | ||
| fp_t * | sourceValues, | ||
| int_t * | connVal, | ||
| int_t | connValSize, | ||
| offset_t * | connOff, | ||
| int_t | connOffSize, | ||
| cell_t * | cellTypes, | ||
| coordinates_t * | targetPoints, | ||
| int_t | nTargetPoints, | ||
| bool | fortranIndexing = false |
||
| ) |
C++ interface for finite-elements interpolation.
Mirrors pacman.fe.interpolate from the Python bindings, accepting raw pointers instead of NumPy arrays. All pointer arrays are row-major.
| spaceDimension | Geometric dimension of points (1, 2, or 3). |
| execSpace | Execution-space selector ( |
| method | Transfer method ( |
| sourcePoints | Row-major source points [nSourcePoints × spaceDimension]. |
| nSourcePoints | Number of source points. |
| sourceValues | Source scalar values, length nSourcePoints. |
| connVal | Flattened CSR connectivity values; may be null for NEAREST_NEAREST. |
| connValSize | Number of entries in connVal. |
| connOff | CSR connectivity offsets; may be null for NEAREST_NEAREST. |
| connOffSize | Number of entries in connOff (= nElems + 1). |
| cellTypes | PACMAN CellType per element, length connOffSize - 1; use vtk_to_pacman_cell_type to convert from VTK IDs. |
| targetPoints | Row-major target points [nTargetPoints × spaceDimension]. |
| nTargetPoints | Number of target points. |
| fortranIndexing | Whether the connectivity arrays use 1-based indexing (true) or 0-based indexing (false, default). Only relevant if connVal and connOff are provided. |
targetValues and targetStatus of length nTargetPoints. | std::invalid_argument | on inconsistent sizes. |
| std::runtime_error | if spaceDimension is not in {1, 2, 3}. |
Definition at line 89 of file interface.cpp.
Referenced by pacman_fe_interpolate_c().
Generic C++ interface to PACMAN interpolation methods.
The interpolation algorithm is selected through transfer.method and then dispatched to the corresponding implementation:
| ExecSpace | Kokkos execution space used by PACMAN kernels. |
| Dim | Spatial dimension of source/target points. |
| [in,out] | transfer | Transfer descriptor containing source/target data, interpolation method, and output buffers. |
Definition at line 41 of file interpolate.hpp.
References PACMAN::FiniteElements::FTInterClamp(), PACMAN::FiniteElements::FTInterExtrap(), PACMAN::FiniteElements::FTInterpNearest(), PACMAN::FiniteElements::FTInterZero(), PACMAN::FiniteElements::FTNearest(), INTERP_CLAMP, INTERP_EXTRAP, INTERP_NEAREST, INTERP_ZEROFILL, and NEAREST_NEAREST.
|
inlinestatic |
Converts an execution-space selector byte to a variant type.
Definition at line 52 of file execspaces.hpp.
References PACMAN::ExecSpaces::CUDA, PACMAN::ExecSpaces::HIP, PACMAN::ExecSpaces::OPENMP, PACMAN::ExecSpaces::SERIAL, PACMAN::ExecSpaces::SYCL, and PACMAN::ExecSpaces::THREADS.
| MLSInterpolateResult PACMAN::MLS_interpolate | ( | int_t | spaceDimension, |
| unsigned char | execSpace, | ||
| coordinates_t * | sourcePoints, | ||
| int_t | nSourcePoints, | ||
| fp_t * | sourceValues, | ||
| coordinates_t * | targetPoints, | ||
| int_t | nTargetPoints | ||
| ) |
C++ interface for Moving Least Squares (MLS) interpolation.
Mirrors pacman.MLS.interpolate from the Python bindings, accepting raw pointers instead of NumPy arrays. Points arrays are row-major [nPoints × spaceDimension].
| spaceDimension | Geometric dimension (1, 2, or 3). |
| execSpace | Execution-space selector ( |
| sourcePoints | Row-major source points [nSourcePoints × spaceDimension]. |
| nSourcePoints | Number of source points. |
| sourceValues | Source scalar values, length nSourcePoints. |
| targetPoints | Row-major target points [nTargetPoints × spaceDimension]. |
| nTargetPoints | Number of target points. |
targetValues of length nTargetPoints. | std::invalid_argument | on inconsistent sizes / null pointers. |
| std::runtime_error | if spaceDimension is not in {1, 2, 3}. |
Definition at line 77 of file mls_interface.cpp.
Referenced by pacman_mls_interpolate_c().
| RbfInterpolateResult PACMAN::rbf_interpolate | ( | int_t | spaceDimension, |
| unsigned char | execSpace, | ||
| unsigned char | rbfFunction, | ||
| coordinates_t * | sourcePoints, | ||
| int_t | nSourcePoints, | ||
| fp_t * | sourceValues, | ||
| coordinates_t * | targetPoints, | ||
| int_t | nTargetPoints | ||
| ) |
C++ interface for RBF-PUM interpolation.
Mirrors pacman.rbf.interpolate from the Python bindings, accepting raw pointers instead of NumPy arrays. Points arrays are row-major [nPoints × spaceDimension].
| spaceDimension | Geometric dimension (1, 2, or 3). |
| execSpace | Execution-space selector ( |
| rbfFunction | RBF basis function selector ( |
| sourcePoints | Row-major source points [nSourcePoints × spaceDimension]. |
| nSourcePoints | Number of source points. |
| sourceValues | Source scalar values, length nSourcePoints. |
| targetPoints | Row-major target points [nTargetPoints × spaceDimension]. |
| nTargetPoints | Number of target points. |
targetValues of length nTargetPoints. | std::invalid_argument | on inconsistent sizes / null pointers. |
| std::runtime_error | if spaceDimension is not in {1, 2, 3}. |
Definition at line 102 of file rbf_interface.cpp.
Referenced by pacman_rbf_interpolate_c().
Return the topological dimension for a VTK cell type identifier.
Equivalent to pacman.fe.vtk_cell_dim from the Python bindings.
| vtkCellType | VTK cell type ID. |
| std::runtime_error | if the cell type is unsupported. |
Definition at line 155 of file interface.cpp.
Referenced by pacman_vtk_cell_dim_c().
Convert an array of VTK cell type IDs to PACMAN CellType enum values.
Equivalent to pacman.fe.vtk_to_pacman_cell_type from the Python bindings.
| vtkTypes | Input array of VTK cell type identifiers, length n. |
| pacmanTypes | Output array of PACMAN CellType values, length n. |
| n | Number of cell types to convert. |
| std::runtime_error | if an unsupported VTK cell type is encountered. |
Definition at line 123 of file interface.cpp.
References VTK_HEXAHEDRON, VTK_LINE, VTK_PYRAMID, VTK_QUAD, VTK_QUADRATIC_EDGE, VTK_QUADRATIC_HEXAHEDRON, VTK_QUADRATIC_PYRAMID, VTK_QUADRATIC_QUAD, VTK_QUADRATIC_TETRA, VTK_QUADRATIC_TRIANGLE, VTK_QUADRATIC_WEDGE, VTK_TETRA, VTK_TRIANGLE, VTK_VERTEX, and VTK_WEDGE.
Referenced by pacman_vtk_to_pacman_cell_type_c().