Chombo + EB
3.0
|
Internal class to find parts of a box outside the valid region of a level. More...
#include <CFIVS.H>
Public Member Functions | |
CFIVS () | |
Null constructor. More... | |
~CFIVS () | |
Destructor. More... | |
void | define (const IntVectSet &a_IVS) |
Explicit define based on an IntVectSet. More... | |
void | define (const DataIndex &a_dataIndex, const DisjointBoxLayout &a_grids, const Box &a_ghostBox) |
General define for any box using NeighborIterators. More... | |
void | coarsen (int a_ref) |
Coarsen the stored cells. More... | |
const Box & | packedBox () const |
Returns packed box for when isPacked() is true. More... | |
const Box & | minBox () const |
Returns minbox for when isPacked() is false (but can also be used if true) More... | |
const IntVectSet & | getIVS () const |
Get the set of IntVects. More... | |
bool | isPacked () const |
Returns "true" if this CF IntVectSet can be represented as a simple Box. More... | |
bool | isEmpty () const |
Returns "true" if the defined IVS is empty. More... | |
bool | isDefined () const |
Returns "true" if the object has been defined. More... | |
Legacy members | |
New uses of CFIVS should avoid these routines | |
CFIVS (const Box &a_domain, const Box &a_boxIn, const DisjointBoxLayout &a_fineBoxes, int a_direction, Side::LoHiSide a_hiorlo) | |
(Deprecated) constructor More... | |
CFIVS (const ProblemDomain &a_domain, const Box &a_boxIn, const DisjointBoxLayout &a_fineBoxes, int a_direction, Side::LoHiSide a_hiorlo) | |
(Deprecated) full constructor More... | |
void | define (const Box &a_domain, const Box &a_boxIn, const DisjointBoxLayout &a_fineBoxes, int a_direction, Side::LoHiSide a_hiorlo) |
(Deprecated) define function More... | |
void | define (const ProblemDomain &a_domain, const Box &a_boxIn, const DisjointBoxLayout &a_fineBoxes, int a_direction, Side::LoHiSide a_hiorlo) |
(Deprecated) full define function More... | |
void | define (const ProblemDomain &a_domain, const Box &a_boxIn, const Vector< Box > &a_periodicfineBoxes, int a_direction, Side::LoHiSide a_hiorlo) |
is the face on the hi or lo side of the box? More... | |
void | define (const ProblemDomain &a_domain, const DataIndex &a_dataIndex, const DisjointBoxLayout &a_grids, int a_direction, Side::LoHiSide a_hiorlo) |
const IntVectSet & | getFineIVS () const |
Get fine intvects which need to be interpolated. More... | |
Static Public Attributes | |
static long long | s_packCount |
static long long | s_sparseCount |
Protected Member Functions | |
void | setDefaultValues () |
void | decrementCounts () |
Decrement counts (during redefine) More... | |
void | packIVS () |
Pack the IVS. More... | |
Protected Attributes | |
IntVectSet | m_IVS |
IntVects that are outside the level. More... | |
Box | m_packedBox |
bool | m_packed |
bool | m_empty |
bool | m_defined |
Has this object been defined? More... | |
Internal class to find parts of a box outside the valid region of a level.
Typically used to find the ghost cells between this and a coarser level. These cells are represented by an IntVectSet and, if possible, packed into a box. This class should only be used through a CFRegion which breaks down the parts of a box into regions that have a high probability of being packed.
CFIVS::CFIVS | ( | ) |
Null constructor.
CFIVS::~CFIVS | ( | ) |
Destructor.
CFIVS::CFIVS | ( | const Box & | a_domain, |
const Box & | a_boxIn, | ||
const DisjointBoxLayout & | a_fineBoxes, | ||
int | a_direction, | ||
Side::LoHiSide | a_hiorlo | ||
) |
(Deprecated) constructor
The ProblemDomain class has replaced the Box domain Replaces Box domain with a ProblemDomain and calls define fn.
CFIVS::CFIVS | ( | const ProblemDomain & | a_domain, |
const Box & | a_boxIn, | ||
const DisjointBoxLayout & | a_fineBoxes, | ||
int | a_direction, | ||
Side::LoHiSide | a_hiorlo | ||
) |
(Deprecated) full constructor
CFRegion should specify the region and call general define for a box Calls corresponding define function.
void CFIVS::define | ( | const IntVectSet & | a_IVS | ) |
Explicit define based on an IntVectSet.
void CFIVS::define | ( | const DataIndex & | a_dataIndex, |
const DisjointBoxLayout & | a_grids, | ||
const Box & | a_ghostBox | ||
) |
General define for any box using NeighborIterators.
void CFIVS::coarsen | ( | int | a_ref | ) |
Coarsen the stored cells.
|
inline |
Returns packed box for when isPacked() is true.
References CH_assert, isPacked(), and m_packedBox.
|
inline |
Returns minbox for when isPacked() is false (but can also be used if true)
References m_packedBox.
|
inline |
Get the set of IntVects.
References m_IVS.
|
inline |
Returns "true" if this CF IntVectSet can be represented as a simple Box.
Returns 'true' if this coarse-fine IntVectSet can be represented as just a Box, ie. a user can perform a dense computation instead of a pointwise calculation using IVSIterator.
References CH_assert, m_defined, and m_packed.
Referenced by packedBox().
|
inline |
|
inline |
Returns "true" if the object has been defined.
References m_defined.
|
protected |
|
protected |
Decrement counts (during redefine)
|
protected |
Pack the IVS.
void CFIVS::define | ( | const Box & | a_domain, |
const Box & | a_boxIn, | ||
const DisjointBoxLayout & | a_fineBoxes, | ||
int | a_direction, | ||
Side::LoHiSide | a_hiorlo | ||
) |
(Deprecated) define function
CFRegion should specify the region and call general define for a box Replaces Box domain with a ProblemDomain and calls define fn.
void CFIVS::define | ( | const ProblemDomain & | a_domain, |
const Box & | a_boxIn, | ||
const DisjointBoxLayout & | a_fineBoxes, | ||
int | a_direction, | ||
Side::LoHiSide | a_hiorlo | ||
) |
(Deprecated) full define function
CFRegion should specify the region and call general define for a box
a_boxIn | Problem domain at the fine level |
a_fineBoxes | fine-level grid box |
a_direction | fine-level grids |
a_hiorlo | direction of the face of interest |
void CFIVS::define | ( | const ProblemDomain & | a_domain, |
const Box & | a_boxIn, | ||
const Vector< Box > & | a_periodicfineBoxes, | ||
int | a_direction, | ||
Side::LoHiSide | a_hiorlo | ||
) |
is the face on the hi or lo side of the box?
(Deprecated) faster define function. Requires the use of CFStencil::buildPeriodicVector static function. CFRegion should specify the region and call general define for a box
void CFIVS::define | ( | const ProblemDomain & | a_domain, |
const DataIndex & | a_dataIndex, | ||
const DisjointBoxLayout & | a_grids, | ||
int | a_direction, | ||
Side::LoHiSide | a_hiorlo | ||
) |
(Deprecated) Updated define function that uses NeighborIterators instead of traversing the entire list of boxes. CFRegion should specify the region and call general define for a box. However, at least this one is using the recommended technology, Neighbor iterators.
|
inline |
|
static |
|
static |
|
protected |
IntVects that are outside the level.
Referenced by getFineIVS(), and getIVS().
|
protected |
If m_packed is true, the Box with which the coarse-fine IntVectSet can be represented. If m_packed is false, same as m_IVS.minBox().
Referenced by minBox(), and packedBox().
|
protected |
Can the coarse-fine IntVectSet be represented as a Box? Set to false if the IVS is empty
Referenced by isPacked().
|
protected |
Is the IVS empty - cached here for fast lookup
Referenced by isEmpty().
|
protected |
Has this object been defined?
Referenced by isDefined(), isEmpty(), and isPacked().