|
ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
#include "ERF.H"#include "ERF_EB.H"#include "ERF_Utils.H"#include "ERF_SolverUtils.H"#include <AMReX_MLMG.H>#include <AMReX_MLEBABecLap.H>
Functions | |
| void | FillZeroAreaFaceFluxes (MultiFab &phi, Array< MultiFab, AMREX_SPACEDIM > &fluxes, const Geometry &geom, EBFArrayBoxFactory const &ebfact, eb_aux_ const &ebfact_u, eb_aux_ const &ebfact_v, eb_aux_ const &ebfact_w) |
| void | solve_with_EB_mlmg (int lev, Vector< MultiFab > &rhs, Vector< MultiFab > &phi, Vector< Array< MultiFab, AMREX_SPACEDIM >> &fluxes, EBFArrayBoxFactory const &ebfact, eb_aux_ const &ebfact_u, eb_aux_ const &ebfact_v, eb_aux_ const &ebfact_w, const Geometry &geom, const Vector< amrex::IntVect > &ref_ratio, Array< std::string, 2 *AMREX_SPACEDIM > domain_bc_type, int mg_verbose, Real reltol, Real abstol) |
| void FillZeroAreaFaceFluxes | ( | MultiFab & | phi, |
| Array< MultiFab, AMREX_SPACEDIM > & | fluxes, | ||
| const Geometry & | geom, | ||
| EBFArrayBoxFactory const & | ebfact, | ||
| eb_aux_ const & | ebfact_u, | ||
| eb_aux_ const & | ebfact_v, | ||
| eb_aux_ const & | ebfact_w | ||
| ) |
Compute phi gradients where the area of the face is zero
Referenced by solve_with_EB_mlmg().


| void solve_with_EB_mlmg | ( | int | lev, |
| Vector< MultiFab > & | rhs, | ||
| Vector< MultiFab > & | phi, | ||
| Vector< Array< MultiFab, AMREX_SPACEDIM >> & | fluxes, | ||
| EBFArrayBoxFactory const & | ebfact, | ||
| eb_aux_ const & | ebfact_u, | ||
| eb_aux_ const & | ebfact_v, | ||
| eb_aux_ const & | ebfact_w, | ||
| const Geometry & | geom, | ||
| const Vector< amrex::IntVect > & | ref_ratio, | ||
| Array< std::string, 2 *AMREX_SPACEDIM > | domain_bc_type, | ||
| int | mg_verbose, | ||
| Real | reltol, | ||
| Real | abstol | ||
| ) |
Solve the Poisson equation using EB_enabled MLMG Note that the level may or may not be level 0.
Important: we solve on the whole level even if there are disjoint regions
