IBAMR  IBAMR version 0.19.
Public Member Functions | Private Member Functions | Private Attributes | List of all members
SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM > Class Template Reference

#include <LocallyActiveDataFillBoxSet.h>

Inheritance diagram for SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >:
Inheritance graph
[legend]

Public Member Functions

 LocallyActiveDataFillBoxSet (const LocallyActiveDataFillBoxSet< DIM > &fill_box_set)
 Construct a new locally-active fill box set and copy the information from the argument locally-active fill box set. More...
 
 LocallyActiveDataFillBoxSet ()
 Default constructor creates a new fill box set with an empty box set and active patch data information initialized to an unusable state.
The box and the active patch must be set by calling resetLocallyActiveFillBoxes() or addLocallyActiveFillBox() functions on the constructed object. More...
 
virtual ~LocallyActiveDataFillBoxSet ()
 
void setTo (const LocallyActiveDataFillBoxSet< DIM > &fill_box_set)
 
int getNumberOfBoxes () const
 
const tbox::List< xfer::LocallyActiveDataFillBox< DIM > > & getLocallyActiveDataBoxes () const
 
const tbox::List< const typename xfer::RefineClasses< DIM >::Data * > & getUnionActiveRefineVarData () const
 
const tbox::List< const typename xfer::CoarsenClasses< DIM >::Data * > & getUnionActiveCoarsenVarData () const
 
void resetLocallyActiveFillBoxes (const hier::Box< DIM > &box, const tbox::List< const typename xfer::RefineClasses< DIM >::Data * > &var_data)
 
void resetLocallyActiveFillBoxes (const hier::Box< DIM > &box, const tbox::List< const typename xfer::CoarsenClasses< DIM >::Data * > &var_data)
 
void addLocallyActiveFillBox (const hier::Box< DIM > &box, const tbox::List< const typename xfer::RefineClasses< DIM >::Data * > &var_data)
 
void addLocallyActiveFillBox (const hier::Box< DIM > &box, const tbox::List< const typename xfer::CoarsenClasses< DIM >::Data * > &var_data)
 
void intersectBoxes (const hier::Box< DIM > &box)
 
void intersectBoxes (const hier::BoxList< DIM > &boxes)
 
virtual void printClassData (std::ostream &os=tbox::plog) const
 
virtual void resetFillBoxes (const hier::Box< DIM > &box)
 
virtual void resetFillBoxes (const hier::BoxList< DIM > &boxes)
 
void addFillBox (const hier::Box< DIM > &box)
 
const hier::Box< DIM > & getBoundingBox ()
 
const hier::BoxList< DIM > & getBoxList () const
 
hier::BoxList< DIM > & getBoxListToChange ()
 
void simplifyBoxes ()
 
void removeIntersections (const hier::Box< DIM > &takeaway)
 
void removeIntersections (const hier::BoxList< DIM > &takeaway)
 
virtual void print (std::ostream &os=tbox::plog) const
 

Private Member Functions

void mergeLists (tbox::List< const typename xfer::RefineClasses< DIM >::Data * > &outlist, const tbox::List< const typename xfer::RefineClasses< DIM >::Data * > &inlist_a, const tbox::List< const typename xfer::RefineClasses< DIM >::Data * > &inlist_b) const
 
void mergeLists (tbox::List< const typename xfer::CoarsenClasses< DIM >::Data * > &outlist, const tbox::List< const typename xfer::CoarsenClasses< DIM >::Data * > &inlist_a, const tbox::List< const typename xfer::CoarsenClasses< DIM >::Data * > &inlist_b) const
 
void clearLocallyActiveFillBoxData ()
 
bool checkUnion (std::ostream &os=tbox::plog) const
 
void printRefineVarListItems (const tbox::List< const typename xfer::RefineClasses< DIM >::Data * > &inlist, std::ostream &os=tbox::plog) const
 

Private Attributes

tbox::List< xfer::LocallyActiveDataFillBox< DIM > > d_locally_active_boxes
 
tbox::List< const typename xfer::RefineClasses< DIM >::Data * > d_union_refine_var_data
 
tbox::List< const typename xfer::CoarsenClasses< DIM >::Data * > d_union_coarsen_var_data
 
bool d_refine_data
 
hier::Box< DIM > d_bounding_box
 
hier::BoxList< DIM > d_boxes
 
bool d_recompute_bounding_box
 

Detailed Description

template<int DIM>
class SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >

Class LocallyActiveDataFillBoxSet is a utility class that provides "smart" boxlist operations in communication schedules that operate on "locally-active" data; i.e., where each data item may live on a different set of patches. This class is derived from the FillBoxSet class and extends the functionality of that base class for locally-active patch data. Specifically, this box maintains a colleciton of LocallyActiveDataFillBox objects, each of which contains a box and an associated list of either CoarseClass or RefineClass items, but not both.

See also
xfer::FillBoxSet
xfer::LocallyActiveDataFillBox

Constructor & Destructor Documentation

◆ LocallyActiveDataFillBoxSet() [1/2]

Parameters
fill_box_setConstant reference to fill box set to be copied.

◆ LocallyActiveDataFillBoxSet() [2/2]

◆ ~LocallyActiveDataFillBoxSet()

template<int DIM>
virtual SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::~LocallyActiveDataFillBoxSet ( )
virtual

The destructor releases all box and locally-active data storage.

Member Function Documentation

◆ setTo()

template<int DIM>
void SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::setTo ( const LocallyActiveDataFillBoxSet< DIM > &  fill_box_set)

Clears all existing box and locally-active data information for calling object and sets it to the state of the argument fill box set.

Note that this is essentially the same as an assignment opertor, but this implementation was chosen to avoid warnings with some compilers.

◆ getNumberOfBoxes()

template<int DIM>
int SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::getNumberOfBoxes ( ) const

Return number of boxes maintained by this locally-active fill box set.

◆ getLocallyActiveDataBoxes()

template<int DIM>
const tbox::List< xfer::LocallyActiveDataFillBox<DIM> >& SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::getLocallyActiveDataBoxes ( ) const

Return a const reference to the list of locally-active fill boxes owned by this object.

◆ getUnionActiveRefineVarData()

template<int DIM>
const tbox::List<const typename xfer::RefineClasses<DIM>::Data*>& SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::getUnionActiveRefineVarData ( ) const

Return const reference to non-redundant list of refine items representing the union of all locally-active fill boxes owned by this object.

Note that if this object manages coarsen item data, an unrecoverable assertion will result.

◆ getUnionActiveCoarsenVarData()

template<int DIM>
const tbox::List<const typename xfer::CoarsenClasses<DIM>::Data*>& SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::getUnionActiveCoarsenVarData ( ) const

Return const reference to non-redundant list of coarsen items representing the union of all locally-active fill boxes owned by this object.

Note that if this object manages refine item data, an unrecoverable assertion will result.

◆ resetLocallyActiveFillBoxes() [1/2]

template<int DIM>
void SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::resetLocallyActiveFillBoxes ( const hier::Box< DIM > &  box,
const tbox::List< const typename xfer::RefineClasses< DIM >::Data * > &  var_data 
)

Set box and refine item information for this locally-active fill box set to given arguments.

Parameters
boxInput box.
var_dataInput list of refine class data pointers.

Note that if this object currently manages coarsen item data, an unrecoverable assertion will result.

◆ resetLocallyActiveFillBoxes() [2/2]

template<int DIM>
void SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::resetLocallyActiveFillBoxes ( const hier::Box< DIM > &  box,
const tbox::List< const typename xfer::CoarsenClasses< DIM >::Data * > &  var_data 
)

Set box and refine item information for this locally-active fill box set to given arguments.

Parameters
boxInput box.
var_dataInput list of coarsen class data pointers.

Note that if this object currently manages coarsen item data, an unrecoverable assertion will result.

◆ addLocallyActiveFillBox() [1/2]

template<int DIM>
void SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::addLocallyActiveFillBox ( const hier::Box< DIM > &  box,
const tbox::List< const typename xfer::RefineClasses< DIM >::Data * > &  var_data 
)

Add box and refine item information to this locally-active fill box set.

Parameters
boxInput box.
var_dataInput list of refine class data pointers.

Note that if this object currently manages coarsen item data, an unrecoverable assertion will result.

◆ addLocallyActiveFillBox() [2/2]

template<int DIM>
void SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::addLocallyActiveFillBox ( const hier::Box< DIM > &  box,
const tbox::List< const typename xfer::CoarsenClasses< DIM >::Data * > &  var_data 
)

Add box and coarsen item information to this locally-active fill box set.

Parameters
boxInput box.
var_dataInput list of coarsen class data pointers.

Note that if this object currently manages refine item data, an unrecoverable assertion will result.

◆ intersectBoxes() [1/2]

template<int DIM>
void SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::intersectBoxes ( const hier::Box< DIM > &  box)

Replace each box in the fill box set with its intersection with the argument box. Empty fill boxes will be removed.

◆ intersectBoxes() [2/2]

template<int DIM>
void SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::intersectBoxes ( const hier::BoxList< DIM > &  boxes)

Replace each box in the fill box set with its intersection with the argument boxlist. Empty fill boxes will be removed.

◆ printClassData()

template<int DIM>
virtual void SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::printClassData ( std::ostream &  os = tbox::plog) const
virtual

Print all class member data for this locally-active fill box set object to specified output stream (default is plog).

◆ mergeLists() [1/2]

template<int DIM>
void SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::mergeLists ( tbox::List< const typename xfer::RefineClasses< DIM >::Data * > &  outlist,
const tbox::List< const typename xfer::RefineClasses< DIM >::Data * > &  inlist_a,
const tbox::List< const typename xfer::RefineClasses< DIM >::Data * > &  inlist_b 
) const
private

◆ mergeLists() [2/2]

template<int DIM>
void SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::mergeLists ( tbox::List< const typename xfer::CoarsenClasses< DIM >::Data * > &  outlist,
const tbox::List< const typename xfer::CoarsenClasses< DIM >::Data * > &  inlist_a,
const tbox::List< const typename xfer::CoarsenClasses< DIM >::Data * > &  inlist_b 
) const
private

◆ clearLocallyActiveFillBoxData()

template<int DIM>
void SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::clearLocallyActiveFillBoxData ( )
private

◆ checkUnion()

template<int DIM>
bool SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::checkUnion ( std::ostream &  os = tbox::plog) const
private

◆ printRefineVarListItems()

template<int DIM>
void SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::printRefineVarListItems ( const tbox::List< const typename xfer::RefineClasses< DIM >::Data * > &  inlist,
std::ostream &  os = tbox::plog 
) const
private

◆ resetFillBoxes() [1/2]

template<int DIM>
virtual void SAMRAI::xfer::FillBoxSet< DIM >::resetFillBoxes ( const hier::Box< DIM > &  box)
virtualinherited

Reset bounding box to be the argument box and replace fill box set with a set containing that one box.

◆ resetFillBoxes() [2/2]

template<int DIM>
virtual void SAMRAI::xfer::FillBoxSet< DIM >::resetFillBoxes ( const hier::BoxList< DIM > &  boxes)
virtualinherited

Reset fill box set to be the argument box list and set bounding box to be the bounding box of the list.

◆ addFillBox()

template<int DIM>
void SAMRAI::xfer::FillBoxSet< DIM >::addFillBox ( const hier::Box< DIM > &  box)
inherited

Add new fill box to head of box list representing the fill box set.

◆ getBoundingBox()

template<int DIM>
const hier::Box<DIM>& SAMRAI::xfer::FillBoxSet< DIM >::getBoundingBox ( )
inherited

Return const reference to bounding box for all boxes in the fill box set.

◆ getBoxList()

template<int DIM>
const hier::BoxList<DIM>& SAMRAI::xfer::FillBoxSet< DIM >::getBoxList ( ) const
inherited

Return const reference to box list describing the fill box set.

◆ getBoxListToChange()

template<int DIM>
hier::BoxList<DIM>& SAMRAI::xfer::FillBoxSet< DIM >::getBoxListToChange ( )
inherited

Return (non-const) reference to box list describing the fill box set. This function should be used with care as the box list can be changed.

◆ simplifyBoxes()

template<int DIM>
void SAMRAI::xfer::FillBoxSet< DIM >::simplifyBoxes ( )
inherited

Invoke box list routine of same name on the fill box set owned by this object.

◆ removeIntersections() [1/2]

template<int DIM>
void SAMRAI::xfer::FillBoxSet< DIM >::removeIntersections ( const hier::Box< DIM > &  takeaway)
inherited

If argument box intersects the bounding box owned by this object, then invoke the box list routine of same name on the fill box set owned by this object. Otherwise do nothing.

◆ removeIntersections() [2/2]

template<int DIM>
void SAMRAI::xfer::FillBoxSet< DIM >::removeIntersections ( const hier::BoxList< DIM > &  takeaway)
inherited

Invoke box list routine of same name on the fill box set owned by this object.

◆ print()

template<int DIM>
virtual void SAMRAI::xfer::FillBoxSet< DIM >::print ( std::ostream &  os = tbox::plog) const
virtualinherited

Print all class member data for this fill box set object to specified output stream.

Member Data Documentation

◆ d_locally_active_boxes

template<int DIM>
tbox::List< xfer::LocallyActiveDataFillBox<DIM> > SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::d_locally_active_boxes
private

◆ d_union_refine_var_data

template<int DIM>
tbox::List<const typename xfer::RefineClasses<DIM>::Data*> SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::d_union_refine_var_data
private

◆ d_union_coarsen_var_data

template<int DIM>
tbox::List<const typename xfer::CoarsenClasses<DIM>::Data*> SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::d_union_coarsen_var_data
private

◆ d_refine_data

template<int DIM>
bool SAMRAI::xfer::LocallyActiveDataFillBoxSet< DIM >::d_refine_data
private

◆ d_bounding_box

template<int DIM>
hier::Box<DIM> SAMRAI::xfer::FillBoxSet< DIM >::d_bounding_box
privateinherited

◆ d_boxes

template<int DIM>
hier::BoxList<DIM> SAMRAI::xfer::FillBoxSet< DIM >::d_boxes
privateinherited

◆ d_recompute_bounding_box

template<int DIM>
bool SAMRAI::xfer::FillBoxSet< DIM >::d_recompute_bounding_box
privateinherited

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