ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_PoissonSolve.cpp File Reference
#include "ERF.H"
#include "ERF_Utils.H"
Include dependency graph for ERF_PoissonSolve.cpp:

Functions

void solve_with_mlmg (int lev, Vector< amrex::MultiFab > &rhs, Vector< MultiFab > &p, Vector< amrex::Array< MultiFab, AMREX_SPACEDIM >> &fluxes, const Geometry &geom, const amrex::Vector< amrex::IntVect > &ref_ratio, Array< std::string, 2 *AMREX_SPACEDIM > l_domain_bc_type, int mg_verbose, Real reltol, Real abstol)
 
template<typename T >
void solve_with_EB_mlmg (int lev, Vector< amrex::MultiFab > &rhs, Vector< MultiFab > &p, Vector< amrex::Array< MultiFab, AMREX_SPACEDIM >> &fluxes, EBFArrayBoxFactory const &ebfact, T const &ebfact_u, T const &ebfact_v, T const &ebfact_w, const Geometry &geom, const amrex::Vector< amrex::IntVect > &ref_ratio, Array< std::string, 2 *AMREX_SPACEDIM > l_domain_bc_type, int mg_verbose, Real reltol, Real abstol)
 

Function Documentation

◆ solve_with_EB_mlmg()

template<typename T >
void solve_with_EB_mlmg ( int  lev,
Vector< amrex::MultiFab > &  rhs,
Vector< MultiFab > &  p,
Vector< amrex::Array< MultiFab, AMREX_SPACEDIM >> &  fluxes,
EBFArrayBoxFactory const &  ebfact,
T const &  ebfact_u,
T const &  ebfact_v,
T const &  ebfact_w,
const Geometry &  geom,
const amrex::Vector< amrex::IntVect > &  ref_ratio,
Array< std::string, 2 *AMREX_SPACEDIM >  l_domain_bc_type,
int  mg_verbose,
Real  reltol,
Real  abstol 
)

Solve the Poisson equation with embedded boundary using the MLMG solver.

Template Parameters
TEB data type.
Parameters
levLevel index.
[in]rhsRight hand side of the Poisson equation.
[out]pSolution field.
[out]fluxesGradient fluxes.
ebfactEB factory.
ebfact_uEB data for x-faces.
ebfact_vEB data for y-faces.
ebfact_wEB data for z-faces.
geomGeometry used for inverse cell spacing.
ref_ratioRefinement ratios.
l_domain_bc_typeDomain boundary condition names.
mg_verboseVerbosity level for the solver.
reltolRelative tolerance.
abstolAbsolute tolerance.

Referenced by ERF::project_momenta().

Here is the caller graph for this function:

◆ solve_with_mlmg()

void solve_with_mlmg ( int  lev,
Vector< amrex::MultiFab > &  rhs,
Vector< MultiFab > &  p,
Vector< amrex::Array< MultiFab, AMREX_SPACEDIM >> &  fluxes,
const Geometry &  geom,
const amrex::Vector< amrex::IntVect > &  ref_ratio,
Array< std::string, 2 *AMREX_SPACEDIM >  l_domain_bc_type,
int  mg_verbose,
Real  reltol,
Real  abstol 
)

Solve the Poisson equation using the MLMG solver.

Parameters
levLevel index.
[in]rhsRight hand side of the Poisson equation.
[out]pSolution field.
[out]fluxesGradient fluxes.
geomGeometry used for inverse cell spacing.
ref_ratioRefinement ratios.
l_domain_bc_typeDomain boundary condition names.
mg_verboseVerbosity level for the solver.
reltolRelative tolerance.
abstolAbsolute tolerance.

Referenced by ERF::project_momenta().

Here is the caller graph for this function: