Chaste Commit::1fd4e48e3990e67db148bc1bc4cf6991a0049d0c
|
#include <TrianglesMeshReader.hpp>
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) |
Friends | |
class | TestTrianglesMeshReader |
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.
TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::TrianglesMeshReader | ( | std::string | pathBaseName, |
unsigned | orderOfElements = 1 , |
||
unsigned | orderOfBoundaryElements = 1 , |
||
bool | readContainingElementsForBoundaryElements = false |
||
) |
Constructor.
pathBaseName | the base name of the files from which to read the mesh data (either absolute, or relative to the current directory) |
orderOfElements | the order of each element: 1 for linear, 2 for quadratic (defaults to 1) |
orderOfBoundaryElements | the 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) |
readContainingElementsForBoundaryElements | Whether 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< ELEMENT_DIM, SPACE_DIM >::~TrianglesMeshReader | ( | ) |
Destructor
Definition at line 120 of file TrianglesMeshReader.cpp.
|
private |
Close mesh files.
Definition at line 831 of file TrianglesMeshReader.cpp.
|
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
rNodeIndices | The nodes we have read in. |
Definition at line 978 of file TrianglesMeshReader.cpp.
|
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).
index | The global node index |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 430 of file TrianglesMeshReader.cpp.
References EXCEPTION.
|
virtual |
Normally throws an exception. Only implemented for tetrahedral mesh reader of binary files.
index | The global element index |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 368 of file TrianglesMeshReader.cpp.
References EXCEPTION.
|
virtual |
Normally throws an exception. Only implemented for tetrahedral mesh reader of binary files.
index | The global face index |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 397 of file TrianglesMeshReader.cpp.
References EXCEPTION.
|
privatevirtual |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 927 of file TrianglesMeshReader.cpp.
|
virtual |
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::AttributeValue, and ElementData::NodeIndices.
|
virtual |
only one element attribute registered for the moment
Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 199 of file TrianglesMeshReader.cpp.
References ElementData::AttributeValue, and ElementData::NodeIndices.
|
virtual |
Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 265 of file TrianglesMeshReader.cpp.
References ElementData::AttributeValue, ElementData::ContainingElement, and ElementData::NodeIndices.
|
private |
Returns the Item details (via arguments) from the next line via a call to GetNextLineFromStream()
rFileStream | The file to read from |
expectedItemNumber | To check file syntax, what item is expected to be on the next line. |
rDataPacket | Assumed to be of the right size but is allowed to contain dirty data on entry (returned). |
rNumAttributes | The number of attributes per item that we expect to read. Either mNumFaceAttributes or mNumElementAttributes. |
rAttributes | Will be filled with the attribute values if rNumAttributes > 0, otherwise empty. Note that floating point attributes are now standard (returned) |
Definition at line 864 of file TrianglesMeshReader.cpp.
References EXCEPTION.
|
private |
Read in the next line.
rFileStream | The file to read from |
rRawLine | Will be filled in with the next line |
Definition at line 841 of file TrianglesMeshReader.cpp.
References EXCEPTION.
|
virtual |
Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 187 of file TrianglesMeshReader.cpp.
|
virtual |
Normally throws an exception. Only implemented for tetrahedral mesh reader of binary files.
index | The global node index |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 333 of file TrianglesMeshReader.cpp.
References EXCEPTION.
|
virtual |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 587 of file TrianglesMeshReader.cpp.
|
virtual |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 164 of file TrianglesMeshReader.cpp.
|
virtual |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 146 of file TrianglesMeshReader.cpp.
|
virtual |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 152 of file TrianglesMeshReader.cpp.
|
virtual |
Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 128 of file TrianglesMeshReader.cpp.
|
virtual |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 158 of file TrianglesMeshReader.cpp.
|
virtual |
Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 140 of file TrianglesMeshReader.cpp.
|
virtual |
Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 134 of file TrianglesMeshReader.cpp.
|
private |
Get method specialized to 1D meshes
Definition at line 933 of file TrianglesMeshReader.cpp.
|
inlinevirtual |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 199 of file TrianglesMeshReader.hpp.
References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mOrderOfBoundaryElements.
|
inlinevirtual |
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().
|
inlinevirtual |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 207 of file TrianglesMeshReader.hpp.
References TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::mReadContainingElementOfBoundaryElement.
|
virtual |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 996 of file TrianglesMeshReader.cpp.
|
virtual |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1032 of file TrianglesMeshReader.cpp.
|
virtual |
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.
|
private |
Open the cable elements definition file, if it exists.
Definition at line 575 of file TrianglesMeshReader.cpp.
|
private |
|
private |
|
private |
Open mesh files.
Definition at line 486 of file TrianglesMeshReader.cpp.
Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::TrianglesMeshReader().
|
private |
Open node connectivity list file.
Definition at line 566 of file TrianglesMeshReader.cpp.
|
private |
Open node file.
Definition at line 496 of file TrianglesMeshReader.cpp.
References EXCEPTION.
|
private |
Read the header from each mesh file.
Definition at line 593 of file TrianglesMeshReader.cpp.
References EXCEPTION.
Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::TrianglesMeshReader().
|
virtual |
Resets pointers to beginning
Implements AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 170 of file TrianglesMeshReader.cpp.
|
virtual |
Reimplemented from AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1041 of file TrianglesMeshReader.cpp.
void TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::SetNodePermutation | ( | std::vector< unsigned > & | rPermutationVector | ) |
Sets a node permutation to use when reading in node file.
rPermutationVector | Permutation vector |
Definition at line 1014 of file TrianglesMeshReader.cpp.
References EXCEPTION.
Referenced by AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::load().
void TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::SetReadBufferSize | ( | unsigned | bufferSize | ) |
Sets size of std:ifstream internal read buffer. Use it for tuning I/O.
bufferSize | The size of the read buffer in bytes. |
Definition at line 1002 of file TrianglesMeshReader.cpp.
Definition at line 55 of file TrianglesMeshReader.hpp.
|
private |
Number of boundary faces read in.
Definition at line 87 of file TrianglesMeshReader.hpp.
|
private |
The elements file for the mesh.
Definition at line 67 of file TrianglesMeshReader.hpp.
|
private |
Number of cable elements read in.
Definition at line 85 of file TrianglesMeshReader.hpp.
|
private |
The start of the binary element data
Definition at line 71 of file TrianglesMeshReader.hpp.
|
private |
Buffer for element file read with std::ifstream
Definition at line 114 of file TrianglesMeshReader.hpp.
|
private |
The number of bytes in a line of the element file
Definition at line 72 of file TrianglesMeshReader.hpp.
|
private |
The elements file for the mesh.
Definition at line 64 of file TrianglesMeshReader.hpp.
|
private |
Number of elements read in (or the index of the last one read in + 1).
Definition at line 84 of file TrianglesMeshReader.hpp.
|
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.
|
private |
The start of the binary face data
Definition at line 73 of file TrianglesMeshReader.hpp.
|
private |
Buffer for face file read with std::ifstream
Definition at line 115 of file TrianglesMeshReader.hpp.
|
private |
The number of bytes in a line of the face file
Definition at line 74 of file TrianglesMeshReader.hpp.
|
private |
The faces (edges) file for the mesh.
Definition at line 65 of file TrianglesMeshReader.hpp.
|
private |
Number of faces read in (or the index of the last one read in + 1).
Definition at line 86 of file TrianglesMeshReader.hpp.
|
private |
Whether to read all data as binary (determined by a magic number in the node file header)
Definition at line 109 of file TrianglesMeshReader.hpp.
|
private |
The base name for mesh files.
Definition at line 61 of file TrianglesMeshReader.hpp.
|
private |
True if input data is numbered from zero, false otherwise
Definition at line 59 of file TrianglesMeshReader.hpp.
Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::TrianglesMeshReader().
|
private |
Permutation inverse, stored for performance reasons.
Definition at line 119 of file TrianglesMeshReader.hpp.
|
private |
The maximum number of elements that any node is contained in.
Definition at line 104 of file TrianglesMeshReader.hpp.
|
private |
Is the maximum node boundary marker.
Definition at line 93 of file TrianglesMeshReader.hpp.
|
private |
Whether the mesh is hexahedral (determined by a magic number in the element file header)
Definition at line 110 of file TrianglesMeshReader.hpp.
|
private |
The node connectivity list file for the mesh.
Definition at line 66 of file TrianglesMeshReader.hpp.
|
private |
Whether a ncl file exists
Definition at line 111 of file TrianglesMeshReader.hpp.
|
private |
The start of the binary data
Definition at line 75 of file TrianglesMeshReader.hpp.
|
private |
Number of NCL element items read in
Definition at line 88 of file TrianglesMeshReader.hpp.
|
private |
The number of bytes in a line of the node file
Definition at line 76 of file TrianglesMeshReader.hpp.
|
private |
Will contain the nodal attributes at each node. Cleared and re-filled at each node
Definition at line 92 of file TrianglesMeshReader.hpp.
|
private |
The start of the binary data
Definition at line 69 of file TrianglesMeshReader.hpp.
|
private |
Buffer for node file read with std::ifstream
Definition at line 113 of file TrianglesMeshReader.hpp.
|
private |
The number of bytes in a line of the node file
Definition at line 70 of file TrianglesMeshReader.hpp.
|
private |
Whether to consider a user-defined node permutation when reading a mesh from file.
Definition at line 117 of file TrianglesMeshReader.hpp.
|
private |
The nodes file for the mesh.
Definition at line 63 of file TrianglesMeshReader.hpp.
|
private |
The number of nodes in each boundary element.
Definition at line 102 of file TrianglesMeshReader.hpp.
Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::TrianglesMeshReader().
|
private |
The number of nodes contained in each element.
Definition at line 101 of file TrianglesMeshReader.hpp.
Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::TrianglesMeshReader().
|
private |
Number of nodes read in (or the index of the last one read in + 1).
Definition at line 83 of file TrianglesMeshReader.hpp.
|
private |
Is the number of attributes stored for each cable element.
Definition at line 97 of file TrianglesMeshReader.hpp.
|
private |
Number of cable elements in the mesh.
Definition at line 81 of file TrianglesMeshReader.hpp.
|
private |
Is the number of attributes stored for each element.
Definition at line 95 of file TrianglesMeshReader.hpp.
|
private |
Is the number of nodes per element.
Definition at line 94 of file TrianglesMeshReader.hpp.
|
private |
Number of elements in the mesh.
Definition at line 79 of file TrianglesMeshReader.hpp.
|
private |
Is the number of attributes stored for each face.
Definition at line 96 of file TrianglesMeshReader.hpp.
|
private |
Number of faces in the mesh.
Definition at line 80 of file TrianglesMeshReader.hpp.
|
private |
Is the number of attributes stored at each node.
Definition at line 91 of file TrianglesMeshReader.hpp.
|
private |
Number of nodes in the mesh.
Definition at line 78 of file TrianglesMeshReader.hpp.
|
private |
Indices of nodes which are at the boundary of a 1D mesh
Definition at line 89 of file TrianglesMeshReader.hpp.
|
private |
The order of each element (1 for linear, 2 for quadratic).
Definition at line 100 of file TrianglesMeshReader.hpp.
Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::TrianglesMeshReader(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetOrderOfBoundaryElements().
|
private |
The order of each element (1 for linear, 2 for quadratic).
Definition at line 99 of file TrianglesMeshReader.hpp.
Referenced by TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::TrianglesMeshReader(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetOrderOfElements().
|
private |
Permutation to be considered, i-th entry of the vector contains new index for original node i.
Definition at line 118 of file TrianglesMeshReader.hpp.
|
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 >::TrianglesMeshReader(), and TrianglesMeshReader< ELEMENT_DIM, SPACE_DIM >::GetReadContainingElementOfBoundaryElement().