![]() |
Block-Structured AMR Software Framework
|
Algebraic system of one MG level of AMR level 0 of an MLLinOp, solved with AlgMG. More...
#include <AMReX_MLAlgMG.H>
Classes | |
| struct | Impl |
Public Member Functions | |
| MLAlgMG (int mglev, BoxArray const &grids, DistributionMapping const &dmap, Geometry const &geom, iMultiFab const &owner_mask, iMultiFab const &dirichlet_mask, MLNodeLinOp const &linop) | |
| MLAlgMG (int mglev, BoxArray const &grids, DistributionMapping const &dmap, Geometry const &geom, FabFactory< FArrayBox > const &factory, iMultiFab const *overset_mask, Real ascalar, Real bscalar, MultiFab const *acoef, Array< MultiFab const *, 3 > const &bcoef, MultiFab const *eb_bcoef, LayoutData< GpuArray< int, 2 *3 > > const &bctype, LayoutData< GpuArray< Real, 2 *3 > > const &bcl, int maxorder) | |
| Cell-centered operator alpha*a - beta*div(b grad): rows are all cells except those of fully covered boxes. | |
| ~MLAlgMG () | |
| MLAlgMG (MLAlgMG const &)=delete | |
| MLAlgMG (MLAlgMG &&)=delete | |
| MLAlgMG & | operator= (MLAlgMG const &)=delete |
| MLAlgMG & | operator= (MLAlgMG &&)=delete |
| void | solve (MultiFab &soln, MultiFab const &rhs, Real reltol, Real abstol, int maxiter) |
| Solve A x = b with zero initial guess. | |
| void | applyVcycle (MultiFab &soln, MultiFab const &rhs) |
| One AlgMG V-cycle with zero initial guess: the preconditioner form. | |
| AlgMG< Real > & | solver () noexcept |
| The solver, for settings such as verbosity and Krylov acceleration. | |
Algebraic system of one MG level of AMR level 0 of an MLLinOp, solved with AlgMG.
Built by MLLinOp::makeAlgMG under the ParallelContext communicator of that level. The matrix is assembled once; solve() can be called repeatedly.
| amrex::MLAlgMG::MLAlgMG | ( | int | mglev, |
| BoxArray const & | grids, | ||
| DistributionMapping const & | dmap, | ||
| Geometry const & | geom, | ||
| iMultiFab const & | owner_mask, | ||
| iMultiFab const & | dirichlet_mask, | ||
| MLNodeLinOp const & | linop | ||
| ) |
Nodal operator: rows are the nodes owned by this rank that are not Dirichlet nodes.
| amrex::MLAlgMG::MLAlgMG | ( | int | mglev, |
| BoxArray const & | grids, | ||
| DistributionMapping const & | dmap, | ||
| Geometry const & | geom, | ||
| FabFactory< FArrayBox > const & | factory, | ||
| iMultiFab const * | overset_mask, | ||
| Real | ascalar, | ||
| Real | bscalar, | ||
| MultiFab const * | acoef, | ||
| Array< MultiFab const *, 3 > const & | bcoef, | ||
| MultiFab const * | eb_bcoef, | ||
| LayoutData< GpuArray< int, 2 *3 > > const & | bctype, | ||
| LayoutData< GpuArray< Real, 2 *3 > > const & | bcl, | ||
| int | maxorder | ||
| ) |
Cell-centered operator alpha*a - beta*div(b grad): rows are all cells except those of fully covered boxes.
The a coefficient may be nullptr (zero); the b coefficients are required. eb_bcoef is the EB Dirichlet b coefficient or nullptr. bctype and bcl give the domain BC type and location per box and face, and maxorder the order of the Dirichlet boundary stencil (2 or 3).
|
default |
|
delete |
|
delete |
One AlgMG V-cycle with zero initial guess: the preconditioner form.
| void amrex::MLAlgMG::solve | ( | MultiFab & | soln, |
| MultiFab const & | rhs, | ||
| Real | reltol, | ||
| Real | abstol, | ||
| int | maxiter | ||
| ) |
Solve A x = b with zero initial guess.
soln is overwritten. Converged when the residual 2-norm is below max(reltol times the rhs 2-norm, abstol).
The solver, for settings such as verbosity and Krylov acceleration.