Hypre::HyprePreconditioner< M, X, Y, Comm > Class Template Reference Wrapper for Hypre's BoomerAMG preconditioner. More...
Inheritance diagram for Hypre::HyprePreconditioner< M, X, Y, Comm >:
![]()
Detailed Descriptiontemplate<class M, class X, class Y, class Comm> class Hypre::HyprePreconditioner< M, X, Y, Comm > Wrapper for Hypre's BoomerAMG preconditioner. This class provides an interface to the BoomerAMG preconditioner from the Hypre library. It is designed to work with matrices, update vectors, and defect vectors specified by the template parameters. The HypreInterface class provides a unified interface to Hypre's functionality, allowing for easy switching between CPU and GPU input data types and backend acceleration. Supports four use cases:
Member Typedef Documentation◆ domain_type
template<class M , class X , class Y , class Comm >
The domain type of the preconditioner. ◆ matrix_field_type
template<class M , class X , class Y , class Comm >
The field type of the matrix. ◆ matrix_type
template<class M , class X , class Y , class Comm >
The matrix type the preconditioner is for. ◆ range_type
template<class M , class X , class Y , class Comm >
The range type of the preconditioner. ◆ vector_field_type
template<class M , class X , class Y , class Comm >
The field type of the vectors. Constructor & Destructor Documentation◆ HyprePreconditioner()
template<class M , class X , class Y , class Comm >
Constructor for the HyprePreconditioner class. Initializes the preconditioner with the given matrix and property tree.
References Opm::gpuistl::SparsityPattern::cols, Opm::gpuistl::HypreDeviceDataArrays::cols_device, Opm::gpuistl::HypreInterface::computeRowIndexes(), Opm::gpuistl::HypreHostDataArrays::continuous_vector_values, Opm::gpuistl::HypreInterface::createAMGSolver(), Opm::gpuistl::HypreInterface::createMatrix(), Opm::gpuistl::HypreInterface::createVector(), Opm::gpuistl::ParallelInfo::dof_offset, Opm::gpuistl::HypreHostDataArrays::indices, Opm::gpuistl::HypreDeviceDataArrays::indices_device, Opm::gpuistl::HypreInterface::initialize(), Opm::gpuistl::ParallelInfo::local_dune_to_local_hypre, Opm::gpuistl::HypreDeviceDataArrays::matrix_buffer_device, Opm::gpuistl::ParallelInfo::N_owned, Opm::gpuistl::SparsityPattern::ncols, Opm::gpuistl::HypreDeviceDataArrays::ncols_device, Opm::gpuistl::SparsityPattern::nnz, Opm::gpuistl::ParallelInfo::owner_first, Opm::gpuistl::HypreHostDataArrays::row_indexes, Opm::gpuistl::HypreDeviceDataArrays::row_indexes_device, Opm::gpuistl::SparsityPattern::rows, Opm::gpuistl::HypreDeviceDataArrays::rows_device, Opm::gpuistl::HypreInterface::setSolverParameters(), Opm::gpuistl::HypreInterface::setupHypreParallelInfo(), Opm::gpuistl::HypreInterface::setupSparsityPattern(), Hypre::HyprePreconditioner< M, X, Y, Comm >::update(), and Opm::gpuistl::HypreDeviceDataArrays::vector_buffer_device. ◆ ~HyprePreconditioner()
template<class M , class X , class Y , class Comm >
Destructor for HyprePreconditioner. Cleans up resources allocated by the preconditioner. References Opm::gpuistl::HypreDeviceDataArrays::cols_device, Opm::gpuistl::HypreInterface::destroyMatrix(), Opm::gpuistl::HypreInterface::destroySolver(), Opm::gpuistl::HypreInterface::destroyVector(), Opm::gpuistl::HypreDeviceDataArrays::indices_device, Opm::gpuistl::HypreDeviceDataArrays::matrix_buffer_device, Opm::gpuistl::HypreDeviceDataArrays::ncols_device, Opm::gpuistl::HypreDeviceDataArrays::row_indexes_device, Opm::gpuistl::HypreDeviceDataArrays::rows_device, and Opm::gpuistl::HypreDeviceDataArrays::vector_buffer_device. Member Function Documentation◆ apply()
template<class M , class X , class Y , class Comm >
Applies the preconditioner to a vector. Performs one AMG V-cycle to solve the system. Involves uploading vectors to Hypre, applying the preconditioner, and transferring the result back to the vector.
References HYPRE_SAFE_CALL, Opm::gpuistl::HypreInterface::transferVectorFromHypre(), and Opm::gpuistl::HypreInterface::transferVectorToHypre(). ◆ category()
template<class M , class X , class Y , class Comm >
Returns the solver category.
◆ hasPerfectUpdate()
template<class M , class X , class Y , class Comm >
Checks if the preconditioner has a perfect update.
Implements Dune::PreconditionerWithUpdate< X, Y >. ◆ post()
template<class M , class X , class Y , class Comm >
Post-processing step after applying the preconditioner. This method is currently a no-op.
◆ pre()
template<class M , class X , class Y , class Comm >
Pre-processing step before applying the preconditioner. This method is currently a no-op.
◆ update()
template<class M , class X , class Y , class Comm >
Updates the preconditioner with the current matrix values. This method should be called whenever the matrix values change. Implements Dune::PreconditionerWithUpdate< X, Y >. References HYPRE_SAFE_CALL, and Opm::gpuistl::HypreInterface::updateMatrixValues(). Referenced by Hypre::HyprePreconditioner< M, X, Y, Comm >::HyprePreconditioner(). The documentation for this class was generated from the following file: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||