Chombo + EB
3.0
|
Class to interpolate coarse-level data to a fine level. More...
#include <NodeMGInterp.H>
Public Member Functions | |
Constructors, destructor and defines | |
NodeMGInterp () | |
~NodeMGInterp () | |
NodeMGInterp (const DisjointBoxLayout &a_grids, int a_numcomps, int a_refRatio, const Box &a_domain) | |
NodeMGInterp (const DisjointBoxLayout &a_grids, int a_numcomps, int a_refRatio, const ProblemDomain &a_domain) | |
void | define (const DisjointBoxLayout &a_grids, int a_numcomps, int a_refRatio, const ProblemDomain &a_domain) |
void | define (const DisjointBoxLayout &a_grids, int a_numcomps, int a_refRatio, const Box &a_domain) |
Access functions | |
bool | isDefined () const |
Data modification functions | |
void | interpToFine (LevelData< NodeFArrayBox > &a_fine, const LevelData< NodeFArrayBox > &a_coarse, bool a_sameGrids=false) |
Protected Attributes | |
bool | is_defined |
int | m_refRatio |
BoxLayoutData< NodeFArrayBox > | m_coarsenedFine |
DisjointBoxLayout | m_grids |
ProblemDomain | m_domain |
Box | m_boxRef |
FArrayBox | m_weights |
Class to interpolate coarse-level data to a fine level.
NodeMGInterp manages the interpolation of coarse-level data to fine-level data for multigrid. This class should be considered internal to AMRNodeSolver and not a part of the Chombo API.
NodeMGInterp::NodeMGInterp | ( | ) |
Default constructor. User must subsequently call define().
NodeMGInterp::~NodeMGInterp | ( | ) |
Destructor.
NodeMGInterp::NodeMGInterp | ( | const DisjointBoxLayout & | a_grids, |
int | a_numcomps, | ||
int | a_refRatio, | ||
const Box & | a_domain | ||
) |
Defining constructor. Calls define() function with identical arguments.
NodeMGInterp::NodeMGInterp | ( | const DisjointBoxLayout & | a_grids, |
int | a_numcomps, | ||
int | a_refRatio, | ||
const ProblemDomain & | a_domain | ||
) |
Defining constructor. Calls define() function with identical arguments.
void NodeMGInterp::define | ( | const DisjointBoxLayout & | a_grids, |
int | a_numcomps, | ||
int | a_refRatio, | ||
const ProblemDomain & | a_domain | ||
) |
Defines this object. Existing information is overridden.
a_grids | CELL-centered grids at the finer level |
a_numcomps | number of components of data |
a_refRatio | refinement ratio between the two levels |
a_domain | CELL-centered physical domain at the finer level |
void NodeMGInterp::define | ( | const DisjointBoxLayout & | a_grids, |
int | a_numcomps, | ||
int | a_refRatio, | ||
const Box & | a_domain | ||
) |
Defines this object. Existing information is overridden.
a_grids | CELL-centered grids at the finer level |
a_numcomps | number of components of data |
a_refRatio | refinement ratio between the two levels |
a_domain | CELL-centered physical domain at the finer level |
bool NodeMGInterp::isDefined | ( | ) | const |
Returns true
if this object was created with the defining constructor or if define() has been called.
void NodeMGInterp::interpToFine | ( | LevelData< NodeFArrayBox > & | a_fine, |
const LevelData< NodeFArrayBox > & | a_coarse, | ||
bool | a_sameGrids = false |
||
) |
Adds interpolated coarse-level data to fine-level data.
a_fine | data at the finer level |
a_coarse | data at the coarser level |
a_sameGrids | whether the finer-level grids are refinements of the coarser-level grids |
|
protected |
has this NodeMGInterp object been defined yet?
|
protected |
the refinement ratio between the two levels
|
protected |
work array for the coarse-level data in a domain that is the outline of the fine level domain on the coarse level
|
protected |
CELL-centered grids at the finer level
|
protected |
CELL-centered physical domain at the finer level
|
protected |
reference box used in interpolation
|
protected |
weights of corners in interpolation