|
preCICE
|
#include <GinkgoRadialBasisFctSolver.hpp>
Public Types | |
| using | BASIS_FUNCTION_T = RADIAL_BASIS_FUNCTION_T |
Public Member Functions | |
| template<typename IndexContainer> | |
| GinkgoRadialBasisFctSolver (RADIAL_BASIS_FUNCTION_T basisFunction, const mesh::Mesh &inputMesh, const IndexContainer &inputIDs, const mesh::Mesh &outputMesh, const IndexContainer &outputIDs, std::vector< bool > deadAxis, Polynomial polynomial, MappingConfiguration::GinkgoParameter ginkgoParameter) | |
| Assembles the system matrices and computes the decomposition of the interpolation matrix. | |
| Eigen::MatrixXd | solveConsistent (const Eigen::MatrixXd &inputData, Polynomial polynomial) |
| Maps the given input data. | |
| Eigen::MatrixXd | solveConservative (const Eigen::MatrixXd &inputData, Polynomial polynomial) |
| Maps the given input data. | |
| void | clear () |
| Eigen::Index | getInputSize () const |
| Eigen::Index | getOutputSize () const |
| std::shared_ptr< gko::Executor > | getReferenceExecutor () const |
Private Member Functions | |
| void | _solveRBFSystem (const std::shared_ptr< GinkgoVector > &rhs) const |
Private Attributes | |
| precice::logging::Logger | _log {"mapping::GinkgoRadialBasisFctSolver"} |
| std::shared_ptr< gko::Executor > | _deviceExecutor |
| std::shared_ptr< gko::Executor > | _hostExecutor = gko::ReferenceExecutor::create() |
| std::shared_ptr< GinkgoMatrix > | _rbfSystemMatrix |
| std::shared_ptr< GinkgoMatrix > | _matrixA |
| Evaluation matrix (output x input) | |
| std::shared_ptr< GinkgoMatrix > | _matrixQ |
| Polynomial matrix of the input mesh (for separate polynomial) | |
| std::shared_ptr< gko::LinOp > | _matrixQ_T |
| Transposed Polynomial matrix of the input mesh (for separate polynomial) (to solve Q^T*Q*x=Q^T*b) | |
| std::shared_ptr< gko::LinOp > | _matrixQ_TQ |
| Product Q^T*Q (to solve Q^TQx=Q^Tb) | |
| std::shared_ptr< gko::LinOp > | _matrixQQ_T |
| Product Q*Q^T. | |
| std::shared_ptr< GinkgoVector > | _polynomialRhs |
| Right-hand side of the polynomial system. | |
| std::shared_ptr< GinkgoVector > | _subPolynomialContribution |
| Subtraction of the polynomial contribution. | |
| std::shared_ptr< GinkgoVector > | _addPolynomialContribution |
| Addition of the polynomial contribution. | |
| std::shared_ptr< GinkgoMatrix > | _matrixV |
| Polynomial matrix of the output mesh (for separate polynomial) | |
| std::shared_ptr< GinkgoVector > | _rbfCoefficients |
| Stores the calculated coefficients of the RBF interpolation. | |
| std::shared_ptr< GinkgoVector > | _polynomialContribution |
| std::shared_ptr< GinkgoMatrix > | _decompMatrixQ_T |
| Matrix Q^T of QR decomposition. | |
| std::shared_ptr< GinkgoMatrix > | _dQ_T_Rhs |
| Q^T * b of QR decomposition. | |
| std::shared_ptr< GinkgoMatrix > | _decompMatrixR |
| Matrix R of QR decomposition. | |
| std::shared_ptr< triangular > | _triangularSolver |
| Backwards Solver. | |
| std::shared_ptr< cg > | _cgSolver = nullptr |
| QR Solver. | |
| std::shared_ptr< gmres > | _gmresSolver = nullptr |
| std::shared_ptr< cg > | _polynomialSolver = nullptr |
| GinkgoSolverType | _solverType = GinkgoSolverType::CG |
| GinkgoPreconditionerType | _preconditionerType |
| std::shared_ptr< GinkgoScalar > | _scalarOne |
| std::shared_ptr< GinkgoScalar > | _scalarNegativeOne |
| std::shared_ptr< gko::stop::Iteration::Factory > | _iterationCriterion |
| std::shared_ptr< gko::stop::ResidualNorm<>::Factory > | _residualCriterion |
| std::shared_ptr< gko::stop::ResidualNorm<>::Factory > | _absoluteResidualCriterion |
| MappingConfiguration::GinkgoParameter | _ginkgoParameter |
This class assembles and solves an RBF system, given an input mesh and an output mesh with relevant vertex IDs. It uses iterative solvers (CG, GMRES) and preconditioners ((Block-)Jacobi, Cholesky, Ilu) to solve the interpolation systems. Furthermore, it optionally does that on Nvidia or AMD GPUs which provides significant speedup over (single-threaded) CPU implementations.
Definition at line 63 of file GinkgoRadialBasisFctSolver.hpp.
| using precice::mapping::GinkgoRadialBasisFctSolver< RADIAL_BASIS_FUNCTION_T >::BASIS_FUNCTION_T = RADIAL_BASIS_FUNCTION_T |
Definition at line 65 of file GinkgoRadialBasisFctSolver.hpp.
| precice::mapping::GinkgoRadialBasisFctSolver< RADIAL_BASIS_FUNCTION_T >::GinkgoRadialBasisFctSolver | ( | RADIAL_BASIS_FUNCTION_T | basisFunction, |
| const mesh::Mesh & | inputMesh, | ||
| const IndexContainer & | inputIDs, | ||
| const mesh::Mesh & | outputMesh, | ||
| const IndexContainer & | outputIDs, | ||
| std::vector< bool > | deadAxis, | ||
| Polynomial | polynomial, | ||
| MappingConfiguration::GinkgoParameter | ginkgoParameter ) |
Assembles the system matrices and computes the decomposition of the interpolation matrix.
Definition at line 170 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 426 of file GinkgoRadialBasisFctSolver.hpp.
| void precice::mapping::GinkgoRadialBasisFctSolver< RADIAL_BASIS_FUNCTION_T >::clear | ( | ) |
Definition at line 654 of file GinkgoRadialBasisFctSolver.hpp.
| Eigen::Index precice::mapping::GinkgoRadialBasisFctSolver< RADIAL_BASIS_FUNCTION_T >::getInputSize | ( | ) | const |
Definition at line 642 of file GinkgoRadialBasisFctSolver.hpp.
| Eigen::Index precice::mapping::GinkgoRadialBasisFctSolver< RADIAL_BASIS_FUNCTION_T >::getOutputSize | ( | ) | const |
Definition at line 648 of file GinkgoRadialBasisFctSolver.hpp.
| std::shared_ptr< gko::Executor > precice::mapping::GinkgoRadialBasisFctSolver< RADIAL_BASIS_FUNCTION_T >::getReferenceExecutor | ( | ) | const |
Definition at line 636 of file GinkgoRadialBasisFctSolver.hpp.
| Eigen::MatrixXd precice::mapping::GinkgoRadialBasisFctSolver< RADIAL_BASIS_FUNCTION_T >::solveConservative | ( | const Eigen::MatrixXd & | inputData, |
| Polynomial | polynomial ) |
Maps the given input data.
Definition at line 534 of file GinkgoRadialBasisFctSolver.hpp.
| Eigen::MatrixXd precice::mapping::GinkgoRadialBasisFctSolver< RADIAL_BASIS_FUNCTION_T >::solveConsistent | ( | const Eigen::MatrixXd & | inputData, |
| Polynomial | polynomial ) |
Maps the given input data.
Definition at line 459 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 163 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Addition of the polynomial contribution.
Definition at line 118 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
QR Solver.
Definition at line 144 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Matrix Q^T of QR decomposition.
Definition at line 129 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Matrix R of QR decomposition.
Definition at line 135 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 90 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Q^T * b of QR decomposition.
Definition at line 132 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 165 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 145 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 91 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 159 of file GinkgoRadialBasisFctSolver.hpp.
|
mutableprivate |
Definition at line 88 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Evaluation matrix (output x input)
Definition at line 97 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Polynomial matrix of the input mesh (for separate polynomial)
Definition at line 100 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Transposed Polynomial matrix of the input mesh (for separate polynomial) (to solve Q^T*Q*x=Q^T*b)
Definition at line 103 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Product Q^T*Q (to solve Q^TQx=Q^Tb)
Definition at line 106 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Product Q*Q^T.
Definition at line 109 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Polynomial matrix of the output mesh (for separate polynomial)
Definition at line 121 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 126 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Right-hand side of the polynomial system.
Definition at line 112 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 147 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 151 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Stores the calculated coefficients of the RBF interpolation.
Definition at line 124 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 94 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 161 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 155 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 154 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Definition at line 149 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Subtraction of the polynomial contribution.
Definition at line 115 of file GinkgoRadialBasisFctSolver.hpp.
|
private |
Backwards Solver.
Definition at line 138 of file GinkgoRadialBasisFctSolver.hpp.