Chaste  Release::3.4
VtkMeshReader< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <VtkMeshReader.hpp>

+ Inheritance diagram for VtkMeshReader< ELEMENT_DIM, SPACE_DIM >:
+ Collaboration diagram for VtkMeshReader< ELEMENT_DIM, SPACE_DIM >:

Public Member Functions

 VtkMeshReader (std::string pathBaseName)
 
 VtkMeshReader (vtkUnstructuredGrid *p_vtkUnstructuredGrid)
 
virtual ~VtkMeshReader ()
 
unsigned GetNumElements () const
 
unsigned GetNumCableElements () const
 
unsigned GetNumNodes () const
 
unsigned GetNumFaces () const
 
unsigned GetNumEdges () const
 
unsigned GetNumElementAttributes () const
 
unsigned GetNumCableElementAttributes () const
 
unsigned GetNumFaceAttributes () const
 
void Reset ()
 
void Initialize ()
 
std::vector< doubleGetNextNode ()
 
ElementData GetNextElementData ()
 
ElementData GetNextFaceData ()
 
ElementData GetNextCableElementData ()
 
void GetCellData (std::string dataName, std::vector< double > &dataPayload)
 
void GetPointData (std::string dataName, std::vector< double > &dataPayload)
 
void GetCellData (std::string dataName, std::vector< c_vector< double, SPACE_DIM > > &dataPayload)
 
void GetPointData (std::string dataName, std::vector< c_vector< double, SPACE_DIM > > &dataPayload)
 
vtkUnstructuredGrid * OutputMeshAsVtkUnstructuredGrid ()
 
- Public Member Functions inherited from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >
virtual std::vector< doubleGetNodeAttributes ()
 
unsigned GetNumEdges () const
 
ElementData GetNextEdgeData ()
 
virtual std::vector< doubleGetNode (unsigned index)
 
virtual ElementData GetElementData (unsigned index)
 
virtual ElementData GetFaceData (unsigned index)
 
ElementData GetEdgeData (unsigned index)
 
virtual std::vector< unsignedGetContainingElementIndices (unsigned index)
 
virtual std::string GetMeshFileBaseName ()
 
virtual unsigned GetOrderOfElements ()
 
virtual unsigned GetOrderOfBoundaryElements ()
 
virtual bool GetReadContainingElementOfBoundaryElement ()
 
virtual bool IsFileFormatBinary ()
 
virtual bool HasNclFile ()
 
virtual bool HasNodePermutation ()
 
virtual const std::vector
< unsigned > & 
rGetNodePermutation ()
 
ElementIterator GetElementIteratorBegin ()
 
ElementIterator GetElementIteratorBegin (const std::set< unsigned > &rIndices)
 
ElementIterator GetElementIteratorEnd ()
 
NodeIterator GetNodeIteratorBegin ()
 
NodeIterator GetNodeIteratorBegin (const std::set< unsigned > &rIndices)
 
NodeIterator GetNodeIteratorEnd ()
 

Private Member Functions

void CommonConstructor ()
 

Private Attributes

vtkSmartPointer
< vtkUnstructuredGrid > 
mpVtkUnstructuredGrid
 
vtkGeometryFilter * mpVtkGeometryFilter
 
vtkFeatureEdges * mpVtkFilterEdges
 
bool mIndexFromZero
 
std::ifstream mVtuFile
 
unsigned mNumNodes
 
unsigned mNumElements
 
unsigned mNumFaces
 
unsigned mNumCableElements
 
unsigned mNodesRead
 
unsigned mElementsRead
 
unsigned mFacesRead
 
unsigned mBoundaryFacesRead
 
unsigned mBoundaryFacesSkipped
 
unsigned mCableElementsRead
 
unsigned mNumNodeAttributes
 
unsigned mMaxNodeBdyMarker
 
unsigned mNumElementAttributes
 
unsigned mNumFaceAttributes
 
unsigned mNumCableElementAttributes
 
unsigned mOrderOfElements
 
unsigned mNodesPerElement
 
int mVtkCellType
 

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
class VtkMeshReader< ELEMENT_DIM, SPACE_DIM >

VtkMeshReader

Reads a mesh (and data) from VTK .vtu format (that's an XML-based, data compressed unstructured mesh)

Definition at line 80 of file VtkMeshReader.hpp.

Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::VtkMeshReader ( std::string  pathBaseName)
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::VtkMeshReader ( vtkUnstructuredGrid *  p_vtkUnstructuredGrid)

Alternative constructor, takes a vtkUnstructuredGrid that is already in memory as an input parameter rather than a .vtu file

Parameters
p_vtkUnstructuredGridPointer to a vtkUnstructuredGrid object

Definition at line 201 of file VtkMeshReader.cpp.

References VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::CommonConstructor(), and VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mpVtkUnstructuredGrid.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::~VtkMeshReader ( )
virtual

Destructor

Definition at line 225 of file VtkMeshReader.cpp.

Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::CommonConstructor ( )
private

Common constructor which uses the vtkUnstructuredGrid object. The main constructors need to make sure that mpVtkUnstructuredGrid is assigned properly.

Definition at line 89 of file VtkMeshReader.cpp.

References NEVER_REACHED.

Referenced by VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::VtkMeshReader().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetCellData ( std::string  dataName,
std::vector< double > &  dataPayload 
)
Returns
an std::vector containing the vtkCellData with attribute name specified Throws if the attribute name does not exist
Parameters
dataNameName of the cell data
dataPayloadin which to store the result

Definition at line 429 of file VtkMeshReader.cpp.

References EXCEPTION.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetCellData ( std::string  dataName,
std::vector< c_vector< double, SPACE_DIM > > &  dataPayload 
)
Returns
an std::vector containing the vector-directed vtkCellData with attribute name specified Throws if the attribute name does not exist
Parameters
dataNameName of the cell data
dataPayloadin which to store the result

Definition at line 452 of file VtkMeshReader.cpp.

References EXCEPTION.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ElementData VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextCableElementData ( )
virtual
Returns
a vector of the nodes of each face in turn (synonym of GetNextEdgeData())

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 349 of file VtkMeshReader.cpp.

References EXCEPTION, and ElementData::NodeIndices.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ElementData VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextElementData ( )
virtual
Returns
a vector of the nodes of each element (and any attribute information, if there is any) in turn

Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 322 of file VtkMeshReader.cpp.

References ElementData::AttributeValue, EXCEPTION, and ElementData::NodeIndices.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ElementData VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextFaceData ( )
virtual
Returns
a vector of the nodes of each face in turn (synonym of GetNextEdgeData())

Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 375 of file VtkMeshReader.cpp.

References EXCEPTION, NEVER_REACHED, and ElementData::NodeIndices.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector< double > VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextNode ( )
virtual
Returns
a vector of the coordinates of each node in turn

Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 303 of file VtkMeshReader.cpp.

References EXCEPTION.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumCableElementAttributes ( ) const
virtual
Returns
mNumCableElementAttributes

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 274 of file VtkMeshReader.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumCableElements ( ) const
virtual
Returns
the mNumCableElements

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 244 of file VtkMeshReader.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumEdges ( ) const
Returns
mNumFaces (synonym of GetNumFaces() method)

Definition at line 262 of file VtkMeshReader.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumElementAttributes ( ) const
virtual
Returns
mNumElementAttributes

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 268 of file VtkMeshReader.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumElements ( ) const
virtual
Returns
the mNumElements

Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 238 of file VtkMeshReader.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumFaceAttributes ( ) const
virtual
Returns
mNumFaceAttributes

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 280 of file VtkMeshReader.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumFaces ( ) const
virtual
Returns
mNumFaces (synonym of GetNumEdges() method)

Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 256 of file VtkMeshReader.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumNodes ( ) const
virtual
Returns
mNumNodes

Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 250 of file VtkMeshReader.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetPointData ( std::string  dataName,
std::vector< double > &  dataPayload 
)
Returns
an std::vector containing the vtkPointData with attribute name specified Throws if the attribute name does not exist
Parameters
dataNameName of the point data
dataPayloadin which to store the result

Definition at line 481 of file VtkMeshReader.cpp.

References EXCEPTION.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::GetPointData ( std::string  dataName,
std::vector< c_vector< double, SPACE_DIM > > &  dataPayload 
)
Returns
an std::vector containing the vector-directed vtkPointData with attribute name specified Throws if the attribute name does not exist
Parameters
dataNameName of the point data
dataPayloadin which to store the result

Definition at line 505 of file VtkMeshReader.cpp.

References EXCEPTION.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::Initialize ( )

Deletes the vtkUnstructuredGrid and vtkGeometryFilter in preparation for deletion of the mesh reader (should) not be called if the vtkUnstructuredGrid is still required elsewhere, e.g. in an AdaptiveTetrahedralMesh or an AdaptiveBidomainProblem.

Definition at line 297 of file VtkMeshReader.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
vtkUnstructuredGrid * VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::OutputMeshAsVtkUnstructuredGrid ( )
Returns
a pointer to mpVtkUnstructuredGrid

Definition at line 534 of file VtkMeshReader.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset ( )
virtual

Resets mNodesRead, mElementsRead, mFacesRead and mBoundaryFacesRead to zero (for another pass through the mesh from the beginning

Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 286 of file VtkMeshReader.cpp.

Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mBoundaryFacesRead
private

Number of boundary faces read from file so far

Definition at line 105 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mBoundaryFacesSkipped
private

Number of (not) boundary faces skipped

Definition at line 106 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mCableElementsRead
private

Number of cable elements read in.

Definition at line 107 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mElementsRead
private

Number of elements read from file so far

Definition at line 103 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mFacesRead
private

Number of faces read from file so far

Definition at line 104 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mIndexFromZero
private

True if input data is numbered from zero, false otherwise

Definition at line 93 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mMaxNodeBdyMarker
private

Is the maximum node boundary marker

Definition at line 111 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodesPerElement
private

Number of nodes per element

Definition at line 117 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodesRead
private

Number of nodes read from file so far

Definition at line 102 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumCableElementAttributes
private

Is the number of attributes stored for each cable

Definition at line 114 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumCableElements
private

Number of cable elements in the mesh.

Definition at line 100 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumElementAttributes
private

Is the number of attributes stored for each element

Definition at line 112 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumElements
private

Number of elements in the mesh

Definition at line 98 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumFaceAttributes
private

Is the number of attributes stored for each face

Definition at line 113 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumFaces
private

Number of faces in the mesh

Definition at line 99 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumNodeAttributes
private

Is the number of attributes stored at each node

Definition at line 110 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumNodes
private

Number of nodes in the mesh

Definition at line 97 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mOrderOfElements
private

Order of the elements (i.e. linear, quadratic, cubic FE basis functions

Definition at line 116 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
vtkFeatureEdges* VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mpVtkFilterEdges
private

VTK edge filter object to extract the boundary elements in 2D

Definition at line 91 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
vtkGeometryFilter* VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mpVtkGeometryFilter
private

VTK geometry filter object to extract the surface elements

Definition at line 88 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
vtkSmartPointer<vtkUnstructuredGrid> VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mpVtkUnstructuredGrid
private

vtkUnstructuredGrid object: the rest of the class acts as an interface to this

Definition at line 85 of file VtkMeshReader.hpp.

Referenced by VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::VtkMeshReader().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
int VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mVtkCellType
private

Enumerated as VTK_TETRA in 3D and VTK_TRIANGLE in 2D. The VTK method GetCellType() returns an int, but this is documented as being non-negative

Definition at line 119 of file VtkMeshReader.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::ifstream VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::mVtuFile
private

Location of the .vtu file

Definition at line 95 of file VtkMeshReader.hpp.

Referenced by VtkMeshReader< ELEMENT_DIM, SPACE_DIM >::VtkMeshReader().


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