#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. | |
| void | setVerbose (int v) |
| Sets verbosity. | |
| GM & | getGMRES () |
| Get the GMRES object. | |
| VEC | makeVecRHS () const |
| Make MultiFab without ghost cells. | |
| VEC | makeVecLHS () const |
| Make MultiFab with ghost cells and set ghost cells to zero. | |
| void | apply (VEC &lhs, VEC &rhs) const |
| lhs = L(rhs) | |
| 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 | |
| static void | assign (VEC &lhs, VEC const &rhs) |
| lhs = rhs | |
| static void | increment (VEC &lhs, VEC const &rhs, T a) |
| lhs += a*rhs | |
| static void | linComb (VEC &lhs, T a, VEC const &rhs_a, T b, VEC const &rhs_b) |
| lhs = a*rhs_a + b*rhs_b | |
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 | ( | ) | const |
Make MultiFab with ghost cells and set ghost cells to zero.
| auto amrex::GMRES_MV< T >::makeVecRHS | ( | ) | const |
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 |