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

#include <RefineClasses.h>

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

Classes

struct  Data
 

Public Member Functions

 RefineClasses ()
 
virtual ~RefineClasses ()
 
int getNumberOfEquivalenceClasses () const
 
const RefineClasses< DIM >::DatagetClassRepresentative (int equiv_class_id) const
 
tbox::List< typename RefineClasses< DIM >::Data >::Iterator getIterator (int equiv_class_id)
 
void insertEquivalenceClassItem (const typename RefineClasses< DIM >::Data &data, tbox::Pointer< hier::PatchDescriptor< DIM > > descriptor=(hier::PatchDescriptor< DIM > *) NULL)
 
bool checkRefineItem (const typename RefineClasses< DIM >::Data &data_item, tbox::Pointer< hier::PatchDescriptor< DIM > > descriptor=(hier::PatchDescriptor< DIM > *) NULL) const
 
bool checkConsistency (tbox::Pointer< RefineClasses< DIM > > test_classes, tbox::Pointer< hier::PatchDescriptor< DIM > > descriptor=(hier::PatchDescriptor< DIM > *) NULL) const
 
virtual void printClassData (std::ostream &stream) const
 
void printRefineItem (std::ostream &stream, const typename RefineClasses< DIM >::Data &data) const
 

Private Member Functions

 RefineClasses (const RefineClasses< DIM > &)
 
void operator= (const RefineClasses< DIM > &)
 
bool checkPatchDataItemConsistency (int item_id1, int item_id2, tbox::Pointer< hier::PatchDescriptor< DIM > > pd) const
 
int getEquivalenceClassIndex (const typename RefineClasses< DIM >::Data &data, tbox::Pointer< hier::PatchDescriptor< DIM > > descriptor=(hier::PatchDescriptor< DIM > *) NULL) const
 

Private Attributes

tbox::Array< tbox::List< typename RefineClasses< DIM >::Data > > d_refine_equivalence_classes
 

Detailed Description

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

Class RefineClasses<DIM> is used by the RefineSchedule<DIM> and RefineAlgorithm<DIM> classes to manage a set of refinement data items that describe interpatch communication of patch data on an AMR hierarchy.
Specifically, this class organizes these items into equivalence clases. Two items are equivalent if their source and destination data represent the same data types and have the same ghost cell widths, respectively.

Constructor & Destructor Documentation

◆ RefineClasses() [1/2]

template<int DIM>
SAMRAI::xfer::RefineClasses< DIM >::RefineClasses ( )

The constructor creates an empty array of refine classes.

◆ ~RefineClasses()

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

The virtual destructor destroys the refinement data items owned by this object (and the associated RefineAlgorithm<DIM> object).

◆ RefineClasses() [2/2]

template<int DIM>
SAMRAI::xfer::RefineClasses< DIM >::RefineClasses ( const RefineClasses< DIM > &  )
private

Member Function Documentation

◆ getNumberOfEquivalenceClasses()

template<int DIM>
int SAMRAI::xfer::RefineClasses< DIM >::getNumberOfEquivalenceClasses ( ) const

Return number of equivalence classes maintained by this object (i.e., the number of lists of refinement data items).

◆ getClassRepresentative()

template<int DIM>
const RefineClasses<DIM>::Data& SAMRAI::xfer::RefineClasses< DIM >::getClassRepresentative ( int  equiv_class_id) const

Return const reference to representative element of equivalence class with the given integer identifier. When assertion checking is active, the id will be checked for validity.

◆ getIterator()

template<int DIM>
tbox::List<typename RefineClasses<DIM>::Data>::Iterator SAMRAI::xfer::RefineClasses< DIM >::getIterator ( int  equiv_class_id)

Return an iterator for the refine data list corresponding to the equivalence class with the given integer identifier. The number of equivalence classes can be determined via the getNumberOfEquivalenceClasses() member function. Valid integer arguments are 0,...,getNumberOfEquivalenceClasses()-1. When assertion checking is active, the id will be checked for validity.

Note that the list should not be modified through this iterator. When assertion checking is active, the id will be checked for validity.

◆ insertEquivalenceClassItem()

template<int DIM>
void SAMRAI::xfer::RefineClasses< DIM >::insertEquivalenceClassItem ( const typename RefineClasses< DIM >::Data data,
tbox::Pointer< hier::PatchDescriptor< DIM > >  descriptor = (hier::PatchDescriptor< DIM > *) NULL 
)

Insert a data item into the refine data list for the proper equivalence class. Items are inserted in order of operator priority so that communication algorithms apply refinement operators with the lowest numerical priority before those with higher numerical priority.

If a null patch descriptor argument is passed (or ommitted), the descriptor associated with the variable database Singleton object will be used to determine the equivalence class.

◆ checkRefineItem()

template<int DIM>
bool SAMRAI::xfer::RefineClasses< DIM >::checkRefineItem ( const typename RefineClasses< DIM >::Data data_item,
tbox::Pointer< hier::PatchDescriptor< DIM > >  descriptor = (hier::PatchDescriptor< DIM > *) NULL 
) const

Check refine data item so that scratch data entry has at least as many ghost cells as destination data entry and stencil width of operator. If so, return true; else return false. A descriptive error message will be reported when a problem appears and the program halts.

If a null patch descriptor argument is passed (or ommitted), the descriptor associated with the variable database Singleton object will be used.

◆ checkConsistency()

template<int DIM>
bool SAMRAI::xfer::RefineClasses< DIM >::checkConsistency ( tbox::Pointer< RefineClasses< DIM > >  test_classes,
tbox::Pointer< hier::PatchDescriptor< DIM > >  descriptor = (hier::PatchDescriptor< DIM > *) NULL 
) const

Compare refine data items in this refine classes object against those in the argument refine classes object. Return true if they all match with regard to the patch data types, patch data ghost cell widths, operator stencils, etc. that they refer to and return false otherwise.

If a null patch descriptor argument is passed (or ommitted), the descriptor associated with the variable database Singleton object will be used.

◆ printClassData()

template<int DIM>
virtual void SAMRAI::xfer::RefineClasses< DIM >::printClassData ( std::ostream &  stream) const
virtual

Print all equivalence class data to the specified output stream.

◆ printRefineItem()

template<int DIM>
void SAMRAI::xfer::RefineClasses< DIM >::printRefineItem ( std::ostream &  stream,
const typename RefineClasses< DIM >::Data data 
) const

Print single equivalence class item to the specified output stream.

◆ operator=()

template<int DIM>
void SAMRAI::xfer::RefineClasses< DIM >::operator= ( const RefineClasses< DIM > &  )
private

◆ checkPatchDataItemConsistency()

template<int DIM>
bool SAMRAI::xfer::RefineClasses< DIM >::checkPatchDataItemConsistency ( int  item_id1,
int  item_id2,
tbox::Pointer< hier::PatchDescriptor< DIM > >  pd 
) const
private

◆ getEquivalenceClassIndex()

template<int DIM>
int SAMRAI::xfer::RefineClasses< DIM >::getEquivalenceClassIndex ( const typename RefineClasses< DIM >::Data data,
tbox::Pointer< hier::PatchDescriptor< DIM > >  descriptor = (hier::PatchDescriptor< DIM > *) NULL 
) const
private

Member Data Documentation

◆ d_refine_equivalence_classes

template<int DIM>
tbox::Array< tbox::List<typename RefineClasses<DIM>::Data> > SAMRAI::xfer::RefineClasses< DIM >::d_refine_equivalence_classes
private

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