IBAMR  IBAMR version 0.19.
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
IBTK::LIndexSetDataFactory< T > Class Template Referenceabstract

Class LIndexSetPatchDataFactory provides a SAMRAI::hier::PatchDataFactory class corresponding to patch data of type LIndexSetData.

#include <ibtk/LIndexSetDataFactory.h>

Inheritance diagram for IBTK::LIndexSetDataFactory< T >:
Inheritance graph
[legend]

Public Member Functions

 LIndexSetDataFactory (SAMRAI::hier::IntVector< NDIM > ghosts)
 
virtual ~LIndexSetDataFactory ()=default
 
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchData< NDIM > > allocate (const SAMRAI::hier::Box< NDIM > &box, SAMRAI::tbox::Pointer< SAMRAI::tbox::Arena > pool=nullptr) const override
 
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchData< NDIM > > allocate (const SAMRAI::hier::Patch< NDIM > &patch, SAMRAI::tbox::Pointer< SAMRAI::tbox::Arena > pool=nullptr) const override
 
size_t getSizeOfMemory (const SAMRAI::hier::Box< NDIM > &box) const override
 
SAMRAI::tbox::Pointer< SAMRAI::hier::PatchDataFactory< NDIM > > cloneFactory (const SAMRAI::hier::IntVector< NDIM > &ghosts) override
 
bool validCopyTo (const SAMRAI::tbox::Pointer< SAMRAI::hier::PatchDataFactory< NDIM > > &dst_pdf) const override
 
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< 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 size_t getSizeOfMemory (const hier::Box< DIM > &box) const
 
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 tbox::Pointer< hier::PatchDataFactory< DIM > > cloneFactory (const hier::IntVector< DIM > &ghosts)
 Abstract virtual function to clone a patch data factory. More...
 
virtual tbox::Pointer< PatchDataFactory< DIM > > cloneFactory (const IntVector< DIM > &ghosts)=0
 Abstract virtual function to clone a patch data factory. More...
 
bool validCopyTo (const tbox::Pointer< hier::PatchDataFactory< DIM > > &dst_pdf) const
 
virtual tbox::Pointer< hier::BoxGeometry< DIM > > getBoxGeometry (const hier::Box< DIM > &box) const
 
virtual tbox::Pointer< BoxGeometry< DIM > > getBoxGeometry (const Box< DIM > &box) const =0
 Abstract virtual function to allocate a concrete box geometry object.
More...
 
bool fineBoundaryRepresentsVariable () const
 
virtual bool fineBoundaryRepresentsVariable () const =0
 Return true if the fine data values represent the data quantity on coarse-fine interfaces if data lives on patch borders; false otherwise.
More...
 
bool dataLivesOnPatchBorder () const
 
virtual bool dataLivesOnPatchBorder () const =0
 Return true if the variable data lives on patch borders; false otherwise. More...
 
const IntVector< DIM > & getGhostCellWidth () const
 Get the ghost cell width.
More...
 
virtual MultiblockDataTranslator< DIM > * getMultiblockDataTranslator ()
 

Protected Attributes

IntVector< DIM > d_ghosts
 

Private Member Functions

 LIndexSetDataFactory ()=delete
 Default constructor. More...
 
 LIndexSetDataFactory (const LIndexSetDataFactory< T > &from)=delete
 Copy constructor. More...
 
LIndexSetDataFactoryoperator= (const LIndexSetDataFactory< T > &that)=delete
 Assignment operator. More...
 

Constructor & Destructor Documentation

◆ LIndexSetDataFactory() [1/3]

template<class T >
IBTK::LIndexSetDataFactory< T >::LIndexSetDataFactory ( SAMRAI::hier::IntVector< NDIM >  ghosts)

The default constructor for the LIndexSetDataFactory class. The ghost cell width argument gives the default width for all data objects created with this factory.

◆ ~LIndexSetDataFactory()

template<class T >
virtual IBTK::LIndexSetDataFactory< T >::~LIndexSetDataFactory ( )
virtualdefault

Virtual destructor for the data factory class.

◆ LIndexSetDataFactory() [2/3]

template<class T >
IBTK::LIndexSetDataFactory< T >::LIndexSetDataFactory ( )
privatedelete
Note
This constructor is not implemented and should not be used.

◆ LIndexSetDataFactory() [3/3]

template<class T >
IBTK::LIndexSetDataFactory< T >::LIndexSetDataFactory ( const LIndexSetDataFactory< T > &  from)
privatedelete
Note
This constructor is not implemented and should not be used.
Parameters
fromThe value to copy to this object.

Member Function Documentation

◆ allocate() [1/5]

template<class T >
SAMRAI::tbox::Pointer<SAMRAI::hier::PatchData<NDIM> > IBTK::LIndexSetDataFactory< T >::allocate ( const SAMRAI::hier::Box< NDIM > &  box,
SAMRAI::tbox::Pointer< SAMRAI::tbox::Arena pool = nullptr 
) const
override

Virtual factory function to allocate a concrete 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/5]

template<class T >
SAMRAI::tbox::Pointer<SAMRAI::hier::PatchData<NDIM> > IBTK::LIndexSetDataFactory< T >::allocate ( const SAMRAI::hier::Patch< NDIM > &  patch,
SAMRAI::tbox::Pointer< SAMRAI::tbox::Arena pool = nullptr 
) const
override

Virtual factory function to allocate a concrete 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.

◆ getSizeOfMemory() [1/3]

template<class T >
size_t IBTK::LIndexSetDataFactory< T >::getSizeOfMemory ( const SAMRAI::hier::Box< NDIM > &  box) const
override

Calculate the amount of memory needed to store the data object, including object data but not dynamically allocated data.

◆ cloneFactory() [1/3]

template<class T >
SAMRAI::tbox::Pointer<SAMRAI::hier::PatchDataFactory<NDIM> > IBTK::LIndexSetDataFactory< T >::cloneFactory ( const SAMRAI::hier::IntVector< NDIM > &  ghosts)
override

Virtual function to clone the data factory. This will return a new instantiation of the factory with the same properties (e.g., same type). The properties of the cloned factory can then be changed without modifying the original.

◆ validCopyTo() [1/2]

template<class T >
bool IBTK::LIndexSetDataFactory< T >::validCopyTo ( const SAMRAI::tbox::Pointer< SAMRAI::hier::PatchDataFactory< NDIM > > &  dst_pdf) const
override

Return whether it is valid to copy this LIndexSetDataFactory to the supplied destination patch data factory. It will return true if dst_pdf is a LIndexSetDataFactory, false otherwise.

◆ operator=()

template<class T >
LIndexSetDataFactory& IBTK::LIndexSetDataFactory< T >::operator= ( const LIndexSetDataFactory< T > &  that)
privatedelete
Note
This operator is not implemented and should not be used.
Parameters
thatThe value to assign to this object.
Returns
A reference to this object.

◆ allocate() [3/5]

virtual tbox::Pointer< hier::PatchData<DIM> > SAMRAI::pdat::IndexDataFactory< DIM, LSet< T > , SAMRAI::pdat::CellGeometry< NDIM > >::allocate ( const hier::Box< DIM > &  box,
tbox::Pointer< tbox::Arena pool = (tbox::Arena *) NULL 
) const
virtualinherited

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() [4/5]

virtual tbox::Pointer< hier::PatchData<DIM> > SAMRAI::pdat::IndexDataFactory< DIM, LSet< T > , SAMRAI::pdat::CellGeometry< NDIM > >::allocate ( const hier::Patch< DIM > &  patch,
tbox::Pointer< tbox::Arena pool = tbox::Pointer<tbox::Arena>(NULL) 
) const
virtualinherited

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

◆ allocate() [5/5]

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.

◆ getSizeOfMemory() [2/3]

virtual size_t SAMRAI::pdat::IndexDataFactory< DIM, LSet< T > , SAMRAI::pdat::CellGeometry< NDIM > >::getSizeOfMemory ( const hier::Box< DIM > &  box) const
virtualinherited

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.

◆ getSizeOfMemory() [3/3]

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.

◆ cloneFactory() [2/3]

virtual tbox::Pointer< hier::PatchDataFactory<DIM> > SAMRAI::pdat::IndexDataFactory< DIM, LSet< T > , SAMRAI::pdat::CellGeometry< NDIM > >::cloneFactory ( const hier::IntVector< DIM > &  ghosts)
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
ghostsdefault ghost cell width for concrete classes created from the factory.

◆ cloneFactory() [3/3]

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.

◆ validCopyTo() [2/2]

bool SAMRAI::pdat::IndexDataFactory< DIM, LSet< T > , SAMRAI::pdat::CellGeometry< NDIM > >::validCopyTo ( const tbox::Pointer< hier::PatchDataFactory< DIM > > &  dst_pdf) const
virtualinherited

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

◆ getBoxGeometry() [1/2]

virtual tbox::Pointer< hier::BoxGeometry<DIM> > SAMRAI::pdat::IndexDataFactory< DIM, LSet< T > , SAMRAI::pdat::CellGeometry< NDIM > >::getBoxGeometry ( const hier::Box< DIM > &  box) const
virtualinherited

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.

◆ 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.

◆ fineBoundaryRepresentsVariable() [1/2]

bool SAMRAI::pdat::IndexDataFactory< DIM, LSet< T > , SAMRAI::pdat::CellGeometry< NDIM > >::fineBoundaryRepresentsVariable
inlineinherited

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.

◆ fineBoundaryRepresentsVariable() [2/2]

template<int DIM>
virtual bool SAMRAI::hier::PatchDataFactory< DIM >::fineBoundaryRepresentsVariable ( ) const
pure virtualinherited

◆ dataLivesOnPatchBorder() [1/2]

bool SAMRAI::pdat::IndexDataFactory< DIM, LSet< T > , SAMRAI::pdat::CellGeometry< NDIM > >::dataLivesOnPatchBorder
inlineinherited

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.

◆ dataLivesOnPatchBorder() [2/2]

template<int DIM>
virtual bool SAMRAI::hier::PatchDataFactory< DIM >::dataLivesOnPatchBorder ( ) const
pure virtualinherited

◆ 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.

◆ 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: