|
preCICE
|
#include <BatchedRBFSolver.hpp>
Public Types | |
| using | RBF_T = RADIAL_BASIS_FUNCTION_T |
Public Member Functions | |
| BatchedRBFSolver (RBF_T basisFunction, mesh::PtrMesh inMesh, mesh::PtrMesh outMesh, const std::vector< mesh::Vertex > ¢ers, double clusterRadius, Polynomial polynomial, bool computeEvaluationOffline, MappingConfiguration::GinkgoParameter ginkgoParameter) | |
| void | solveConsistent (const time::Sample &globalIn, Eigen::VectorXd &globalOut) |
| void | solveConservative (const time::Sample &globalIn, Eigen::VectorXd &globalOut) |
Private Types | |
| enum class | SolverConstraint { Consistent , Conservative } |
Private Member Functions | |
| template<BatchedRBFSolver< RADIAL_BASIS_FUNCTION_T >::SolverConstraint Constraint> | |
| void | _solveImpl (const time::Sample &globalIn, Eigen::VectorXd &globalOut) |
| template<SolverConstraint Constraint, typename... Args> | |
| void | _dispatch_solve_kernel (bool polynomial, bool evaluation_op_available, Args &&...args) |
Private Attributes | |
| precice::logging::Logger | _log {"mapping::BatchedRBFSolver"} |
| VectorOffsetView | _inOffsets |
| VectorOffsetView | _outOffsets |
| GlobalIDView | _globalInIDs |
| GlobalIDView | _globalOutIDs |
| MatrixOffsetView | _kernelOffsets |
| MatrixOffsetView | _evaluationOffsets |
| MeshView | _inMesh |
| MeshView | _outMesh |
| VectorView | _qrMatrix |
| VectorView | _qrTau |
| PivotView | _qrP |
| VectorView | _kernelMatrices |
| VectorView | _evalMatrices |
| VectorView | _normalizedWeights |
| VectorView | _inData |
| VectorView | _outData |
| int | _maxInClusterSize |
| int | _maxOutClusterSize |
| RBF_T | _basisFunction |
| Polynomial | _polynomial |
| const int | _nCluster |
| const int | _dim |
| int | _avgClusterSize {} |
| const bool | _computeEvaluationOffline |
This class solves the PU-RBF interpolation in a batched manner, i.e., clusters are computed in parallel. The parallelization can be handled through GPUs or OpenMP. It uses Kokkos-kernels dispatch the kernels on the selected execution backend. Only the mesh indexing is handled on the CPU through boost geometry, all other components are handled in parallel. The solver is compatible with the MPI-parallel layout of the PURBF class itself, which means in this case that the problem is solved purely local, but each rank can instantiate and launch its own solver.
Definition at line 34 of file BatchedRBFSolver.hpp.
| using precice::mapping::BatchedRBFSolver< RADIAL_BASIS_FUNCTION_T >::RBF_T = RADIAL_BASIS_FUNCTION_T |
Definition at line 36 of file BatchedRBFSolver.hpp.
|
strongprivate |
| Enumerator | |
|---|---|
| Consistent | |
| Conservative | |
Definition at line 57 of file BatchedRBFSolver.hpp.
| precice::mapping::BatchedRBFSolver< RADIAL_BASIS_FUNCTION_T >::BatchedRBFSolver | ( | RBF_T | basisFunction, |
| mesh::PtrMesh | inMesh, | ||
| mesh::PtrMesh | outMesh, | ||
| const std::vector< mesh::Vertex > & | centers, | ||
| double | clusterRadius, | ||
| Polynomial | polynomial, | ||
| bool | computeEvaluationOffline, | ||
| MappingConfiguration::GinkgoParameter | ginkgoParameter ) |
Essentially an initialize of the solver: allocates device memory and computes the LU decompositions etc
Definition at line 111 of file BatchedRBFSolver.hpp.
|
private |
|
private |
| void precice::mapping::BatchedRBFSolver< RADIAL_BASIS_FUNCTION_T >::solveConservative | ( | const time::Sample & | globalIn, |
| Eigen::VectorXd & | globalOut ) |
| void precice::mapping::BatchedRBFSolver< RADIAL_BASIS_FUNCTION_T >::solveConsistent | ( | const time::Sample & | globalIn, |
| Eigen::VectorXd & | globalOut ) |
|
private |
Definition at line 105 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 101 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 106 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 104 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 89 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 78 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 74 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 75 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 93 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 80 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 70 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 87 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 77 of file BatchedRBFSolver.hpp.
|
mutableprivate |
Definition at line 54 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 98 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 99 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 103 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 90 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 95 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 81 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 71 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 102 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 83 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 85 of file BatchedRBFSolver.hpp.
|
private |
Definition at line 84 of file BatchedRBFSolver.hpp.