GeometricMG Class ReferenceΒΆ

adc_cpp: pops::GeometricMG Class Reference
adc_cpp 0.3.0
Model-free C++23 core for coupled hyperbolic-elliptic systems on adaptive (AMR) meshes, with MPI and GPU (Kokkos) backends
pops::GeometricMG Class Reference

#include <geometric_mg.hpp>

+ Collaboration diagram for pops::GeometricMG:

Public Member Functions

 GeometricMG (const Geometry &geom, const BoxArray &ba, const BCRec &bc, std::function< bool(Real, Real)> active={}, bool replicated=false, int min_coarse=2, int nu1=2, int nu2=2, int nbottom=50, bool cut_cell=false, std::function< Real(Real, Real)> levelset={})
 
MultiFabphi ()
 
MultiFabrhs ()
 
const Geometrygeom () const
 
int num_levels () const
 
int last_cycles () const
 
Real last_residual () const
 
double last_bottom_seconds () const
 
void set_epsilon (std::function< Real(Real, Real)> eps_fn)
 
void set_epsilon (const MultiFab &eps_fine)
 
void set_epsilon_anisotropic (std::function< Real(Real, Real)> eps_x_fn, std::function< Real(Real, Real)> eps_y_fn)
 
void set_epsilon_anisotropic (const MultiFab &eps_x_fine, const MultiFab &eps_y_fine)
 
void set_reaction (std::function< Real(Real, Real)> kappa_fn)
 
void set_reaction (const MultiFab &kappa_fine)
 
void set_cross_terms (std::function< Real(Real, Real)> a_xy_fn, std::function< Real(Real, Real)> a_yx_fn)
 
void set_cross_terms (const MultiFab &a_xy_fine, const MultiFab &a_yx_fine)
 
void vcycle ()
 
int solve (Real rel_tol, int max_cycles, Real abs_tol=Real(0))
 
void solve ()
 
Real residual ()
 
void set_abs_tol (Real abs_tol)
 
Real abs_tol () const
 
int solve_robust (Real rel_tol, int max_cycles)
 
Real current_residual ()
 
const MultiFabop_mask ()
 
const MultiFabop_coef ()
 
const MultiFabop_eps ()
 
const MultiFabop_kappa ()
 
const MultiFabop_eps_y ()
 
const MultiFabop_a_xy ()
 
const MultiFabop_a_yx ()
 
const BCRecbc () const
 
const BoxArraybox_array () const
 
const DistributionMappingdmap () const
 

Constructor & Destructor Documentation

◆ GeometricMG()

pops::GeometricMG::GeometricMG ( const Geometry geom,
const BoxArray ba,
const BCRec bc,
std::function< bool(Real, Real)>  active = {},
bool  replicated = false,
int  min_coarse = 2,
int  nu1 = 2,
int  nu2 = 2,
int  nbottom = 50,
bool  cut_cell = false,
std::function< Real(Real, Real)>  levelset = {} 
)
inline

Member Function Documentation

◆ abs_tol()

Real pops::GeometricMG::abs_tol ( ) const
inline
+ Here is the caller graph for this function:

◆ bc()

const BCRec & pops::GeometricMG::bc ( ) const
inline

◆ box_array()

const BoxArray & pops::GeometricMG::box_array ( ) const
inline

◆ current_residual()

Real pops::GeometricMG::current_residual ( )
inline
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ dmap()

const DistributionMapping & pops::GeometricMG::dmap ( ) const
inline

◆ geom()

const Geometry & pops::GeometricMG::geom ( ) const
inline
+ Here is the caller graph for this function:

◆ last_bottom_seconds()

double pops::GeometricMG::last_bottom_seconds ( ) const
inline

◆ last_cycles()

int pops::GeometricMG::last_cycles ( ) const
inline

◆ last_residual()

Real pops::GeometricMG::last_residual ( ) const
inline

◆ num_levels()

int pops::GeometricMG::num_levels ( ) const
inline
+ Here is the caller graph for this function:

◆ op_a_xy()

const MultiFab * pops::GeometricMG::op_a_xy ( )
inline

◆ op_a_yx()

const MultiFab * pops::GeometricMG::op_a_yx ( )
inline

◆ op_coef()

const MultiFab * pops::GeometricMG::op_coef ( )
inline

◆ op_eps()

const MultiFab * pops::GeometricMG::op_eps ( )
inline

◆ op_eps_y()

const MultiFab * pops::GeometricMG::op_eps_y ( )
inline

◆ op_kappa()

const MultiFab * pops::GeometricMG::op_kappa ( )
inline

◆ op_mask()

const MultiFab * pops::GeometricMG::op_mask ( )
inline

◆ phi()

MultiFab & pops::GeometricMG::phi ( )
inline
+ Here is the caller graph for this function:

◆ residual()

Real pops::GeometricMG::residual ( )
inline
+ Here is the call graph for this function:

◆ rhs()

MultiFab & pops::GeometricMG::rhs ( )
inline
+ Here is the caller graph for this function:

◆ set_abs_tol()

void pops::GeometricMG::set_abs_tol ( Real  abs_tol)
inline
+ Here is the call graph for this function:

◆ set_cross_terms() [1/2]

void pops::GeometricMG::set_cross_terms ( const MultiFab a_xy_fine,
const MultiFab a_yx_fine 
)
inline
+ Here is the call graph for this function:

◆ set_cross_terms() [2/2]

void pops::GeometricMG::set_cross_terms ( std::function< Real(Real, Real)>  a_xy_fn,
std::function< Real(Real, Real)>  a_yx_fn 
)
inline
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_epsilon() [1/2]

void pops::GeometricMG::set_epsilon ( const MultiFab eps_fine)
inline

◆ set_epsilon() [2/2]

void pops::GeometricMG::set_epsilon ( std::function< Real(Real, Real)>  eps_fn)
inline
+ Here is the caller graph for this function:

◆ set_epsilon_anisotropic() [1/2]

void pops::GeometricMG::set_epsilon_anisotropic ( const MultiFab eps_x_fine,
const MultiFab eps_y_fine 
)
inline
+ Here is the call graph for this function:

◆ set_epsilon_anisotropic() [2/2]

void pops::GeometricMG::set_epsilon_anisotropic ( std::function< Real(Real, Real)>  eps_x_fn,
std::function< Real(Real, Real)>  eps_y_fn 
)
inline
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ set_reaction() [1/2]

void pops::GeometricMG::set_reaction ( const MultiFab kappa_fine)
inline

◆ set_reaction() [2/2]

void pops::GeometricMG::set_reaction ( std::function< Real(Real, Real)>  kappa_fn)
inline
+ Here is the caller graph for this function:

◆ solve() [1/2]

void pops::GeometricMG::solve ( )
inline
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ solve() [2/2]

int pops::GeometricMG::solve ( Real  rel_tol,
int  max_cycles,
Real  abs_tol = Real(0) 
)
inline
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ solve_robust()

int pops::GeometricMG::solve_robust ( Real  rel_tol,
int  max_cycles 
)
inline
+ Here is the call graph for this function:

◆ vcycle()

void pops::GeometricMG::vcycle ( )
inline
+ Here is the caller graph for this function:

The documentation for this class was generated from the following file: