#include <AMReX_GMRES_MV.H>
Public Types | |
using | RT = Real |
using | VEC = AlgVector< T > |
using | MAT = SpMatrix< T > |
using | GM = amrex::GMRES< VEC, GMRES_MV< T > > |
using | PC = std::function< void(VEC &, VEC const &)> |
Public Member Functions | |
GMRES_MV (MAT const *a_mat) | |
void | setPrecond (PC a_pc) |
void | solve (VEC &a_sol, VEC const &a_rhs, T a_tol_rel, T a_tol_abs) |
Solve the linear system. More... | |
void | setVerbose (int v) |
Sets verbosity. More... | |
GM & | getGMRES () |
Get the GMRES object. More... | |
VEC | makeVecRHS () const |
Make MultiFab without ghost cells. More... | |
VEC | makeVecLHS () const |
Make MultiFab with ghost cells and set ghost cells to zero. More... | |
void | apply (VEC &lhs, VEC &rhs) const |
lhs = L(rhs) More... | |
void | precond (VEC &lhs, VEC const &rhs) const |
Static Public Member Functions | |
static T | norm2 (VEC const &vec) |
static void | scale (VEC &vec, T scale_factor) |
static T | dotProduct (VEC const &vec1, VEC const &vec2) |
static void | setToZero (VEC &lhs) |
lhs = 0 More... | |
static void | assign (VEC &lhs, VEC const &rhs) |
lhs = rhs More... | |
static void | increment (VEC &lhs, VEC const &rhs, T a) |
lhs += a*rhs More... | |
static void | linComb (VEC &lhs, T a, VEC const &rhs_a, T b, VEC const &rhs_b) |
lhs = a*rhs_a + b*rhs_b More... | |
Private Attributes | |
GM | m_gmres |
MAT const * | m_mat = nullptr |
PC | m_pc |
using amrex::GMRES_MV< T >::GM = amrex::GMRES<VEC,GMRES_MV<T> > |
using amrex::GMRES_MV< T >::MAT = SpMatrix<T> |
using amrex::GMRES_MV< T >::PC = std::function<void(VEC&,VEC const&)> |
using amrex::GMRES_MV< T >::RT = Real |
using amrex::GMRES_MV< T >::VEC = AlgVector<T> |
amrex::GMRES_MV< T >::GMRES_MV | ( | MAT const * | a_mat | ) |
void amrex::GMRES_MV< T >::apply | ( | VEC & | lhs, |
VEC & | rhs | ||
) | const |
lhs = L(rhs)
|
static |
lhs = rhs
|
static |
|
inline |
Get the GMRES object.
|
static |
lhs += a*rhs
|
static |
lhs = a*rhs_a + b*rhs_b
auto amrex::GMRES_MV< T >::makeVecLHS |
Make MultiFab with ghost cells and set ghost cells to zero.
auto amrex::GMRES_MV< T >::makeVecRHS |
Make MultiFab without ghost cells.
|
static |
void amrex::GMRES_MV< T >::precond | ( | VEC & | lhs, |
VEC const & | rhs | ||
) | const |
|
static |
|
inline |
|
static |
lhs = 0
|
inline |
Sets verbosity.
void amrex::GMRES_MV< T >::solve | ( | VEC & | a_sol, |
VEC const & | a_rhs, | ||
T | a_tol_rel, | ||
T | a_tol_abs | ||
) |
Solve the linear system.
a_sol | unknowns, i.e., x in A x = b. |
a_rhs | RHS, i.e., b in A x = b. |
a_tol_rel | relative tolerance. |
a_tol_abs | absolute tolerance. |
|
private |
|
private |
|
private |