ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_ColumnBands.H
Go to the documentation of this file.
1
#ifndef ERF_COLUMNBANDS_H_
2
#define ERF_COLUMNBANDS_H_
3
4
#include <AMReX_BoxArray.H>
5
#include <AMReX_Geometry.H>
6
#include <AMReX_IntVect.H>
7
#include <AMReX_MultiFab.H>
8
#include <AMReX_Vector.H>
9
10
//
11
// A column integration (e.g. of the hydrostatic base state) runs upward from the bottom of each
12
// box. A box stacked on another box of the same level -- the BoxArray is split in z, e.g.
13
// amr.max_grid_size below the number of cells in z -- has to continue from the values the
14
// box below it reached. Such an integration visits the boxes in bands of equal lowest z
15
// index, bottom up, and calls fill_below_band before each band but the first.
16
//
17
18
/**
19
* The distinct lowest z indices of the boxes of a BoxArray, bottom up.
20
*
21
* @param[in] ba BoxArray of the level
22
* @return lowest z index of every band of boxes, in increasing order
23
*/
24
amrex::Vector<int>
column_bands
(
const
amrex::BoxArray& ba);
25
26
/**
27
* Fill the cells just below the boxes of mf whose lowest z index is klo_band, widened laterally
28
* by lateral_ng, from the boxes of mf below that band, which must already have been integrated.
29
* A cell inside a box below takes that box's value; otherwise a cell in the lateral ghost region
30
* of a box below takes the value that box holds there. A cell with no box of mf below it (e.g.
31
* under a refined patch that does not reach the ground) keeps the value it has.
32
*
33
* @param[in,out] mf field being integrated; needs lateral_ng ghost cells plus one in z
34
* @param[in] icomp first component to fill
35
* @param[in] ncomp number of components to fill
36
* @param[in] klo_band lowest z index of the band about to be integrated
37
* @param[in] lateral_ng lateral width of the filled slabs; its z entry must be zero
38
* @param[in] geom geometry of the level (lateral periodicity is honoured)
39
*/
40
void
fill_below_band
(amrex::MultiFab& mf,
int
icomp,
int
ncomp,
int
klo_band,
41
const
amrex::IntVect& lateral_ng,
const
amrex::Geometry& geom);
42
43
#endif
column_bands
amrex::Vector< int > column_bands(const amrex::BoxArray &ba)
fill_below_band
void fill_below_band(amrex::MultiFab &mf, int icomp, int ncomp, int klo_band, const amrex::IntVect &lateral_ng, const amrex::Geometry &geom)
Source
Utils
ERF_ColumnBands.H
Generated by
1.9.1