hypreinterface/HypreSetup.hpp File Reference
#include <opm/simulators/linalg/PropertyTree.hpp>
#include <opm/simulators/linalg/hypreinterface/HypreDataStructures.hpp>
#include <opm/simulators/linalg/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 hypreinterface/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::linalg
 
namespace  Opm::linalg::HypreInterface
 Unified interface for Hypre operations with both CPU and GPU data structures.
 

Functions

ParallelInfo Opm::linalg::HypreInterface::setupHypreParallelInfoSerial (HYPRE_Int N)
 Setup parallel information for Hypre in serial case. More...
 
template<typename CommType , typename MatrixType >
ParallelInfo Opm::linalg::HypreInterface::setupHypreParallelInfoParallel (const CommType &comm, const MatrixType &matrix)
 Create mappings between Dune and HYPRE indexing for parallel decomposition. More...
 
template<typename MatrixType >
SparsityPattern Opm::linalg::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::linalg::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::linalg::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::linalg::HypreInterface::initialize (bool use_gpu_backend)
 Initialize the Hypre library and set memory/execution policy. More...
 
HYPRE_Solver Opm::linalg::HypreInterface::createAMGSolver ()
 Create Hypre solver (BoomerAMG) More...
 
void Opm::linalg::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::linalg::HypreInterface::createMatrix (HYPRE_Int N, HYPRE_Int dof_offset, const CommType &comm)
 Create Hypre matrix. More...
 
template<typename CommType >
HYPRE_IJVector Opm::linalg::HypreInterface::createVector (HYPRE_Int N, HYPRE_Int dof_offset, const CommType &comm)
 Create Hypre vector. More...
 
void Opm::linalg::HypreInterface::destroySolver (HYPRE_Solver solver)
 Destroy Hypre solver. More...
 
void Opm::linalg::HypreInterface::destroyMatrix (HYPRE_IJMatrix matrix)
 Destroy Hypre matrix. More...
 
void Opm::linalg::HypreInterface::destroyVector (HYPRE_IJVector vector)
 Destroy Hypre vector. More...
 
template<typename CommType , typename MatrixType >
ParallelInfo Opm::linalg::HypreInterface::setupHypreParallelInfo (const CommType &comm, const MatrixType &matrix)
 Setup parallel information for Hypre (automatically detects serial/parallel) More...
 
template<typename MatrixType >
SparsityPattern Opm::linalg::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::linalg::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...