Chaste Release::3.1
|
#include <CmguiMeshWriter.hpp>
Public Member Functions | |
CmguiMeshWriter (const std::string &rDirectory, const std::string &rBaseName, bool cleanDirectory=true) | |
void | WriteFiles () |
void | SetAdditionalFieldNames (std::vector< std::string > &rFieldNames) |
void | SetRegionNames (std::vector< std::string > &rRegionNames) |
virtual | ~CmguiMeshWriter () |
Protected Member Functions | |
std::ios_base::openmode | GetOpenMode (bool append) |
out_stream | OpenNodeFile (bool append=false) |
std::vector< boost::shared_ptr < std::ofstream > > | OpenElementFiles (bool append=false) |
void | WriteNodeFileHeader (out_stream &rpNodeFile) |
void | WriteElementsFileHeader (std::vector< boost::shared_ptr< std::ofstream > > &rElemFiles) |
void | CreateFilesWithHeaders () |
void | AppendLocalDataToFiles () |
void | WriteFilesFooter () |
Protected Attributes | |
std::vector< std::string > | mAdditionalFieldNames |
std::vector< std::string > | mRegionNames |
std::string | mGroupName |
std::string | mElementFileHeader |
std::string | mCoordinatesFileHeader |
std::string | mAdditionalFieldHeader |
unsigned | mNumNodesPerElement |
std::vector< unsigned > | mReordering |
Writes a mesh in Cmgui (the visualisation frontend of CMISS) format. Creates an exnode file and a exelem file. Note that the lines and faces are not written in the exelem file, so to load the data in Cmgui, you must use 'generate_faces_and_lines', i.e.
gfx read node base_file gfx read elem base_file generate_faces_and_lines gfx cr win
Definition at line 517 of file CmguiMeshWriter.hpp.
CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CmguiMeshWriter | ( | const std::string & | rDirectory, |
const std::string & | rBaseName, | ||
bool | cleanDirectory = true |
||
) |
Constructor.
rDirectory | the directory in which to write the mesh to file |
rBaseName | the base name of the files in which to write the mesh data |
cleanDirectory | whether to clean the directory (defaults to true) |
Definition at line 48 of file CmguiMeshWriter.cpp.
References CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mAdditionalFieldHeader, AbstractMeshWriter< ELEMENT_DIM, SPACE_DIM >::mBaseName, CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mCoordinatesFileHeader, CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mElementFileHeader, CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mGroupName, AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mIndexFromZero, CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mNumNodesPerElement, CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mReordering, and NEVER_REACHED.
virtual CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::~CmguiMeshWriter | ( | ) | [inline, virtual] |
Destructor.
Definition at line 658 of file CmguiMeshWriter.hpp.
void CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::AppendLocalDataToFiles | ( | ) | [protected, virtual] |
Append local mesh data to output files.
Reimplemented from AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >.
Definition at line 301 of file CmguiMeshWriter.cpp.
void CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CreateFilesWithHeaders | ( | ) | [protected, virtual] |
Create output files and add headers.
Reimplemented from AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >.
Definition at line 279 of file CmguiMeshWriter.cpp.
std::ios_base::openmode CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::GetOpenMode | ( | bool | append | ) | [protected] |
Get the mode to use when opening files.
append | whether to append to the file, or overwrite it |
Definition at line 360 of file CmguiMeshWriter.cpp.
std::vector< boost::shared_ptr< std::ofstream > > CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::OpenElementFiles | ( | bool | append = false | ) | [protected] |
Helper method that open all the elements files (one per region in this case)
append | whether to clear (append=false) or to append (append=true). False by default. It applies to all files. |
Definition at line 170 of file CmguiMeshWriter.cpp.
References EXCEPTION.
out_stream CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::OpenNodeFile | ( | bool | append = false | ) | [protected] |
Open the file node information is written to.
append | whether to clear (append=false) or to append (append=true). False by default. |
Definition at line 163 of file CmguiMeshWriter.cpp.
void CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::SetAdditionalFieldNames | ( | std::vector< std::string > & | rFieldNames | ) |
Set any additional field that we want cmgui to visualize (interpolated over) elements and surfaces
rFieldNames | is a reference to a vector of string containing the names of each additional field name |
Definition at line 151 of file CmguiMeshWriter.cpp.
Referenced by Hdf5ToCmguiConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToCmguiConverter().
void CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::SetRegionNames | ( | std::vector< std::string > & | rRegionNames | ) |
Set the region names to be used when generating multiple element files
rRegionNames | is a reference to a vector of string containing the names of each region defined in the mesh |
Definition at line 157 of file CmguiMeshWriter.cpp.
Referenced by Hdf5ToCmguiConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToCmguiConverter().
void CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteElementsFileHeader | ( | std::vector< boost::shared_ptr< std::ofstream > > & | rElemFiles | ) | [protected] |
Write the headers of each element file (as many as number of regions defined).
rElemFiles | vector of pointers to file streams |
Definition at line 239 of file CmguiMeshWriter.cpp.
References ChasteBuildInfo::GetProvenanceString().
void CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFiles | ( | ) | [virtual] |
Write mesh data to files.
Implements AbstractMeshWriter< ELEMENT_DIM, SPACE_DIM >.
Definition at line 95 of file CmguiMeshWriter.cpp.
References ElementData::AttributeValue, and ElementData::NodeIndices.
void CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesFooter | ( | ) | [protected, virtual] |
Append footers to output files.
Reimplemented from AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >.
Definition at line 354 of file CmguiMeshWriter.cpp.
void CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNodeFileHeader | ( | out_stream & | rpNodeFile | ) | [protected] |
Write the header part of a node file, depending on the dimension. Short helper method, also called in CmguiDeformedSolutionsWriter. (Note, without the & below this method seg faults).
rpNodeFile | reference to the out_stream used for the node file |
Definition at line 206 of file CmguiMeshWriter.cpp.
References ChasteBuildInfo::GetProvenanceString(), and NEVER_REACHED.
std::string CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mAdditionalFieldHeader [protected] |
String which is set to either CmguiAdditionalFieldHeader2D or CmguiAdditionalFieldHeader2DQuadratic as appropriate
Definition at line 558 of file CmguiMeshWriter.hpp.
Referenced by CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CmguiMeshWriter().
std::vector<std::string> CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mAdditionalFieldNames [protected] |
For storage of names of additional fields.
Definition at line 524 of file CmguiMeshWriter.hpp.
std::string CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mCoordinatesFileHeader [protected] |
String which is set to either CmguiCoordinatesFileHeader2D or CmguiCoordinatesFileHeader2DQuadratic as appropriate
Definition at line 552 of file CmguiMeshWriter.hpp.
Referenced by CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CmguiMeshWriter().
std::string CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mElementFileHeader [protected] |
String which is set to either CmguiElementFileHeader2D or CmguiElementFileHeader2DQuadratic as appropriate
Definition at line 545 of file CmguiMeshWriter.hpp.
Referenced by CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CmguiMeshWriter().
std::string CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mGroupName [protected] |
The group name to give in the output files. Defaults to the same as the base name. The CmguiDeformedSolutionsWriter prepends a counter to the base name (eg "solution_8.exnodes" instead of just "solution.exnodes"), but we would like the group name to stay as "solution", hence this separate variable
Definition at line 539 of file CmguiMeshWriter.hpp.
Referenced by CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CmguiMeshWriter().
unsigned CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mNumNodesPerElement [protected] |
Number of nodes per element, eg, in 2D, 3 for linear visualisation and 6 for quadratic visualisation
Definition at line 564 of file CmguiMeshWriter.hpp.
Referenced by CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CmguiMeshWriter().
std::vector<std::string> CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mRegionNames [protected] |
Stored the names of different regions that we want Cmgui to be able to visualize separately. There will be one .exelem file per region.
Definition at line 531 of file CmguiMeshWriter.hpp.
std::vector<unsigned> CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mReordering [protected] |
Ordering of the elements nodes, from Chaste convention to CMGUI convention
Definition at line 569 of file CmguiMeshWriter.hpp.
Referenced by CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CmguiMeshWriter().