Block-Structured AMR Software Framework
amrex::Hypre Class Referenceabstract

#include <AMReX_Hypre.H>

Inheritance diagram for amrex::Hypre:
amrex::HypreABecLap amrex::HypreABecLap2 amrex::HypreABecLap3

Public Types

enum class  Interface : int { structed , semi_structed , ij }
 

Public Member Functions

 Hypre (const BoxArray &grids, const DistributionMapping &dmap, const Geometry &geom, MPI_Comm comm_)
 
virtual ~Hypre ()
 
 Hypre (Hypre &&) noexcept=default
 
Hypreoperator= (Hypre &&) noexcept=default
 
 Hypre (Hypre const &)=delete
 
Hypreoperator= (Hypre const &)=delete
 
void setScalars (Real sa, Real sb)
 
void setACoeffs (const MultiFab &alpha)
 
void setBCoeffs (const Array< const MultiFab *, BL_SPACEDIM > &beta)
 
void setVerbose (int _verbose)
 
void setIsMatrixSingular (bool flag)
 
virtual void solve (MultiFab &soln, const MultiFab &rhs, Real rel_tol, Real abs_tol, int max_iter, const BndryData &bndry, int max_bndry_order)=0
 
void setHypreOptionsNamespace (const std::string &ns) noexcept
 
void setHypreOldDefault (bool l) noexcept
 
void setHypreRelaxType (int n) noexcept
 
void setHypreRelaxOrder (int n) noexcept
 
void setHypreNumSweeps (int n) noexcept
 
void setHypreStrongThreshold (Real t) noexcept
 

Static Public Member Functions

static HYPRE_Int ispow2 (HYPRE_Int i)
 
static Array< HYPRE_Int, AMREX_SPACEDIM > loV (const Box &b)
 
static Array< HYPRE_Int, AMREX_SPACEDIM > hiV (const Box &b)
 

Static Public Attributes

static constexpr HYPRE_Int regular_stencil_size = 2*AMREX_SPACEDIM + 1
 
static constexpr HYPRE_Int eb_stencil_size = AMREX_D_TERM(3, *3, *3)
 

Protected Attributes

MPI_Comm comm = MPI_COMM_NULL
 
Geometry geom
 
int verbose = 0
 
bool old_default = true
 
int relax_type = 6
 
int relax_order = 1
 
int num_sweeps = 2
 
Real strong_threshold = Real(0.25)
 
std::string options_namespace {"hypre"}
 
MultiFab acoefs
 
Array< MultiFab, AMREX_SPACEDIM > bcoefs
 
Real scalar_a
 
Real scalar_b
 
MultiFab diaginv
 
FabFactory< FArrayBox > const * m_factory = nullptr
 
BndryData const * m_bndry = nullptr
 
int m_maxorder = -1
 
bool is_matrix_singular { false }
 

Member Enumeration Documentation

◆ Interface

Enumerator
structed 
semi_structed 
ij 

Constructor & Destructor Documentation

◆ Hypre() [1/3]

amrex::Hypre::Hypre ( const BoxArray grids,
const DistributionMapping dmap,
const Geometry geom,
MPI_Comm  comm_ 
)

◆ ~Hypre()

amrex::Hypre::~Hypre ( )
virtualdefault

◆ Hypre() [2/3]

amrex::Hypre::Hypre ( Hypre &&  )
defaultnoexcept

◆ Hypre() [3/3]

amrex::Hypre::Hypre ( Hypre const &  )
delete

Member Function Documentation

◆ hiV()

static Array<HYPRE_Int,AMREX_SPACEDIM> amrex::Hypre::hiV ( const Box b)
inlinestatic

◆ ispow2()

static HYPRE_Int amrex::Hypre::ispow2 ( HYPRE_Int  i)
inlinestatic

◆ loV()

static Array<HYPRE_Int,AMREX_SPACEDIM> amrex::Hypre::loV ( const Box b)
inlinestatic

◆ operator=() [1/2]

Hypre& amrex::Hypre::operator= ( Hypre &&  )
defaultnoexcept

◆ operator=() [2/2]

Hypre& amrex::Hypre::operator= ( Hypre const &  )
delete

◆ setACoeffs()

void amrex::Hypre::setACoeffs ( const MultiFab alpha)

◆ setBCoeffs()

void amrex::Hypre::setBCoeffs ( const Array< const MultiFab *, BL_SPACEDIM > &  beta)

◆ setHypreNumSweeps()

void amrex::Hypre::setHypreNumSweeps ( int  n)
inlinenoexcept

◆ setHypreOldDefault()

void amrex::Hypre::setHypreOldDefault ( bool  l)
inlinenoexcept

◆ setHypreOptionsNamespace()

void amrex::Hypre::setHypreOptionsNamespace ( const std::string &  ns)
inlinenoexcept

◆ setHypreRelaxOrder()

void amrex::Hypre::setHypreRelaxOrder ( int  n)
inlinenoexcept

◆ setHypreRelaxType()

void amrex::Hypre::setHypreRelaxType ( int  n)
inlinenoexcept

◆ setHypreStrongThreshold()

void amrex::Hypre::setHypreStrongThreshold ( Real  t)
inlinenoexcept

◆ setIsMatrixSingular()

void amrex::Hypre::setIsMatrixSingular ( bool  flag)
inline

◆ setScalars()

void amrex::Hypre::setScalars ( Real  sa,
Real  sb 
)

◆ setVerbose()

void amrex::Hypre::setVerbose ( int  _verbose)

◆ solve()

virtual void amrex::Hypre::solve ( MultiFab soln,
const MultiFab rhs,
Real  rel_tol,
Real  abs_tol,
int  max_iter,
const BndryData bndry,
int  max_bndry_order 
)
pure virtual

Member Data Documentation

◆ acoefs

MultiFab amrex::Hypre::acoefs
protected

◆ bcoefs

Array<MultiFab,AMREX_SPACEDIM> amrex::Hypre::bcoefs
protected

◆ comm

MPI_Comm amrex::Hypre::comm = MPI_COMM_NULL
protected

◆ diaginv

MultiFab amrex::Hypre::diaginv
protected

◆ eb_stencil_size

constexpr HYPRE_Int amrex::Hypre::eb_stencil_size = AMREX_D_TERM(3, *3, *3)
staticconstexpr

◆ geom

Geometry amrex::Hypre::geom
protected

◆ is_matrix_singular

bool amrex::Hypre::is_matrix_singular { false }
protected

◆ m_bndry

BndryData const* amrex::Hypre::m_bndry = nullptr
protected

◆ m_factory

FabFactory<FArrayBox> const* amrex::Hypre::m_factory = nullptr
protected

◆ m_maxorder

int amrex::Hypre::m_maxorder = -1
protected

◆ num_sweeps

int amrex::Hypre::num_sweeps = 2
protected

◆ old_default

bool amrex::Hypre::old_default = true
protected

◆ options_namespace

std::string amrex::Hypre::options_namespace {"hypre"}
protected

◆ regular_stencil_size

constexpr HYPRE_Int amrex::Hypre::regular_stencil_size = 2*AMREX_SPACEDIM + 1
staticconstexpr

◆ relax_order

int amrex::Hypre::relax_order = 1
protected

◆ relax_type

int amrex::Hypre::relax_type = 6
protected

◆ scalar_a

Real amrex::Hypre::scalar_a
protected

◆ scalar_b

Real amrex::Hypre::scalar_b
protected

◆ strong_threshold

Real amrex::Hypre::strong_threshold = Real(0.25)
protected

◆ verbose

int amrex::Hypre::verbose = 0
protected

The documentation for this class was generated from the following files: