36 #include "AbstractMeshReader.hpp" 43 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
51 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
57 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
65 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
70 std::vector<double> empty;
74 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
77 return GetNextFaceData();
80 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
83 EXCEPTION(
"Random access is only implemented in mesh readers for binary mesh files.");
86 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
89 EXCEPTION(
"Random access is only implemented in mesh readers for binary mesh files.");
92 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
95 EXCEPTION(
"Random access is only implemented in mesh readers for binary mesh files.");
98 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
101 return GetFaceData(index);
104 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
107 EXCEPTION(
"Ncl files are only implemented in mesh readers for binary mesh files.");
110 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
116 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
122 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
128 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
134 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
140 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
146 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
152 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
155 EXCEPTION(
"Node permutations aren't supported by this reader");
160 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
166 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
172 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
175 EXCEPTION(
"Cable elements are not supported by this mesh format.");
181 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
185 return ElementIterator(0u,
this);
188 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
192 return ElementIterator(rIndices,
this);
195 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
199 return ElementIterator(GetNumElements(),
this);
202 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
205 : mpIndices(&rIndices),
220 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
236 next_index =
mpReader->GetNumElements();
247 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
251 assert(mIndex < index || mIndex == 0u || index == mpReader->
GetNumElements());
277 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
281 return NodeIterator(0u,
this);
284 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
288 return NodeIterator(rIndices,
this);
291 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
298 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
316 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
332 next_index =
mpReader->GetNumNodes();
343 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
347 assert(mIndex < index || mIndex == 0u || index == mpReader->
GetNumNodes());
ElementIterator GetElementIteratorBegin()
std::set< unsigned >::const_iterator mIndicesIterator
virtual unsigned GetNumFaceAttributes() const
std::set< unsigned >::const_iterator mIndicesIterator
virtual ElementData GetElementData(unsigned index)
virtual ElementData GetFaceData(unsigned index)
NodeIterator(unsigned index, AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > *pReader)
NodeIterator GetNodeIteratorEnd()
NodeIterator GetNodeIteratorBegin()
#define EXCEPTION(message)
virtual unsigned GetOrderOfElements()
AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > * mpReader
const std::set< unsigned > * mpIndices
ElementIterator(unsigned index, AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > *pReader)
virtual bool HasNodePermutation()
unsigned GetNumEdges() const
ElementIterator GetElementIteratorEnd()
virtual ElementData GetNextCableElementData()
virtual std::vector< double > GetNode(unsigned index)
virtual unsigned GetNumElements() const =0
ElementData GetEdgeData(unsigned index)
virtual unsigned GetNumCableElementAttributes() const
ElementData GetNextEdgeData()
AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > * mpReader
virtual bool HasNclFile()
virtual unsigned GetNumCableElements() const
virtual bool GetReadContainingElementOfBoundaryElement()
virtual unsigned GetNumElementAttributes() const
virtual bool IsFileFormatBinary()
virtual unsigned GetOrderOfBoundaryElements()
void CacheData(unsigned index, bool firstRead=false)
virtual std::vector< unsigned > GetContainingElementIndices(unsigned index)
ElementData mLastDataRead
virtual std::string GetMeshFileBaseName()
void CacheData(unsigned index, bool firstRead=false)
const std::set< unsigned > * mpIndices
virtual unsigned GetNumNodes() const =0
virtual std::vector< double > GetNodeAttributes()
virtual const std::vector< unsigned > & rGetNodePermutation()
std::vector< double > mLastDataRead