Chaste  Release::2017.1
CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <CmguiMeshWriter.hpp>

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

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 ()
 
- Public Member Functions inherited from AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >
 AbstractTetrahedralMeshWriter (const std::string &rDirectory, const std::string &rBaseName, const bool clearOutputDir=true)
 
virtual ~AbstractTetrahedralMeshWriter ()
 
virtual void WriteFilesUsingMesh (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, bool keepOriginalElementIndexing=true)
 
void WriteFilesUsingMeshReaderAndMesh (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &rMesh)
 
std::vector< doubleGetNextNode ()
 
ElementData GetNextElement ()
 
ElementData GetNextBoundaryElement ()
 
ElementData GetNextCableElement ()
 
- Public Member Functions inherited from AbstractMeshWriter< ELEMENT_DIM, SPACE_DIM >
 AbstractMeshWriter (const std::string &rDirectory, const std::string &rBaseName, const bool clearOutputDir=true)
 
virtual ~AbstractMeshWriter ()
 
std::string GetOutputDirectory ()
 
virtual unsigned GetNumNodes ()
 
unsigned GetNumElements ()
 
unsigned GetNumBoundaryFaces ()
 
unsigned GetNumCableElements ()
 
void WriteFilesUsingMeshReader (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader)
 

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< unsignedmReordering
 
- Protected Attributes inherited from AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >
unsigned mNodesPerElement
 
unsigned mNodesPerBoundaryElement
 
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * mpMesh
 
DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * mpDistributedMesh
 
MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM > * mpMixedMesh
 
MeshWriterIterators< ELEMENT_DIM, SPACE_DIM > * mpIters
 
bool mIndexFromZero
 
bool mWriteMetaFile
 
unsigned mNodeCounterForParallelMesh
 
unsigned mElementCounterForParallelMesh
 
unsigned mBoundaryElementCounterForParallelMesh
 
unsigned mCableElementCounterForParallelMesh
 
bool mFilesAreBinary
 
- Protected Attributes inherited from AbstractMeshWriter< ELEMENT_DIM, SPACE_DIM >
OutputFileHandlermpOutputFileHandler
 
std::string mBaseName
 
AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > * mpMeshReader
 
unsigned mNumNodes
 
unsigned mNumElements
 
unsigned mNumBoundaryElements
 
unsigned mNumCableElements
 

Detailed Description

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

CmguiMeshWriter

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 515 of file CmguiMeshWriter.hpp.

Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CmguiMeshWriter ( const std::string &  rDirectory,
const std::string &  rBaseName,
bool  cleanDirectory = true 
)
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
virtual CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::~CmguiMeshWriter ( )
inlinevirtual

Destructor.

Definition at line 658 of file CmguiMeshWriter.hpp.

Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CreateFilesWithHeaders ( )
protectedvirtual
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::ios_base::openmode CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::GetOpenMode ( bool  append)
protected
Returns
the mode to use when opening files.
Parameters
appendwhether to append to the file, or overwrite it

Definition at line 361 of file CmguiMeshWriter.cpp.

Referenced by CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::OpenElementFiles(), and CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::OpenNodeFile().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector< boost::shared_ptr< std::ofstream > > CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::OpenElementFiles ( bool  append = false)
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
out_stream CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::OpenNodeFile ( bool  append = false)
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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

Parameters
rFieldNamesis a reference to a vector of string containing the names of each additional field name

Definition at line 151 of file CmguiMeshWriter.cpp.

References CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mAdditionalFieldNames.

Referenced by Hdf5ToCmguiConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToCmguiConverter().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::SetRegionNames ( std::vector< std::string > &  rRegionNames)

Set the region names to be used when generating multiple element files

Parameters
rRegionNamesis 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.

References CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mRegionNames.

Referenced by Hdf5ToCmguiConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToCmguiConverter().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteElementsFileHeader ( std::vector< boost::shared_ptr< std::ofstream > > &  rElemFiles)
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesFooter ( )
protectedvirtual

Append footers to output files.

Reimplemented from AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >.

Definition at line 355 of file CmguiMeshWriter.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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).

Parameters
rpNodeFilereference to the out_stream used for the node file

Definition at line 206 of file CmguiMeshWriter.cpp.

References ChasteBuildInfo::GetProvenanceString(), CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mGroupName, and NEVER_REACHED.

Referenced by CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CreateFilesWithHeaders(), and CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFiles().

Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::string CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mAdditionalFieldHeader
protected

String which is set to either CmguiAdditionalFieldHeader2D or CmguiAdditionalFieldHeader2DQuadratic as appropriate

Definition at line 556 of file CmguiMeshWriter.hpp.

Referenced by CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CmguiMeshWriter(), and CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteElementsFileHeader().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector<std::string> CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mAdditionalFieldNames
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::string CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mCoordinatesFileHeader
protected

String which is set to either CmguiCoordinatesFileHeader2D or CmguiCoordinatesFileHeader2DQuadratic as appropriate

Definition at line 550 of file CmguiMeshWriter.hpp.

Referenced by CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CmguiMeshWriter(), and CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteElementsFileHeader().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::string CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mElementFileHeader
protected

String which is set to either CmguiElementFileHeader2D or CmguiElementFileHeader2DQuadratic as appropriate

Definition at line 543 of file CmguiMeshWriter.hpp.

Referenced by CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CmguiMeshWriter(), and CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteElementsFileHeader().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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 537 of file CmguiMeshWriter.hpp.

Referenced by CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CmguiMeshWriter(), CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteElementsFileHeader(), and CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNodeFileHeader().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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 562 of file CmguiMeshWriter.hpp.

Referenced by CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CmguiMeshWriter(), and CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFiles().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector<std::string> CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mRegionNames
protected
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector<unsigned> CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::mReordering
protected

Ordering of the elements nodes, from Chaste convention to CMGUI convention

Definition at line 567 of file CmguiMeshWriter.hpp.

Referenced by CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::CmguiMeshWriter(), and CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFiles().


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