#include <CFIVS.H>
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.
Public Member Functions | |
CFIVS () | |
Null constructor. | |
~CFIVS () | |
Destructor. | |
void | define (const IntVectSet &a_IVS) |
Explicit define based on an IntVectSet. | |
void | define (const DataIndex &a_dataIndex, const DisjointBoxLayout &a_grids, const Box &a_ghostBox) |
General define for any box using NeighborIterators. | |
void | coarsen (int a_ref) |
Coarsen the stored cells. | |
const Box & | packedBox () const |
Returns packed box for when isPacked() is true. | |
const Box & | minBox () const |
Returns minbox for when isPacked() is false (but can also be used if true). | |
const IntVectSet & | getIVS () const |
Get the set of IntVects. | |
bool | isPacked () const |
Returns "true" if this CF IntVectSet can be represented as a simple Box. | |
bool | isEmpty () const |
Returns "true" if the defined IVS is empty. | |
bool | isDefined () const |
Returns "true" if the object has been defined. | |
Legacy members | |
CFIVS (const Box &a_domain, const Box &a_boxIn, const DisjointBoxLayout &a_fineBoxes, int a_direction, Side::LoHiSide a_hiorlo) | |
(Deprecated) constructor | |
CFIVS (const ProblemDomain &a_domain, const Box &a_boxIn, const DisjointBoxLayout &a_fineBoxes, int a_direction, Side::LoHiSide a_hiorlo) | |
(Deprecated) full constructor | |
void | define (const Box &a_domain, const Box &a_boxIn, const DisjointBoxLayout &a_fineBoxes, int a_direction, Side::LoHiSide a_hiorlo) |
(Deprecated) define function | |
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 | |
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? | |
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. | |
Static Public Attributes | |
static long long | s_packCount |
static long long | s_sparseCount |
Protected Member Functions | |
void | setDefaultValues () |
void | decrementCounts () |
Decrement counts (during redefine). | |
void | packIVS () |
Pack the IVS. | |
Protected Attributes | |
IntVectSet | m_IVS |
IntVects that are outside the level. | |
Box | m_packedBox |
bool | m_packed |
bool | m_empty |
bool | m_defined |
Has this object been defined? |
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 | |||
) |
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.
const Box & CFIVS::packedBox | ( | ) | const [inline] |
const Box & CFIVS::minBox | ( | ) | const [inline] |
const IntVectSet & CFIVS::getIVS | ( | ) | const [inline] |
bool CFIVS::isPacked | ( | ) | const [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().
bool CFIVS::isEmpty | ( | ) | const [inline] |
bool CFIVS::isDefined | ( | ) | const [inline] |
void CFIVS::setDefaultValues | ( | ) | [protected] |
void CFIVS::decrementCounts | ( | ) | [protected] |
Decrement counts (during redefine).
void CFIVS::packIVS | ( | ) | [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 | |||
) |
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 | |||
) |
const IntVectSet & CFIVS::getFineIVS | ( | ) | const [inline] |
long long CFIVS::s_packCount [static] |
long long CFIVS::s_sparseCount [static] |
IntVectSet CFIVS::m_IVS [protected] |
Box CFIVS::m_packedBox [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().
bool CFIVS::m_packed [protected] |
Can the coarse-fine IntVectSet be represented as a Box? Set to false if the IVS is empty
Referenced by isPacked().
bool CFIVS::m_empty [protected] |
Is the IVS empty - cached here for fast lookup
Referenced by isEmpty().
bool CFIVS::m_defined [protected] |