HypreSetup.hpp File Reference
#include <opm/simulators/linalg/PropertyTree.hpp>
#include <opm/simulators/linalg/gpuistl/detail/gpu_type_detection.hpp>
#include <opm/simulators/linalg/gpuistl/hypreinterface/HypreDataStructures.hpp>
#include <opm/simulators/linalg/gpuistl/hypreinterface/HypreErrorHandling.hpp>
#include <dune/istl/owneroverlapcopy.hh>
#include <dune/istl/paamg/graph.hh>
#include <dune/istl/paamg/pinfo.hh>
#include <dune/istl/repartition.hh>
#include <HYPRE.h>
#include <HYPRE_parcsr_ls.h>
#include <_hypre_utilities.h>
#include <algorithm>
#include <cstddef>
#include <numeric>
Include dependency graph for HypreSetup.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  Opm
 
namespace  Opm::gpuistl
 
namespace  Opm::gpuistl::HypreInterface
 Unified interface for Hypre operations with both CPU and GPU data structures.
 

Functions

template<typename T >
SparsityPattern Opm::gpuistl::HypreInterface::setupSparsityPatternFromGpuMatrix (const GpuSparseMatrix< T > &gpu_matrix, const ParallelInfo &par_info, bool owner_first)
 
template<typename T >
std::vector< HYPRE_Int > Opm::gpuistl::HypreInterface::computeRowIndexesWithMappingGpu (const GpuSparseMatrix< T > &gpu_matrix, const std::vector< int > &local_dune_to_local_hypre)
 
ParallelInfo Opm::gpuistl::HypreInterface::setupHypreParallelInfoSerial (HYPRE_Int N)
 Setup parallel information for Hypre in serial case. More...
 
template<typename CommType , typename MatrixType >
ParallelInfo Opm::gpuistl::HypreInterface::setupHypreParallelInfoParallel (const CommType &comm, const MatrixType &matrix)
 Create mappings between Dune and HYPRE indexing for parallel decomposition. More...
 
template<typename MatrixType >
SparsityPattern Opm::gpuistl::HypreInterface::setupSparsityPatternFromCpuMatrix (const MatrixType &matrix, const ParallelInfo &par_info, bool owner_first)
 Setup sparsity pattern from CPU matrix (BCRSMatrix) More...
 
template<typename MatrixType >
std::vector< HYPRE_Int > Opm::gpuistl::HypreInterface::computeRowIndexesWithMappingCpu (const MatrixType &matrix, const std::vector< HYPRE_Int > &ncols, const std::vector< int > &local_dune_to_local_hypre, bool owner_first)
 
template<typename MatrixType >
std::vector< HYPRE_Int > Opm::gpuistl::HypreInterface::computeRowIndexesWithMappingCpu (const MatrixType &matrix, const std::vector< int > &local_dune_to_local_hypre)
 Compute row indexes for CPU matrix with ownership mapping. More...
 
void Opm::gpuistl::HypreInterface::initialize (bool use_gpu_backend)
 Initialize the Hypre library and set memory/execution policy. More...
 
HYPRE_Solver Opm::gpuistl::HypreInterface::createAMGSolver ()
 Create Hypre solver (BoomerAMG) More...
 
void Opm::gpuistl::HypreInterface::setSolverParameters (HYPRE_Solver solver, const PropertyTree &prm, bool use_gpu_backend)
 Set solver parameters from property tree. More...
 
template<typename CommType >
HYPRE_IJMatrix Opm::gpuistl::HypreInterface::createMatrix (HYPRE_Int N, HYPRE_Int dof_offset, const CommType &comm)
 Create Hypre matrix. More...
 
template<typename CommType >
HYPRE_IJVector Opm::gpuistl::HypreInterface::createVector (HYPRE_Int N, HYPRE_Int dof_offset, const CommType &comm)
 Create Hypre vector. More...
 
void Opm::gpuistl::HypreInterface::destroySolver (HYPRE_Solver solver)
 Destroy Hypre solver. More...
 
void Opm::gpuistl::HypreInterface::destroyMatrix (HYPRE_IJMatrix matrix)
 Destroy Hypre matrix. More...
 
void Opm::gpuistl::HypreInterface::destroyVector (HYPRE_IJVector vector)
 Destroy Hypre vector. More...
 
template<typename CommType , typename MatrixType >
ParallelInfo Opm::gpuistl::HypreInterface::setupHypreParallelInfo (const CommType &comm, const MatrixType &matrix)
 Setup parallel information for Hypre (automatically detects serial/parallel) More...
 
template<typename MatrixType >
SparsityPattern Opm::gpuistl::HypreInterface::setupSparsityPattern (const MatrixType &matrix, const ParallelInfo &par_info, bool owner_first)
 Setup sparsity pattern from matrix (automatically detects CPU/GPU type) More...
 
template<typename MatrixType >
std::vector< HYPRE_Int > Opm::gpuistl::HypreInterface::computeRowIndexes (const MatrixType &matrix, const std::vector< HYPRE_Int > &ncols, const std::vector< int > &local_dune_to_local_hypre, bool owner_first)
 Compute row indexes for HYPRE_IJMatrixSetValues2. More...