OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
MueLuBottomSolver< Level > Class Template Referenceabstract

#include <MueLuBottomSolver.h>

Inheritance diagram for MueLuBottomSolver< Level >:
Collaboration diagram for MueLuBottomSolver< Level >:

Public Types

typedef amr::matrix_t matrix_t
typedef amr::vector_t vector_t
typedef amr::scalar_t scalar_t
typedef amr::multivector_t mv_t
typedef amr::operator_t op_t
typedef amr::local_ordinal_t lo_t
typedef amr::global_ordinal_t go_t
typedef amr::node_t node_t
typedef amr::AmrBox_t AmrBox_t
typedef amr::AmrIntVect_t AmrIntVect_t
typedef MueLu::Hierarchy< scalar_t, lo_t, go_t, node_thierarchy_t
typedef MueLu::Level level_t
typedef Xpetra::Matrix< scalar_t, lo_t, go_t, node_txmatrix_t
typedef Xpetra::MultiVector< scalar_t, lo_t, go_t, node_txmv_t
typedef MueLu::Utilities< scalar_t, lo_t, go_t, node_tutil_t
typedef MueLu::ParameterListInterpreter< scalar_t, lo_t, go_t, node_tpListInterpreter_t
typedef MueLu::HierarchyManager< scalar_t, lo_t, go_t, node_tmanager_t

Public Member Functions

 MueLuBottomSolver (const bool &rebalance, const std::string &reuse)
void solve (const Teuchos::RCP< mv_t > &x, const Teuchos::RCP< mv_t > &b)
void setOperator (const Teuchos::RCP< matrix_t > &A, Level *level_p=nullptr)
std::size_t getNumIters ()
virtual void solve (const Teuchos::RCP< amr::multivector_t > &x, const Teuchos::RCP< amr::multivector_t > &b)=0
virtual void setOperator (const Teuchos::RCP< amr::matrix_t > &A, Level *level_p=nullptr)=0
bool hasOperator () const

Static Public Member Functions

static std::string convertToMueLuReuseOption (const std::string &reuse)

Protected Attributes

bool isInitialized_m

Private Member Functions

void initMueLuList_m (const std::string &reuse)

Private Attributes

Teuchos::RCP< hierarchy_thierarchy_mp
 manages the multigrid hierarchy
Teuchos::RCP< manager_tfactory_mp
 sets up hierarchy
Teuchos::RCP< xmatrix_tA_mp
 MueLu requires Xpetra.
lo_t nSweeps_m
 the number of multigrid iterations
Teuchos::ParameterList mueluList_m
bool rebalance_m
 use subcommunicators (less communication)
IpplTimings::TimerRef setupTimer_m

Detailed Description

template<class Level>
class MueLuBottomSolver< Level >

Definition at line 37 of file MueLuBottomSolver.h.

Member Typedef Documentation

◆ AmrBox_t

template<class Level>
typedef amr::AmrBox_t MueLuBottomSolver< Level >::AmrBox_t

Definition at line 51 of file MueLuBottomSolver.h.

◆ AmrIntVect_t

template<class Level>
typedef amr::AmrIntVect_t MueLuBottomSolver< Level >::AmrIntVect_t

Definition at line 52 of file MueLuBottomSolver.h.

◆ go_t

template<class Level>
typedef amr::global_ordinal_t MueLuBottomSolver< Level >::go_t

Definition at line 48 of file MueLuBottomSolver.h.

◆ hierarchy_t

template<class Level>
typedef MueLu::Hierarchy<scalar_t, lo_t, go_t, node_t> MueLuBottomSolver< Level >::hierarchy_t

Definition at line 56 of file MueLuBottomSolver.h.

◆ level_t

template<class Level>
typedef MueLu::Level MueLuBottomSolver< Level >::level_t

Definition at line 57 of file MueLuBottomSolver.h.

◆ lo_t

template<class Level>
typedef amr::local_ordinal_t MueLuBottomSolver< Level >::lo_t

Definition at line 47 of file MueLuBottomSolver.h.

◆ manager_t

template<class Level>
typedef MueLu::HierarchyManager<scalar_t, lo_t, go_t, node_t> MueLuBottomSolver< Level >::manager_t

Definition at line 63 of file MueLuBottomSolver.h.

◆ matrix_t

template<class Level>
typedef amr::matrix_t MueLuBottomSolver< Level >::matrix_t

Definition at line 42 of file MueLuBottomSolver.h.

◆ mv_t

template<class Level>
typedef amr::multivector_t MueLuBottomSolver< Level >::mv_t

Definition at line 45 of file MueLuBottomSolver.h.

◆ node_t

template<class Level>
typedef amr::node_t MueLuBottomSolver< Level >::node_t

Definition at line 49 of file MueLuBottomSolver.h.

◆ op_t

template<class Level>
typedef amr::operator_t MueLuBottomSolver< Level >::op_t

Definition at line 46 of file MueLuBottomSolver.h.

◆ pListInterpreter_t

template<class Level>
typedef MueLu::ParameterListInterpreter<scalar_t, lo_t, go_t, node_t> MueLuBottomSolver< Level >::pListInterpreter_t

Definition at line 62 of file MueLuBottomSolver.h.

◆ scalar_t

template<class Level>
typedef amr::scalar_t MueLuBottomSolver< Level >::scalar_t

Definition at line 44 of file MueLuBottomSolver.h.

◆ util_t

template<class Level>
typedef MueLu::Utilities<scalar_t, lo_t, go_t, node_t> MueLuBottomSolver< Level >::util_t

Definition at line 60 of file MueLuBottomSolver.h.

◆ vector_t

template<class Level>
typedef amr::vector_t MueLuBottomSolver< Level >::vector_t

Definition at line 43 of file MueLuBottomSolver.h.

◆ xmatrix_t

template<class Level>
typedef Xpetra::Matrix<scalar_t, lo_t, go_t, node_t> MueLuBottomSolver< Level >::xmatrix_t

Definition at line 58 of file MueLuBottomSolver.h.

◆ xmv_t

template<class Level>
typedef Xpetra::MultiVector<scalar_t, lo_t, go_t, node_t> MueLuBottomSolver< Level >::xmv_t

Definition at line 59 of file MueLuBottomSolver.h.

Constructor & Destructor Documentation

◆ MueLuBottomSolver()

template<class Level>
MueLuBottomSolver< Level >::MueLuBottomSolver ( const bool & rebalance,
const std::string & reuse )

Definition at line 25 of file MueLuBottomSolver.hpp.

References A_mp, BottomSolver< Teuchos::RCP< amr::matrix_t >, Teuchos::RCP< amr::multivector_t >, Level >::BottomSolver(), factory_mp, hierarchy_mp, initMueLuList_m(), mueluList_m, nSweeps_m, rebalance_m, and setupTimer_m.

Here is the call graph for this function:

Member Function Documentation

◆ convertToMueLuReuseOption()

template<class Level>
std::string MueLuBottomSolver< Level >::convertToMueLuReuseOption ( const std::string & reuse)
static

Definition at line 131 of file MueLuBottomSolver.hpp.

◆ getNumIters()

template<class Level>
std::size_t MueLuBottomSolver< Level >::getNumIters ( )
virtual
Returns
the number of required iterations

Implements BottomSolver< Teuchos::RCP< amr::matrix_t >, Teuchos::RCP< amr::multivector_t >, Level >.

Definition at line 124 of file MueLuBottomSolver.hpp.

References nSweeps_m.

◆ hasOperator()

bool BottomSolver< Teuchos::RCP< amr::matrix_t >, Teuchos::RCP< amr::multivector_t >, Level >::hasOperator ( ) const
inherited

Definition at line 59 of file BottomSolver.h.

◆ initMueLuList_m()

template<class Level>
void MueLuBottomSolver< Level >::initMueLuList_m ( const std::string & reuse)
private

Definition at line 151 of file MueLuBottomSolver.hpp.

References mueluList_m, nSweeps_m, and rebalance_m.

Referenced by MueLuBottomSolver().

◆ setOperator() [1/2]

virtual void BottomSolver< Teuchos::RCP< amr::matrix_t >, Teuchos::RCP< amr::multivector_t >, Level >::setOperator ( const Teuchos::RCP< amr::matrix_t > & A,
Level * level_p = nullptr )
pure virtualinherited

Set the system matrix

Parameters
Asystem matrix

◆ setOperator() [2/2]

template<class Level>
void MueLuBottomSolver< Level >::setOperator ( const Teuchos::RCP< matrix_t > & A,
Level * level_p = nullptr )

Definition at line 62 of file MueLuBottomSolver.hpp.

References A_mp, factory_mp, hierarchy_mp, BottomSolver< Teuchos::RCP< amr::matrix_t >, Teuchos::RCP< amr::multivector_t >, Level >::isInitialized_m, setupTimer_m, IpplTimings::startTimer(), and IpplTimings::stopTimer().

Here is the call graph for this function:

◆ solve() [1/2]

virtual void BottomSolver< Teuchos::RCP< amr::matrix_t >, Teuchos::RCP< amr::multivector_t >, Level >::solve ( const Teuchos::RCP< amr::multivector_t > & x,
const Teuchos::RCP< amr::multivector_t > & b )
pure virtualinherited

Solves

\[ Ax = b \]

Parameters
xleft-hand side
bright-hand side

◆ solve() [2/2]

template<class Level>
void MueLuBottomSolver< Level >::solve ( const Teuchos::RCP< mv_t > & x,
const Teuchos::RCP< mv_t > & b )

Definition at line 45 of file MueLuBottomSolver.hpp.

References hierarchy_mp, and nSweeps_m.

Member Data Documentation

◆ A_mp

template<class Level>
Teuchos::RCP<xmatrix_t> MueLuBottomSolver< Level >::A_mp
private

MueLu requires Xpetra.

Definition at line 89 of file MueLuBottomSolver.h.

Referenced by MueLuBottomSolver(), and setOperator().

◆ factory_mp

template<class Level>
Teuchos::RCP<manager_t> MueLuBottomSolver< Level >::factory_mp
private

sets up hierarchy

Definition at line 88 of file MueLuBottomSolver.h.

Referenced by MueLuBottomSolver(), and setOperator().

◆ hierarchy_mp

template<class Level>
Teuchos::RCP<hierarchy_t> MueLuBottomSolver< Level >::hierarchy_mp
private

manages the multigrid hierarchy

Definition at line 87 of file MueLuBottomSolver.h.

Referenced by MueLuBottomSolver(), setOperator(), and solve().

◆ isInitialized_m

bool BottomSolver< Teuchos::RCP< amr::matrix_t >, Teuchos::RCP< amr::multivector_t >, Level >::isInitialized_m
protectedinherited

◆ mueluList_m

template<class Level>
Teuchos::ParameterList MueLuBottomSolver< Level >::mueluList_m
private

Definition at line 93 of file MueLuBottomSolver.h.

Referenced by initMueLuList_m(), and MueLuBottomSolver().

◆ nSweeps_m

template<class Level>
lo_t MueLuBottomSolver< Level >::nSweeps_m
private

the number of multigrid iterations

Definition at line 91 of file MueLuBottomSolver.h.

Referenced by getNumIters(), initMueLuList_m(), MueLuBottomSolver(), and solve().

◆ rebalance_m

template<class Level>
bool MueLuBottomSolver< Level >::rebalance_m
private

use subcommunicators (less communication)

Definition at line 95 of file MueLuBottomSolver.h.

Referenced by initMueLuList_m(), and MueLuBottomSolver().

◆ setupTimer_m

template<class Level>
IpplTimings::TimerRef MueLuBottomSolver< Level >::setupTimer_m
private

Definition at line 97 of file MueLuBottomSolver.h.

Referenced by MueLuBottomSolver(), and setOperator().


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