Chaste  Release::2024.1
TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <TrianglesMeshReader.hpp>

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

Public Member Functions

 TrianglesMeshReader (std::string pathBaseName, unsigned orderOfElements=1, unsigned orderOfBoundaryElements=1, bool readContainingElementsForBoundaryElements=false)
 
 ~TrianglesMeshReader ()
 
unsigned GetNumElements () const
 
unsigned GetNumNodes () const
 
unsigned GetNumFaces () const
 
unsigned GetNumCableElements () const
 
unsigned GetNumElementAttributes () const
 
unsigned GetNumFaceAttributes () const
 
unsigned GetNumCableElementAttributes () const
 
void Reset ()
 
std::vector< doubleGetNextNode ()
 
ElementData GetNextElementData ()
 
ElementData GetNextFaceData ()
 
ElementData GetNextCableElementData ()
 
unsigned GetOrderOfElements ()
 
unsigned GetOrderOfBoundaryElements ()
 
bool GetReadContainingElementOfBoundaryElement ()
 
std::vector< doubleGetNodeAttributes ()
 
std::vector< doubleGetNode (unsigned index)
 
ElementData GetElementData (unsigned index)
 
ElementData GetFaceData (unsigned index)
 
std::vector< unsignedGetContainingElementIndices (unsigned index)
 
bool IsFileFormatBinary ()
 
bool HasNclFile ()
 
void SetReadBufferSize (unsigned bufferSize)
 
void SetNodePermutation (std::vector< unsigned > &rPermutationVector)
 
bool HasNodePermutation ()
 
const std::vector< unsigned > & rGetNodePermutation ()
 
- Public Member Functions inherited from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >
unsigned GetNumEdges () const
 
ElementData GetNextEdgeData ()
 
ElementData GetEdgeData (unsigned index)
 
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 OpenFiles ()
 
void OpenNodeFile ()
 
void OpenElementsFile ()
 
void OpenFacesFile ()
 
void OpenNclFile ()
 
void OpenCableElementsFile ()
 
void ReadHeaders ()
 
void CloseFiles ()
 
void GetNextLineFromStream (std::ifstream &rFileStream, std::string &rRawLine)
 
template<class T_DATA >
void GetNextItemFromStream (std::ifstream &rFileStream, unsigned expectedItemNumber, std::vector< T_DATA > &rDataPacket, const unsigned &rNumAttributes, std::vector< double > &rAttributes)
 
std::string GetMeshFileBaseName ()
 
void GetOneDimBoundary ()
 
void EnsureIndexingFromZero (std::vector< unsigned > &rNodeIndices)
 

Private Attributes

bool mIndexFromZero
 
std::string mFilesBaseName
 
std::ifstream mNodesFile
 
std::ifstream mElementsFile
 
std::ifstream mFacesFile
 
std::ifstream mNclFile
 
std::ifstream mCableElementsFile
 
std::streampos mNodeFileDataStart
 
std::streamoff mNodeItemWidth
 
std::streampos mElementFileDataStart
 
std::streamoff mElementItemWidth
 
std::streampos mFaceFileDataStart
 
std::streamoff mFaceItemWidth
 
std::streampos mNclFileDataStart
 
std::streamoff mNclItemWidth
 
unsigned mNumNodes
 
unsigned mNumElements
 
unsigned mNumFaces
 
unsigned mNumCableElements
 
unsigned mNodesRead
 
unsigned mElementsRead
 
unsigned mCableElementsRead
 
unsigned mFacesRead
 
unsigned mBoundaryFacesRead
 
unsigned mNclItemsRead
 
std::vector< unsignedmOneDimBoundary
 
unsigned mNumNodeAttributes
 
std::vector< doublemNodeAttributes
 
unsigned mMaxNodeBdyMarker
 
unsigned mNumElementNodes
 
unsigned mNumElementAttributes
 
unsigned mNumFaceAttributes
 
unsigned mNumCableElementAttributes
 
unsigned mOrderOfElements
 
unsigned mOrderOfBoundaryElements
 
unsigned mNodesPerElement
 
unsigned mNodesPerBoundaryElement
 
unsigned mMaxContainingElements
 
bool mEofException
 
bool mReadContainingElementOfBoundaryElement
 
bool mFilesAreBinary
 
bool mMeshIsHexahedral
 
bool mNclFileAvailable
 
char * mNodeFileReadBuffer
 
char * mElementFileReadBuffer
 
char * mFaceFileReadBuffer
 
bool mNodePermutationDefined
 
std::vector< unsignedmPermutationVector
 
std::vector< unsignedmInversePermutationVector
 

Friends

class TestTrianglesMeshReader
 

Detailed Description

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

Concrete version of the AbstractCachedMeshReader class. Once constructed the public methods of the AbstractCachedMeshReader (std::vector<double> GetNextNode(); etc) can be called to interrogate the data.

Definition at line 52 of file TrianglesMeshReader.hpp.

Constructor & Destructor Documentation

◆ TrianglesMeshReader()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::TrianglesMeshReader ( std::string  pathBaseName,
unsigned  orderOfElements = 1,
unsigned  orderOfBoundaryElements = 1,
bool  readContainingElementsForBoundaryElements = false 
)

The containing element for each boundary element (obtaining by doing tetgen with the -nn flag). In a std::vector rather than the struct to save space if not read. Constructor.

Parameters
pathBaseNamethe base name of the files from which to read the mesh data (either absolute, or relative to the current directory)
orderOfElementsthe order of each element: 1 for linear, 2 for quadratic (defaults to 1)
orderOfBoundaryElementsthe order of each boundary element: 1 for linear, 2 for quadratic (defaults to 1. May or may not be different to orderOfElements (Note tetgen with the -o2 flag creates quadratic elements but doesn't create quadratic faces, hence the need for this third parameter)
readContainingElementsForBoundaryElementsWhether to read in the containing element information for each boundary element (in the .face file if tetgen was run with '-nn').

Definition at line 54 of file TrianglesMeshReader.cpp.

References EXCEPTION, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mIndexFromZero, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodesPerBoundaryElement, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodesPerElement, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mOrderOfBoundaryElements, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mOrderOfElements, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mReadContainingElementOfBoundaryElement, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::OpenFiles(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::ReadHeaders().

◆ ~TrianglesMeshReader()

Member Function Documentation

◆ CloseFiles()

◆ EnsureIndexingFromZero()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::EnsureIndexingFromZero ( std::vector< unsigned > &  rNodeIndices)
private

Helper method to ensure we are indexing the nodes from 0 (some files have them indexed from 1) decides according to the property mIndexFromZero

Parameters
rNodeIndicesThe nodes we have read in.

Definition at line 978 of file TrianglesMeshReader.cpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mIndexFromZero.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextElementData(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextFaceData().

◆ GetContainingElementIndices()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector< unsigned > TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetContainingElementIndices ( unsigned  index)
virtual

Normally throws an exception. When a NCL file is available, returns a list of the elements that contain the node (only available for binary files).

Parameters
indexThe global node index
Returns
a vector of the node indices of the face (and any attribute/containment information, if there is any)

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 430 of file TrianglesMeshReader.cpp.

◆ GetElementData()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ElementData TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetElementData ( unsigned  index)
virtual

Normally throws an exception. Only implemented for tetrahedral mesh reader of binary files.

Parameters
indexThe global element index
Returns
a vector of the node indices of the element (and any attribute information, if there is any)

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 368 of file TrianglesMeshReader.cpp.

◆ GetFaceData()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ElementData TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetFaceData ( unsigned  index)
virtual

Normally throws an exception. Only implemented for tetrahedral mesh reader of binary files.

Parameters
indexThe global face index
Returns
a vector of the node indices of the face (and any attribute/containment information, if there is any)

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 397 of file TrianglesMeshReader.cpp.

◆ GetMeshFileBaseName()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::string TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetMeshFileBaseName ( )
privatevirtual

◆ GetNextCableElementData()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ElementData TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextCableElementData ( )
virtual
Returns
a vector of the node indices of each cable element (and any attribute information, if there is any) in turn

only one element attribute registered for the moment

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 232 of file TrianglesMeshReader.cpp.

References ElementData::NodeIndices.

◆ GetNextElementData()

◆ GetNextFaceData()

◆ GetNextItemFromStream()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
template<class T_DATA >
void TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextItemFromStream ( std::ifstream &  rFileStream,
unsigned  expectedItemNumber,
std::vector< T_DATA > &  rDataPacket,
const unsigned rNumAttributes,
std::vector< double > &  rAttributes 
)
private
Returns
the Item details from the next line via a call to GetNextLineFromStream()
Parameters
rFileStreamThe file to read from
expectedItemNumberTo check file syntax, what item is expected to be on the next line.
rDataPacketAssumed to be of the right size but is allowed to contain dirty data on entry.
rNumAttributesThe number of attributes per item that we expect to read. Either mNumFaceAttributes or mNumElementAttributes.
rAttributesWill be filled with the attribute values if rNumAttributes > 0, otherwise empty. Note that floating point attributes are now standard

Definition at line 864 of file TrianglesMeshReader.cpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mFilesAreBinary.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextElementData(), TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextFaceData(), TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextNode(), TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetOneDimBoundary(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::rGetNodePermutation().

◆ GetNextLineFromStream()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextLineFromStream ( std::ifstream &  rFileStream,
std::string &  rRawLine 
)
private

Read in the next line.

Parameters
rFileStreamThe file to read from
rRawLineWill be filled in with the next line

Definition at line 841 of file TrianglesMeshReader.cpp.

References EXCEPTION, and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mEofException.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::ReadHeaders().

◆ GetNextNode()

◆ GetNode()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector< double > TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNode ( unsigned  index)
virtual

Normally throws an exception. Only implemented for tetrahedral mesh reader of binary files.

Parameters
indexThe global node index
Returns
a vector of the coordinates of the node

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 333 of file TrianglesMeshReader.cpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetReadContainingElementOfBoundaryElement().

◆ GetNodeAttributes()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector< double > TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNodeAttributes ( )
virtual

◆ GetNumCableElementAttributes()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumCableElementAttributes ( ) const
virtual
Returns
the number of cable element attributes in the mesh

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 164 of file TrianglesMeshReader.cpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumCableElementAttributes.

◆ GetNumCableElements()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumCableElements ( ) const
virtual
Returns
the number of cable elements in the mesh

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 146 of file TrianglesMeshReader.cpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumCableElements.

◆ GetNumElementAttributes()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumElementAttributes ( ) const
virtual
Returns
the number of attributes in the mesh

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 152 of file TrianglesMeshReader.cpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumElementAttributes.

◆ GetNumElements()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumElements ( ) const
virtual
Returns
the number of elements in the mesh

Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 128 of file TrianglesMeshReader.cpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumElements.

◆ GetNumFaceAttributes()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumFaceAttributes ( ) const
virtual
Returns
the number of attributes in the mesh

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 158 of file TrianglesMeshReader.cpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumFaceAttributes.

◆ GetNumFaces()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumFaces ( ) const
virtual
Returns
the number of faces in the mesh (synonym of GetNumEdges())

Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 140 of file TrianglesMeshReader.cpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumFaces.

◆ GetNumNodes()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumNodes ( ) const
virtual
Returns
the number of nodes in the mesh

Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 134 of file TrianglesMeshReader.cpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumNodes.

◆ GetOneDimBoundary()

◆ GetOrderOfBoundaryElements()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetOrderOfBoundaryElements ( )
inlinevirtual
Returns
the expected order of the boundary element file (1=linear, 2=quadratic)

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 199 of file TrianglesMeshReader.hpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mOrderOfBoundaryElements.

◆ GetOrderOfElements()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetOrderOfElements ( )
inlinevirtual
Returns
the expected order of the element file (1=linear, 2=quadratic)

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 192 of file TrianglesMeshReader.hpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mOrderOfElements.

Referenced by DistributedQuadraticMesh< DIM >::ConstructFromMeshReader().

◆ GetReadContainingElementOfBoundaryElement()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetReadContainingElementOfBoundaryElement ( )
inlinevirtual

◆ HasNclFile()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::HasNclFile ( )
virtual
Returns
true if there is a node connectivity list (NCL) file available.
whether there is a node connectivity list (NCL) file available

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 996 of file TrianglesMeshReader.cpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNclFileAvailable.

◆ HasNodePermutation()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::HasNodePermutation ( )
virtual
Returns
true if a node permutation has been applied by SetNodePermutation.

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 1032 of file TrianglesMeshReader.cpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodePermutationDefined.

◆ IsFileFormatBinary()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::IsFileFormatBinary ( )
virtual
Returns
true if reading binary files, false if reading ascii files.

Note, this will always return false unless over-ridden by a derived class that is able to support binary file formats.

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 990 of file TrianglesMeshReader.cpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mFilesAreBinary.

◆ OpenCableElementsFile()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::OpenCableElementsFile ( )
private

◆ OpenElementsFile()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::OpenElementsFile ( )
private

◆ OpenFacesFile()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::OpenFacesFile ( )
private

◆ OpenFiles()

◆ OpenNclFile()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::OpenNclFile ( )
private

◆ OpenNodeFile()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::OpenNodeFile ( )
private

◆ ReadHeaders()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::ReadHeaders ( )
private

Read the header from each mesh file.

Definition at line 593 of file TrianglesMeshReader.cpp.

References EXCEPTION, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextFaceData(), TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextLineFromStream(), TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetOneDimBoundary(), TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mElementFileDataStart, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mElementItemWidth, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mElementsFile, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mFacesFile, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mFilesAreBinary, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mIndexFromZero, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mMaxNodeBdyMarker, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mMeshIsHexahedral, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNclFileAvailable, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodeFileDataStart, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodeItemWidth, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodesFile, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodesPerBoundaryElement, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodesPerElement, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumElementAttributes, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumElementNodes, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumElements, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumFaceAttributes, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumFaces, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumNodeAttributes, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumNodes, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mOneDimBoundary, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mOrderOfElements, and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::OpenNodeFile().

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::TrianglesMeshReader().

◆ Reset()

◆ rGetNodePermutation()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
const std::vector< unsigned > & TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::rGetNodePermutation ( )
virtual
Returns
the node permutation if a node permutation has been applied to this reader (or an empty permutation)

Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.

Definition at line 1041 of file TrianglesMeshReader.cpp.

References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextItemFromStream(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mPermutationVector.

◆ SetNodePermutation()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::SetNodePermutation ( std::vector< unsigned > &  rPermutationVector)

Sets a node permutation to use when reading in node file.

Todo:
#2452 We need a way of propagating this back to the mesh (and insuring that the mesh is NOT being re-partitioned)
Parameters
rPermutationVectorPermutation vector

Definition at line 1014 of file TrianglesMeshReader.cpp.

References EXCEPTION, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mFilesAreBinary, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mInversePermutationVector, TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodePermutationDefined, and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mPermutationVector.

Referenced by AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::load().

◆ SetReadBufferSize()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::SetReadBufferSize ( unsigned  bufferSize)

Member Data Documentation

◆ mBoundaryFacesRead

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

◆ mCableElementsFile

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::ifstream TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mCableElementsFile
private

◆ mCableElementsRead

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

Number of cable elements read in.

Definition at line 85 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset().

◆ mElementFileDataStart

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::streampos TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mElementFileDataStart
private

The start of the binary element data

Definition at line 71 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::ReadHeaders().

◆ mElementFileReadBuffer

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
char* TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mElementFileReadBuffer
private

◆ mElementItemWidth

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::streamoff TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mElementItemWidth
private

The number of bytes in a line of the element file

Definition at line 72 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::ReadHeaders().

◆ mElementsFile

◆ mElementsRead

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

Number of elements read in (or the index of the last one read in + 1).

Definition at line 84 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextElementData(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset().

◆ mEofException

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mEofException
private

Set to true when end-of-file exception is thrown (for use in a try-catch)

Definition at line 106 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextLineFromStream(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset().

◆ mFaceFileDataStart

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::streampos TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mFaceFileDataStart
private

The start of the binary face data

Definition at line 73 of file TrianglesMeshReader.hpp.

◆ mFaceFileReadBuffer

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
char* TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mFaceFileReadBuffer
private

◆ mFaceItemWidth

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::streamoff TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mFaceItemWidth
private

The number of bytes in a line of the face file

Definition at line 74 of file TrianglesMeshReader.hpp.

◆ mFacesFile

◆ mFacesRead

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

Number of faces read in (or the index of the last one read in + 1).

Definition at line 86 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextFaceData(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset().

◆ mFilesAreBinary

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mFilesAreBinary
private

◆ mFilesBaseName

◆ mIndexFromZero

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

◆ mInversePermutationVector

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector<unsigned> TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mInversePermutationVector
private

Permutation inverse, stored for performance reasons.

Definition at line 119 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::SetNodePermutation().

◆ mMaxContainingElements

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mMaxContainingElements
private

The maximum number of elements that any node is contained in.

Definition at line 104 of file TrianglesMeshReader.hpp.

◆ mMaxNodeBdyMarker

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

Is the maximum node boundary marker.

Definition at line 93 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::ReadHeaders().

◆ mMeshIsHexahedral

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mMeshIsHexahedral
private

Whether the mesh is hexahedral (determined by a magic number in the element file header)

Definition at line 110 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::ReadHeaders().

◆ mNclFile

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::ifstream TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNclFile
private

The node connectivity list file for the mesh.

Definition at line 66 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::CloseFiles(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::OpenNclFile().

◆ mNclFileAvailable

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNclFileAvailable
private

◆ mNclFileDataStart

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::streampos TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNclFileDataStart
private

The start of the binary data

Definition at line 75 of file TrianglesMeshReader.hpp.

◆ mNclItemsRead

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNclItemsRead
private

Number of NCL element items read in

Definition at line 88 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset().

◆ mNclItemWidth

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::streamoff TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNclItemWidth
private

The number of bytes in a line of the node file

Definition at line 76 of file TrianglesMeshReader.hpp.

◆ mNodeAttributes

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector<double> TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodeAttributes
private

Will contain the nodal attributes at each node. Cleared and re-filled at each node

Definition at line 92 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextNode(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNodeAttributes().

◆ mNodeFileDataStart

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::streampos TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodeFileDataStart
private

The start of the binary data

Definition at line 69 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::ReadHeaders().

◆ mNodeFileReadBuffer

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
char* TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodeFileReadBuffer
private

◆ mNodeItemWidth

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::streamoff TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodeItemWidth
private

The number of bytes in a line of the node file

Definition at line 70 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::ReadHeaders().

◆ mNodePermutationDefined

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodePermutationDefined
private

◆ mNodesFile

◆ mNodesPerBoundaryElement

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNodesPerBoundaryElement
private

◆ mNodesPerElement

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

◆ mNodesRead

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

Number of nodes read in (or the index of the last one read in + 1).

Definition at line 83 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextNode(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset().

◆ mNumCableElementAttributes

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

Is the number of attributes stored for each cable element.

Definition at line 97 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumCableElementAttributes().

◆ mNumCableElements

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

◆ mNumElementAttributes

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

◆ mNumElementNodes

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mNumElementNodes
private

Is the number of nodes per element.

Definition at line 94 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::ReadHeaders().

◆ mNumElements

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

◆ mNumFaceAttributes

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

◆ mNumFaces

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

◆ mNumNodeAttributes

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

Is the number of attributes stored at each node.

Definition at line 91 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextNode(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::ReadHeaders().

◆ mNumNodes

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

◆ mOneDimBoundary

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector<unsigned> TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mOneDimBoundary
private

◆ mOrderOfBoundaryElements

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mOrderOfBoundaryElements
private

◆ mOrderOfElements

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

◆ mPermutationVector

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector<unsigned> TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mPermutationVector
private

◆ mReadContainingElementOfBoundaryElement

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mReadContainingElementOfBoundaryElement
private

Whether to read containing element info for each boundary element (obtaining by doing tetgen with the -nn flag)

Definition at line 108 of file TrianglesMeshReader.hpp.

Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextFaceData(), TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetReadContainingElementOfBoundaryElement(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::TrianglesMeshReader().


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