Chaste  Release::2018.1
FemlabMeshReader< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <FemlabMeshReader.hpp>

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

Public Member Functions

 FemlabMeshReader (const std::string &rPathBaseName, const std::string &rNodeFileName, const std::string &rElementFileName, const std::string &rEdgeFileName)
 
virtual ~FemlabMeshReader ()
 
- Public Member Functions inherited from AbstractCachedMeshReader< ELEMENT_DIM, SPACE_DIM >
 AbstractCachedMeshReader ()
 
virtual ~AbstractCachedMeshReader ()
 
unsigned GetNumElements () const
 
unsigned GetNumNodes () const
 
unsigned GetNumFaces () const
 
unsigned GetMaxNodeIndex ()
 
unsigned GetMinNodeIndex ()
 
std::vector< doubleGetNextNode ()
 
void Reset ()
 
ElementData GetNextElementData ()
 
ElementData GetNextFaceData ()
 
- Public Member Functions inherited from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >
virtual unsigned GetNumCableElements () const
 
virtual unsigned GetNumElementAttributes () const
 
virtual unsigned GetNumFaceAttributes () const
 
virtual unsigned GetNumCableElementAttributes () const
 
virtual std::vector< doubleGetNodeAttributes ()
 
unsigned GetNumEdges () const
 
virtual ElementData GetNextCableElementData ()
 
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

std::vector< std::vector
< double > > 
TokenizeStringsToDoubles (const std::vector< std::string > &rRawData)
 
std::vector< std::vector
< unsigned > > 
TokenizeStringsToInts (const std::vector< std::string > &rRawData, unsigned dimensionOfObject)
 

Additional Inherited Members

- Protected Member Functions inherited from AbstractCachedMeshReader< ELEMENT_DIM, SPACE_DIM >
std::vector< std::string > GetRawDataFromFile (const std::string &rFileName)
 
- Protected Attributes inherited from AbstractCachedMeshReader< ELEMENT_DIM, SPACE_DIM >
unsigned mNumNodeAttributes
 
unsigned mMaxNodeBdyMarker
 
unsigned mNumElementNodes
 
unsigned mNumElementAttributes
 
unsigned mMaxFaceBdyMarker
 
std::vector< std::string > mNodeRawData
 
std::vector< std::string > mElementRawData
 
std::vector< std::string > mFaceRawData
 
std::vector< std::vector
< double > > 
mNodeData
 
std::vector< std::vector
< unsigned > > 
mElementData
 
std::vector< std::vector
< unsigned > > 
mFaceData
 
std::vector< std::vector
< double > >::iterator 
mpNodeIterator
 
std::vector< std::vector
< unsigned > >::iterator 
mpElementIterator
 
std::vector< std::vector
< unsigned > >::iterator 
mpFaceIterator
 
bool mIndexFromZero
 

Detailed Description

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

Concrete version of the AbstractCachedMeshReader class. A FemlabMeshReader takes the file names of a set of Femlab mesh files. Once constructed the public methods of the AbstractCachedMeshReader (std::vector<double> GetNextNode(); etc) can be called to interrogate the data

Definition at line 49 of file FemlabMeshReader.hpp.

Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
FemlabMeshReader< ELEMENT_DIM, SPACE_DIM >::FemlabMeshReader ( const std::string &  rPathBaseName,
const std::string &  rNodeFileName,
const std::string &  rElementFileName,
const std::string &  rEdgeFileName 
)

The constructor takes the path to and names of a set of Femlab mesh files (ie. the nodes, elements and faces files (in that order) and allows the data to be queried. Typical use: AbstractMeshReader* pMeshReader = new FemlabMeshReader("pdes/tests/meshdata/", "femlab_lshape_nodes.dat", "femlab_lshape_elements.dat", "femlab_lshape_edges.dat",);

Parameters
rPathBaseNamethe base name of the files from which to read the mesh data
rNodeFileNamethe name of the nodes file
rElementFileNamethe name of the elements file
rEdgeFileNamethe name of the edges file

Definition at line 46 of file FemlabMeshReader.cpp.

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

Destructor

Definition at line 86 of file FemlabMeshReader.cpp.

Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector< std::vector< double > > FemlabMeshReader< ELEMENT_DIM, SPACE_DIM >::TokenizeStringsToDoubles ( const std::vector< std::string > &  rRawData)
private

TokenizeStringsToDoubles is specific to reading node data which came from a Femlab or Matlab PDE toolbox file.

Each string is expected to be a series of doubles.

Returns
a vector where each item is a vector of double which represents position. Indices are implicit in the vector.
Parameters
rRawDatathe node data to be read

Definition at line 91 of file FemlabMeshReader.cpp.

References EXCEPTION.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector< std::vector< unsigned > > FemlabMeshReader< ELEMENT_DIM, SPACE_DIM >::TokenizeStringsToInts ( const std::vector< std::string > &  rRawData,
unsigned  dimensionOfObject 
)
private

TokenizeStringsToInts is for reading element, face or edge data which came from a Femlab or Matlab PDE toolbox file. Each string is expected to be a series of unsigned which represent: The first several lines denote the indices of nodes The rest contains extra information which are ignored currently. ( In 2-D: 2 indices for an edge, 3 for a triangle) ( In 3-D: 3 indices for a face, 4 for a tetrahedron)

Returns
a vector where each item is a vector of ints which represents indices of nodes.
Parameters
rRawDatathe element, face or edge data to be read
dimensionOfObjectthe number of lines of data to be read

Definition at line 143 of file FemlabMeshReader.cpp.


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