IBAMR  IBAMR version 0.19.
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY > Class Template Referenceabstract

#include <IndexDataFactory.h>

Inheritance diagram for SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY >:
Inheritance graph
[legend]

Public Member Functions

 IndexDataFactory (const hier::IntVector< DIM > &ghosts)
 
virtual ~IndexDataFactory ()
 
virtual tbox::Pointer< hier::PatchDataFactory< DIM > > cloneFactory (const hier::IntVector< DIM > &ghosts)
 Abstract virtual function to clone a patch data factory. More...
 
virtual tbox::Pointer< hier::PatchData< DIM > > allocate (const hier::Box< DIM > &box, tbox::Pointer< tbox::Arena > pool=(tbox::Arena *) NULL) const
 
virtual tbox::Pointer< hier::PatchData< DIM > > allocate (const hier::Patch< DIM > &patch, tbox::Pointer< tbox::Arena > pool=tbox::Pointer< tbox::Arena >(NULL)) const
 
virtual tbox::Pointer< hier::BoxGeometry< DIM > > getBoxGeometry (const hier::Box< DIM > &box) const
 
virtual size_t getSizeOfMemory (const hier::Box< DIM > &box) const
 
bool fineBoundaryRepresentsVariable () const
 
bool dataLivesOnPatchBorder () const
 
bool validCopyTo (const tbox::Pointer< hier::PatchDataFactory< DIM > > &dst_pdf) const
 
virtual tbox::Pointer< PatchDataFactory< DIM > > cloneFactory (const IntVector< DIM > &ghosts)=0
 Abstract virtual function to clone a patch data factory. More...
 
virtual tbox::Pointer< PatchData< DIM > > allocate (const Box< DIM > &box, tbox::Pointer< tbox::Arena > pool=(tbox::Arena *) NULL) const =0
 Abstract virtual function to allocate a concrete patch data object. More...
 
virtual tbox::Pointer< BoxGeometry< DIM > > getBoxGeometry (const Box< DIM > &box) const =0
 Abstract virtual function to allocate a concrete box geometry object.
More...
 
const IntVector< DIM > & getGhostCellWidth () const
 Get the ghost cell width.
More...
 
virtual size_t getSizeOfMemory (const Box< DIM > &box) const =0
 Abstract virtual function to compute the amount of memory needed to allocate for object data and to represent the object itself. More...
 
virtual MultiblockDataTranslator< DIM > * getMultiblockDataTranslator ()
 

Protected Attributes

IntVector< DIM > d_ghosts
 

Private Member Functions

 IndexDataFactory (const IndexDataFactory< DIM, TYPE, BOX_GEOMETRY > &)
 
void operator= (const IndexDataFactory< DIM, TYPE, BOX_GEOMETRY > &)
 

Detailed Description

template<int DIM, class TYPE, class BOX_GEOMETRY>
class SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY >

Class IndexDataFactory<DIM> is the factory class used to allocate new instances of IndexData<DIM> objects. It is a subclass of the hier::PatchDataFactory<DIM> base class.

See also
pdat::IndexData
pdat::IndexVariable
hier::PatchDataFactory

Constructor & Destructor Documentation

◆ IndexDataFactory() [1/2]

template<int DIM, class TYPE , class BOX_GEOMETRY >
SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY >::IndexDataFactory ( const hier::IntVector< DIM > &  ghosts)

The default constructor for the IndexDataFactory<DIM> class. The ghost cell width argument gives the default width for all irregular data objects created with this factory.

◆ ~IndexDataFactory()

template<int DIM, class TYPE , class BOX_GEOMETRY >
virtual SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY >::~IndexDataFactory ( )
virtual

Virtual destructor for the irregular data factory class.

◆ IndexDataFactory() [2/2]

template<int DIM, class TYPE , class BOX_GEOMETRY >
SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY >::IndexDataFactory ( const IndexDataFactory< DIM, TYPE, BOX_GEOMETRY > &  )
private

Member Function Documentation

◆ cloneFactory() [1/2]

template<int DIM, class TYPE , class BOX_GEOMETRY >
virtual tbox::Pointer< hier::PatchDataFactory<DIM> > SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY >::cloneFactory ( const hier::IntVector< DIM > &  ghosts)
virtual

This will return a new instantiation of the abstract factory with the same properties. The properties of the cloned factory can then be changed without modifying the original.

Parameters
ghostsdefault ghost cell width for concrete classes created from the factory.

◆ allocate() [1/3]

template<int DIM, class TYPE , class BOX_GEOMETRY >
virtual tbox::Pointer< hier::PatchData<DIM> > SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY >::allocate ( const hier::Box< DIM > &  box,
tbox::Pointer< tbox::Arena pool = (tbox::Arena *) NULL 
) const
virtual

Virtual factory function to allocate a concrete irregular data object. The default information about the object (e.g., ghost cell width) is taken from the factory. If no memory pool is provided, the allocation routine assumes some default memory pool.

◆ allocate() [2/3]

template<int DIM, class TYPE , class BOX_GEOMETRY >
virtual tbox::Pointer< hier::PatchData<DIM> > SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY >::allocate ( const hier::Patch< DIM > &  patch,
tbox::Pointer< tbox::Arena pool = tbox::Pointertbox::Arena >(NULL) 
) const
virtual

Virtual factory function to allocate a concrete index data object. Same as above function, except passes in a patch instead of a box.

Implements SAMRAI::hier::PatchDataFactory< DIM >.

◆ getBoxGeometry() [1/2]

template<int DIM, class TYPE , class BOX_GEOMETRY >
virtual tbox::Pointer< hier::BoxGeometry<DIM> > SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY >::getBoxGeometry ( const hier::Box< DIM > &  box) const
virtual

Allocate the box geometry object associated with the patch data. This information will be used in the computation of intersections and data dependencies between objects.

◆ getSizeOfMemory() [1/2]

template<int DIM, class TYPE , class BOX_GEOMETRY >
virtual size_t SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY >::getSizeOfMemory ( const hier::Box< DIM > &  box) const
virtual

Calculate the amount of memory needed to store the irregular data object, including object data but not dynamically allocated data. Because the irregular data list can grow and shrink, it would be impossible to estimate the necessary amount of memory. Instead, dynamic data is allocated via the standard new/free mechanisms.

◆ fineBoundaryRepresentsVariable()

template<int DIM, class TYPE , class BOX_GEOMETRY >
bool SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY >::fineBoundaryRepresentsVariable ( ) const
inlinevirtual

Return a boolean true value indicating that the index data quantities will always be treated as though fine values represent them on coarse-fine interfaces. See the IndexVariable<DIM> class header file for more information.

Implements SAMRAI::hier::PatchDataFactory< DIM >.

◆ dataLivesOnPatchBorder()

template<int DIM, class TYPE , class BOX_GEOMETRY >
bool SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY >::dataLivesOnPatchBorder ( ) const
inlinevirtual

Return false since the index data index space matches the cell-centered index space for AMR patches. Thus, index data does not live on patch borders.

Implements SAMRAI::hier::PatchDataFactory< DIM >.

◆ validCopyTo()

template<int DIM, class TYPE , class BOX_GEOMETRY >
bool SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY >::validCopyTo ( const tbox::Pointer< hier::PatchDataFactory< DIM > > &  dst_pdf) const
virtual

Return whether it is valid to copy this IndexDataFactory to the supplied destination patch data factory. It will return true if dst_pdf is an IndexDataFactory of the same type and dimension, false otherwise.

Implements SAMRAI::hier::PatchDataFactory< DIM >.

◆ operator=()

template<int DIM, class TYPE , class BOX_GEOMETRY >
void SAMRAI::pdat::IndexDataFactory< DIM, TYPE, BOX_GEOMETRY >::operator= ( const IndexDataFactory< DIM, TYPE, BOX_GEOMETRY > &  )
private

◆ cloneFactory() [2/2]

template<int DIM>
virtual tbox::Pointer< PatchDataFactory<DIM> > SAMRAI::hier::PatchDataFactory< DIM >::cloneFactory ( const IntVector< DIM > &  ghosts)
pure virtualinherited

This will return a new instantiation of the abstract factory with the same properties. The properties of the cloned factory can then be changed without modifying the original.

Parameters
ghostsghost cell width for concrete classes created from the factory.

◆ allocate() [3/3]

template<int DIM>
virtual tbox::Pointer< PatchData<DIM> > SAMRAI::hier::PatchDataFactory< DIM >::allocate ( const Box< DIM > &  box,
tbox::Pointer< tbox::Arena pool = (tbox::Arena *) NULL 
) const
pure virtualinherited

The default information about the object (e.g., ghost cell width) is taken from the factory. If no memory pool is provided, then the allocation routine assumes some default memory pool.

◆ getBoxGeometry() [2/2]

template<int DIM>
virtual tbox::Pointer< BoxGeometry<DIM> > SAMRAI::hier::PatchDataFactory< DIM >::getBoxGeometry ( const Box< DIM > &  box) const
pure virtualinherited

The box geometry object will be used in the calculation of box intersections for the computation of data dependencies.

◆ getGhostCellWidth()

template<int DIM>
const IntVector<DIM>& SAMRAI::hier::PatchDataFactory< DIM >::getGhostCellWidth ( ) const
inherited

This is the ghost cell width that will be used in the instantiation of concrete patch data instances. The ghost width is specified in the clone method.

◆ getSizeOfMemory() [2/2]

template<int DIM>
virtual size_t SAMRAI::hier::PatchDataFactory< DIM >::getSizeOfMemory ( const Box< DIM > &  box) const
pure virtualinherited

This includes any dynamic storage, such as arrays, needed by the concrete patch data instance. Although the patch data subclass may choose not to allocate memory from the provided memory pool, it must not use more memory than requested here.

◆ getMultiblockDataTranslator()

template<int DIM>
virtual MultiblockDataTranslator<DIM>* SAMRAI::hier::PatchDataFactory< DIM >::getMultiblockDataTranslator ( )
virtualinherited

Member Data Documentation

◆ d_ghosts

template<int DIM>
IntVector<DIM> SAMRAI::hier::PatchDataFactory< DIM >::d_ghosts
protectedinherited

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