#include <NodeQCFI.H>
Public Member Functions | |
Constructors, destructor and defines | |
NodeQCFI () | |
NodeQCFI (const DisjointBoxLayout &a_grids, Real a_dx, const ProblemDomain &a_domain, const LayoutData< NodeCFIVS > *const a_loCFIVS, const LayoutData< NodeCFIVS > *const a_hiCFIVS, int a_refToCoarse, NodeBCFunc a_bc, int a_interpolationDegree=2, int a_ncomp=1, bool a_verbose=false) | |
NodeQCFI (const DisjointBoxLayout &a_grids, Real a_dx, const Box &a_domain, const LayoutData< NodeCFIVS > *const a_loCFIVS, const LayoutData< NodeCFIVS > *const a_hiCFIVS, int a_refToCoarse, NodeBCFunc a_bc, int a_interpolationDegree=2, int a_ncomp=1, bool a_verbose=false) | |
~NodeQCFI () | |
void | define (const DisjointBoxLayout &a_grids, Real a_dx, const ProblemDomain &a_domain, const LayoutData< NodeCFIVS > *const a_loCFIVS, const LayoutData< NodeCFIVS > *const a_hiCFIVS, int a_refToCoarse, NodeBCFunc a_bc, int a_interpolationDegree=2, int a_ncomp=1, bool a_verbose=false) |
void | define (const DisjointBoxLayout &a_grids, Real a_dx, const Box &a_domain, const LayoutData< NodeCFIVS > *const a_loCFIVS, const LayoutData< NodeCFIVS > *const a_hiCFIVS, int a_refToCoarse, NodeBCFunc a_bc, int a_interpolationDegree=2, int a_ncomp=1, bool a_verbose=false) |
Access functions | |
bool | isDefined () const |
Parameter-setting functions | |
void | setVerbose (bool a_verbose) |
Data modification functions | |
void | coarseFineInterp (LevelData< NodeFArrayBox > &a_phiFine, const LevelData< NodeFArrayBox > &a_phiCoarse, bool a_inhomogeneous) |
Protected Attributes | |
NodeBCFunc | m_bc |
DisjointBoxLayout | m_grids |
int | m_ncomp |
int | m_refToCoarse |
int | m_coarsenings |
bool | m_isDefined |
Real | m_dx |
Real | m_dxPenultimate |
ProblemDomain | m_domainPenultimate |
Vector< LevelData < NodeFArrayBox > * > | m_inter |
Vector< NodeQuadCFInterp2 * > | m_qcfi2 |
Vector< LayoutData< NodeCFIVS > * > | m_loCFIVScoarser |
Vector< LayoutData< NodeCFIVS > * > | m_hiCFIVScoarser |
bool | m_verbose |
Private Member Functions | |
void | clearMemory () |
void | setDefaultValues () |
NodeQCFI::NodeQCFI | ( | ) |
Default constructor. User must subsequently call define().
NodeQCFI::NodeQCFI | ( | const DisjointBoxLayout & | a_grids, | |
Real | a_dx, | |||
const ProblemDomain & | a_domain, | |||
const LayoutData< NodeCFIVS > *const | a_loCFIVS, | |||
const LayoutData< NodeCFIVS > *const | a_hiCFIVS, | |||
int | a_refToCoarse, | |||
NodeBCFunc | a_bc, | |||
int | a_interpolationDegree = 2 , |
|||
int | a_ncomp = 1 , |
|||
bool | a_verbose = false | |||
) |
Constructor calls setDefaultValues() and then calls define() with the same arguments.
NodeQCFI::NodeQCFI | ( | const DisjointBoxLayout & | a_grids, | |
Real | a_dx, | |||
const Box & | a_domain, | |||
const LayoutData< NodeCFIVS > *const | a_loCFIVS, | |||
const LayoutData< NodeCFIVS > *const | a_hiCFIVS, | |||
int | a_refToCoarse, | |||
NodeBCFunc | a_bc, | |||
int | a_interpolationDegree = 2 , |
|||
int | a_ncomp = 1 , |
|||
bool | a_verbose = false | |||
) |
Constructor calls setDefaultValues() and then calls define() with the same arguments.
NodeQCFI::~NodeQCFI | ( | ) |
Destructor.
void NodeQCFI::define | ( | const DisjointBoxLayout & | a_grids, | |
Real | a_dx, | |||
const ProblemDomain & | a_domain, | |||
const LayoutData< NodeCFIVS > *const | a_loCFIVS, | |||
const LayoutData< NodeCFIVS > *const | a_hiCFIVS, | |||
int | a_refToCoarse, | |||
NodeBCFunc | a_bc, | |||
int | a_interpolationDegree = 2 , |
|||
int | a_ncomp = 1 , |
|||
bool | a_verbose = false | |||
) |
Full define function. Makes all coarse-fine information and sets internal variables. The current level is taken to be the fine level.
a_grids | CELL-centered grids at this level |
a_dx | mesh spacing at this level |
a_domain | CELL-centered physical domain at this level |
a_loCFIVS | pointer to object storing coarse/fine interface nodes |
a_hiCFIVS | pointer to object storing coarse/fine interface nodes |
a_refToCoarse | refinement ratio between this and next coarser level |
a_interpolationDegree | degree of interpolation; 1 for (bi)linear, 2 for (bi)quadratic |
a_ncomp | number of components of data |
a_verbose | verbose output flag |
void NodeQCFI::define | ( | const DisjointBoxLayout & | a_grids, | |
Real | a_dx, | |||
const Box & | a_domain, | |||
const LayoutData< NodeCFIVS > *const | a_loCFIVS, | |||
const LayoutData< NodeCFIVS > *const | a_hiCFIVS, | |||
int | a_refToCoarse, | |||
NodeBCFunc | a_bc, | |||
int | a_interpolationDegree = 2 , |
|||
int | a_ncomp = 1 , |
|||
bool | a_verbose = false | |||
) |
Full define function. Makes all coarse-fine information and sets internal variables. The current level is taken to be the fine level.
a_grids | CELL-centered grids at this level |
a_dx | mesh spacing at this level |
a_domain | CELL-centered physical domain at this level |
a_loCFIVS | pointer to object storing coarse/fine interface nodes |
a_hiCFIVS | pointer to object storing coarse/fine interface nodes |
a_refToCoarse | refinement ratio between this and next coarser level |
a_interpolationDegree | degree of interpolation, 1 for (bi)linear, 2 for (bi)quadratic |
a_ncomp | number of components of data |
a_verbose | verbose output flag |
bool NodeQCFI::isDefined | ( | ) | const |
Returns true
if this object was created with the defining constructor or if define() has been called.
void NodeQCFI::setVerbose | ( | bool | a_verbose | ) |
Set whether to give output. Default is false
.
void NodeQCFI::coarseFineInterp | ( | LevelData< NodeFArrayBox > & | a_phiFine, | |
const LevelData< NodeFArrayBox > & | a_phiCoarse, | |||
bool | a_inhomogeneous | |||
) |
Coarse / Fine (inhomogeneous) interpolation operator. Fill the nodes of a_phi on the coarse/fine interface with interpolated data from a_phiCoarse.
a_phiFine | data at this level |
a_phiCoarse | data at the next coarser level |
a_inhomogeneous | whether to apply inhomogeneous physical boundary conditions? |
void NodeQCFI::clearMemory | ( | ) | [private] |
void NodeQCFI::setDefaultValues | ( | ) | [private] |
NodeBCFunc NodeQCFI::m_bc [protected] |
DisjointBoxLayout NodeQCFI::m_grids [protected] |
CELL-centered grids at the current level (the finer level)
int NodeQCFI::m_ncomp [protected] |
number of components of data, needed for setting size of work array
int NodeQCFI::m_refToCoarse [protected] |
refinement ratio between this and the next coarser level
int NodeQCFI::m_coarsenings [protected] |
the number of coarsenings to be done: this is log2(m_refToCoarse)
bool NodeQCFI::m_isDefined [protected] |
has full define function been called?
Real NodeQCFI::m_dx [protected] |
mesh spacing at this (fine) level
Real NodeQCFI::m_dxPenultimate [protected] |
mesh spacing at coarsest level refined by 2
ProblemDomain NodeQCFI::m_domainPenultimate [protected] |
CELL-centered physical domain of coarsest level refined by 2
Vector< LevelData<NodeFArrayBox>* > NodeQCFI::m_inter [protected] |
data at intermediate coarsening levels; Vector length m_coarsenings-1.
Vector< NodeQuadCFInterp2* > NodeQCFI::m_qcfi2 [protected] |
Vector of interpolating objects, of length m_coarsenings. m_qcfi2[i] averages refined versions of the SAME grids if i > 1, and in general DIFFERENT grids if i == 0.
Vector< LayoutData<NodeCFIVS>* > NodeQCFI::m_loCFIVScoarser [protected] |
pointers to objects storing coarse/fine interface nodes between levels of refinement, including intermediate ones
Vector< LayoutData<NodeCFIVS>* > NodeQCFI::m_hiCFIVScoarser [protected] |
pointers to objects storing coarse/fine interface nodes between levels of refinement, including intermediate ones
bool NodeQCFI::m_verbose [protected] |
if true
, print out extra information