Chombo + EB
3.0
|
Class to interpolate quadratically at coarse/fine interface. More...
#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 () |
Class to interpolate quadratically at coarse/fine interface.
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? |
|
private |
|
private |
|
protected |
|
protected |
CELL-centered grids at the current level (the finer level)
|
protected |
number of components of data, needed for setting size of work array
|
protected |
refinement ratio between this and the next coarser level
|
protected |
the number of coarsenings to be done: this is log2(m_refToCoarse)
|
protected |
has full define function been called?
|
protected |
mesh spacing at this (fine) level
|
protected |
mesh spacing at coarsest level refined by 2
|
protected |
CELL-centered physical domain of coarsest level refined by 2
|
protected |
data at intermediate coarsening levels; Vector length m_coarsenings-1.
|
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.
|
protected |
pointers to objects storing coarse/fine interface nodes between levels of refinement, including intermediate ones
|
protected |
pointers to objects storing coarse/fine interface nodes between levels of refinement, including intermediate ones
|
protected |
if true
, print out extra information