IJK volume mesh abstract interface. More...
#include <MeshVizXLM/mesh/MiMeshIjk.h>
Public Types | |
enum | StorageLayout { LAYOUT_IJK, LAYOUT_IKJ, LAYOUT_JKI, LAYOUT_JIK, LAYOUT_KJI, LAYOUT_KIJ, LAYOUT_UNKNOWN } |
Public Member Functions | |
virtual const MiTopologyIjk & | getTopology () const =0 |
Protected Member Functions | |
virtual std::ostream & | toStream (std::ostream &s) const |
This interface defines an IJK volume mesh. All IJK meshes have a common topology interface to get the number of cells: getNumCellsI(), getNumCellsJ() and getNumCellsK().
Hint about data organization in memory.
This information aims at optimizing the data traversal for extractors. Enum values covering all possible cases for internal data layout in memory. For instance LAYOUT_KJI means that:
for each k with 0 <= k < numK for each j with 0 <= j < numJ for each i with 0 <= i < numI
virtual const MiTopologyIjk& MiMeshIjk::getTopology | ( | ) | const [pure virtual] |
Returns the topology of this mesh.
Implemented in MiVolumeMeshHexahedronIjk, and MiVolumeMeshUnstructuredIjk.
virtual std::ostream& MiMeshIjk::toStream | ( | std::ostream & | s | ) | const [inline, protected, virtual] |
Performs an output operation on a stream which is returned afterward. This method is protected since only called by the output operator <<. This method is not pure virtual and output by default the geometry and topology of a mesh. Whenever a different output is needed, this method can be implemented in the subclass to get a different output format. No std::ostream& operator << needs to be defined in any subclass. This allows you to benefit from the virtual inheritance when using the output operator on an abstract class.
Implements MiMesh.
Reimplemented in MiVolumeMeshCurvilinear, MiVolumeMeshHexahedronIjk, MiVolumeMeshRectilinear, MiVolumeMeshRegular, MiVolumeMeshUnstructuredIjk, and MiVolumeMeshVertexHexahedronIjk.