#include <NodeMGInterp.H>
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.
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 |
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 |
bool NodeMGInterp::is_defined [protected] |
has this NodeMGInterp object been defined yet?
int NodeMGInterp::m_refRatio [protected] |
the refinement ratio between the two levels
BoxLayoutData<NodeFArrayBox> NodeMGInterp::m_coarsenedFine [protected] |
work array for the coarse-level data in a domain that is the outline of the fine level domain on the coarse level
DisjointBoxLayout NodeMGInterp::m_grids [protected] |
CELL-centered grids at the finer level
ProblemDomain NodeMGInterp::m_domain [protected] |
CELL-centered physical domain at the finer level
Box NodeMGInterp::m_boxRef [protected] |
reference box used in interpolation
FArrayBox NodeMGInterp::m_weights [protected] |
weights of corners in interpolation