CFIVS Class Reference

#include <CFIVS.H>

List of all members.


Detailed Description

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.

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 BoxpackedBox () const
 Returns packed box for when isPacked() is true.
const BoxminBox () const
 Returns minbox for when isPacked() is false (but can also be used if true).
const IntVectSetgetIVS () 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
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
 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 IntVectSetgetFineIVS () 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?


Constructor & Destructor Documentation

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.


Member Function Documentation

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]

Returns packed box for when isPacked() is true.

References CH_assert, isPacked(), and m_packedBox.

const Box & CFIVS::minBox (  )  const [inline]

Returns minbox for when isPacked() is false (but can also be used if true).

References m_packedBox.

const IntVectSet & CFIVS::getIVS (  )  const [inline]

Get the set of IntVects.

References m_IVS.

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]

Returns "true" if the defined IVS is empty.

References CH_assert, m_defined, and m_empty.

bool CFIVS::isDefined (  )  const [inline]

Returns "true" if the object has been defined.

References m_defined.

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 
)

(Deprecated) full define function

CFRegion should specify the region and call general define for a box

Parameters:
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.

const IntVectSet & CFIVS::getFineIVS (  )  const [inline]

Get fine intvects which need to be interpolated.

Renamed to getIVS() since CFIV has a general purpose now. This will be empty if isEmpty() returns true

References m_IVS.


Member Data Documentation

long long CFIVS::s_packCount [static]

long long CFIVS::s_sparseCount [static]

IntVectSet CFIVS::m_IVS [protected]

IntVects that are outside the level.

Referenced by getFineIVS(), and getIVS().

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]

Has this object been defined?

Referenced by isDefined(), isEmpty(), and isPacked().


The documentation for this class was generated from the following file:

Generated on Sat Oct 21 04:03:38 2017 for Chombo + EB by  doxygen 1.5.5