AmrLevelStack< Level > Class Template ReferenceΒΆ

adc_cpp: pops::AmrLevelStack< Level > Class Template 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::AmrLevelStack< Level > Class Template Reference

Owns the AMR level stack and the parallel aux stack. More...

#include <amr_level_storage.hpp>

+ Inheritance diagram for pops::AmrLevelStack< Level >:
+ Collaboration diagram for pops::AmrLevelStack< Level >:

Public Member Functions

 AmrLevelStack (const Box2D &dom, std::vector< Level > levels, int aux_ncomp=kAuxBaseComps)
 Builds the stack: takes ownership of levels, allocates an aux (aux_ncomp components, 1 ghost) on the layout of each U, and wires L_[k].aux = &aux_[k].
 
std::vector< Level > & levels ()
 
const std::vector< Level > & levels () const
 
MultiFabcoarse ()
 
const MultiFabcoarse () const
 
const Box2Ddomain () const
 
int nlev () const
 
std::vector< Level > & L ()
 
std::vector< MultiFab > & aux ()
 
MultiFabaux (int k)
 
const MultiFabaux (int k) const
 
int aux_ncomp () const
 
void reattach_aux (int k)
 

Detailed Description

template<class Level>
class pops::AmrLevelStack< Level >

Owns the AMR level stack and the parallel aux stack.

Template Parameters
Levellevel type carrying U (MultiFab) and aux (const MultiFab*) (AmrLevelMF or AmrLevelMP). INVARIANT: aux_ has a size fixed at the ctor (stable addresses for L_[k].aux).

Constructor & Destructor Documentation

◆ AmrLevelStack()

template<class Level >
pops::AmrLevelStack< Level >::AmrLevelStack ( const Box2D dom,
std::vector< Level >  levels,
int  aux_ncomp = kAuxBaseComps 
)
inline

Builds the stack: takes ownership of levels, allocates an aux (aux_ncomp components, 1 ghost) on the layout of each U, and wires L_[k].aux = &aux_[k].

dom: domain of level 0.

Member Function Documentation

◆ aux() [1/3]

template<class Level >
std::vector< MultiFab > & pops::AmrLevelStack< Level >::aux ( )
inline

◆ aux() [2/3]

template<class Level >
MultiFab & pops::AmrLevelStack< Level >::aux ( int  k)
inline

◆ aux() [3/3]

template<class Level >
const MultiFab & pops::AmrLevelStack< Level >::aux ( int  k) const
inline

◆ aux_ncomp()

template<class Level >
int pops::AmrLevelStack< Level >::aux_ncomp ( ) const
inline

◆ coarse() [1/2]

template<class Level >
MultiFab & pops::AmrLevelStack< Level >::coarse ( )
inline

◆ coarse() [2/2]

template<class Level >
const MultiFab & pops::AmrLevelStack< Level >::coarse ( ) const
inline

◆ domain()

template<class Level >
const Box2D & pops::AmrLevelStack< Level >::domain ( ) const
inline

◆ L()

template<class Level >
std::vector< Level > & pops::AmrLevelStack< Level >::L ( )
inline

◆ levels() [1/2]

template<class Level >
std::vector< Level > & pops::AmrLevelStack< Level >::levels ( )
inline

◆ levels() [2/2]

template<class Level >
const std::vector< Level > & pops::AmrLevelStack< Level >::levels ( ) const
inline

◆ nlev()

template<class Level >
int pops::AmrLevelStack< Level >::nlev ( ) const
inline

◆ reattach_aux()

template<class Level >
void pops::AmrLevelStack< Level >::reattach_aux ( int  k)
inline

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