#include <source/hierarchy/variables/PatchDataFactory.h>
Inheritance diagram for SAMRAI::hier::PatchDataFactory< DIM >:
Public Member Functions | |
PatchDataFactory () | |
virtual | ~PatchDataFactory () |
virtual tbox::Pointer< PatchDataFactory< DIM > > | cloneFactory ()=0 |
virtual tbox::Pointer< PatchData< DIM > > | allocate (const Box< DIM > &box, tbox::Pointer< tbox::Arena > pool=(tbox::Arena *) NULL) const =0 |
virtual tbox::Pointer< BoxGeometry< DIM > > | getBoxGeometry (const Box< DIM > &box) const =0 |
virtual const IntVector< DIM > & | getDefaultGhostCellWidth () const =0 |
virtual void | setDefaultGhostCellWidth (const IntVector< DIM > &ghosts)=0 |
virtual size_t | getSizeOfMemory (const Box< DIM > &box) const =0 |
virtual bool | fineBoundaryRepresentsVariable () const =0 |
virtual bool | dataLivesOnPatchBorder () const =0 |
virtual bool | validCopyTo (const tbox::Pointer< PatchDataFactory< DIM > > &dst_pdf) const =0 |
The separation of PDF from PD simplifies the creation of new concrete PD classes since it separates the definition of the concrete class type from the actual instantiation. The actual concrete class associated with the PDF is unknown to most of the framework; the PDF only defines enough information to create the PD instance. For example, to add a new type of PD object MyPD (MyPatchData): {enumerate}
In addition to the generation of patch data, the patch data factory also generates box geometry descriptions used to calculate the overlap between two patch data objects. The allocation of the box geometry object is managed by the patch data factory instead of the patch data object since patch data factories are guaranteed to exist on all of the processors independent of the mapping of patches to processors. Patch data is guaranteed to exist only on those patches local to a processor.
|
The default constructor for the patch data factory class. |
|
Virtual destructor for the patch data factory class. |
|
Abstract virtual function to clone a patch data factory. 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. Implemented in SAMRAI::pdat::CellDataFactory< DIM, TYPE >, SAMRAI::pdat::EdgeDataFactory< DIM, TYPE >, SAMRAI::pdat::FaceDataFactory< DIM, TYPE >, SAMRAI::pdat::IndexDataFactory< DIM, TYPE >, SAMRAI::pdat::NodeDataFactory< DIM, TYPE >, SAMRAI::pdat::OuteredgeDataFactory< DIM, TYPE >, SAMRAI::pdat::OuterfaceDataFactory< DIM, TYPE >, SAMRAI::pdat::OuternodeDataFactory< DIM, TYPE >, SAMRAI::pdat::OutersideDataFactory< DIM, TYPE >, and SAMRAI::pdat::SideDataFactory< DIM, TYPE >. |
|
Abstract virtual function to allocate a concrete patch data object. 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. |
|
Abstract virtual function to allocate a concrete box geometry object. The box geometry object will be used in the calculation of box intersections for the computation of data dependencies. |
|
Get the default ghost cell width. This is the ghost cell width that will be used in the instantiation of concrete patch data instances. Implemented in SAMRAI::pdat::CellDataFactory< DIM, TYPE >, SAMRAI::pdat::EdgeDataFactory< DIM, TYPE >, SAMRAI::pdat::FaceDataFactory< DIM, TYPE >, SAMRAI::pdat::IndexDataFactory< DIM, TYPE >, SAMRAI::pdat::NodeDataFactory< DIM, TYPE >, SAMRAI::pdat::OuteredgeDataFactory< DIM, TYPE >, SAMRAI::pdat::OuterfaceDataFactory< DIM, TYPE >, SAMRAI::pdat::OuternodeDataFactory< DIM, TYPE >, SAMRAI::pdat::OutersideDataFactory< DIM, TYPE >, and SAMRAI::pdat::SideDataFactory< DIM, TYPE >. |
|
Set the default ghost cell width for concrete classes created from the factory. |
|
Abstract virtual function to compute the amount of memory needed to allocate for object data and to represent the object itself. 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. |
|
Return true if the fine data values represent the data quantity on coarse-fine interfaces if data lives on patch borders; false otherwise. The boolean return value is supplied by the concrete patch data factory subclass. Implemented in SAMRAI::pdat::CellDataFactory< DIM, TYPE >, SAMRAI::pdat::EdgeDataFactory< DIM, TYPE >, SAMRAI::pdat::FaceDataFactory< DIM, TYPE >, SAMRAI::pdat::IndexDataFactory< DIM, TYPE >, SAMRAI::pdat::NodeDataFactory< DIM, TYPE >, SAMRAI::pdat::OuteredgeDataFactory< DIM, TYPE >, SAMRAI::pdat::OuterfaceDataFactory< DIM, TYPE >, SAMRAI::pdat::OuternodeDataFactory< DIM, TYPE >, SAMRAI::pdat::OutersideDataFactory< DIM, TYPE >, and SAMRAI::pdat::SideDataFactory< DIM, TYPE >. |
|
Return true if the variable data lives on patch borders; false otherwise. The boolean return value is supplied by the concrete patch data factory subclass. Implemented in SAMRAI::pdat::CellDataFactory< DIM, TYPE >, SAMRAI::pdat::EdgeDataFactory< DIM, TYPE >, SAMRAI::pdat::FaceDataFactory< DIM, TYPE >, SAMRAI::pdat::IndexDataFactory< DIM, TYPE >, SAMRAI::pdat::NodeDataFactory< DIM, TYPE >, SAMRAI::pdat::OuteredgeDataFactory< DIM, TYPE >, SAMRAI::pdat::OuterfaceDataFactory< DIM, TYPE >, SAMRAI::pdat::OuternodeDataFactory< DIM, TYPE >, SAMRAI::pdat::OutersideDataFactory< DIM, TYPE >, and SAMRAI::pdat::SideDataFactory< DIM, TYPE >. |
|
Abstract virtual function that returns whether the current PatchDataFactory can be copied to the supplied destination PatchDataFactory. Mechanisms to check for valid types are implemented in the patch data factory subclasses for particular datatypes. |