Chaste Release::3.1
AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <AbstractTetrahedralMeshWriter.hpp>

Inheritance diagram for AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >:
Collaboration diagram for AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >:

List of all members.

Public Member Functions

 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 ()

Protected Attributes

unsigned mNodesPerElement
unsigned mNodesPerBoundaryElement
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

Private Member Functions

virtual void WriteFilesUsingParallelMesh (bool keepOriginalElementIndexing=true)
void WriteNclFile (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, bool invertMeshPermutation=false)
virtual void CreateFilesWithHeaders ()
virtual void AppendLocalDataToFiles ()
virtual void WriteFilesFooter ()

Private Attributes

AbstractTetrahedralMesh
< ELEMENT_DIM, SPACE_DIM > * 
mpMesh
NodeMapmpNodeMap

Detailed Description

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

An abstract tetrahedral mesh writer class.

Definition at line 65 of file AbstractTetrahedralMeshWriter.hpp.


Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::AbstractTetrahedralMeshWriter ( const std::string &  rDirectory,
const std::string &  rBaseName,
const bool  clearOutputDir = true 
)

Constructor.

Parameters:
rDirectorythe directory in which to write the mesh to file
rBaseNamethe base name of the files in which to write the mesh data
clearOutputDirwhether to clean the directory (defaults to true)

Definition at line 70 of file AbstractTetrahedralMeshWriter.cpp.

References AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mpIters.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::~AbstractTetrahedralMeshWriter ( ) [virtual]

Destructor just deletes the node map if memory has been allocated for it

Definition at line 93 of file AbstractTetrahedralMeshWriter.cpp.


Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::AppendLocalDataToFiles ( ) [private, virtual]

Append local mesh data to output files.

Reimplemented in CmguiMeshWriter< ELEMENT_DIM, SPACE_DIM >, MeshalyzerMeshWriter< ELEMENT_DIM, SPACE_DIM >, and CmguiMeshWriter< DIM, DIM >.

Definition at line 693 of file AbstractTetrahedralMeshWriter.cpp.

References NEVER_REACHED.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::CreateFilesWithHeaders ( ) [private, virtual]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
ElementData AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::GetNextBoundaryElement ( ) [virtual]
Returns:
the data (indices) of the next boundary element to be written to file

Reimplemented from AbstractMeshWriter< ELEMENT_DIM, SPACE_DIM >.

Definition at line 242 of file AbstractTetrahedralMeshWriter.cpp.

References PetscTools::AmMaster(), AbstractMeshWriter< ELEMENT_DIM, SPACE_DIM >::GetNextBoundaryElement(), and ElementData::NodeIndices.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector< double > AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::GetNextNode ( ) [virtual]
Returns:
the coordinates of the next node to be written to file

Reimplemented from AbstractMeshWriter< ELEMENT_DIM, SPACE_DIM >.

Definition at line 118 of file AbstractTetrahedralMeshWriter.cpp.

References PetscTools::AmMaster(), and AbstractMeshWriter< ELEMENT_DIM, SPACE_DIM >::GetNextNode().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesFooter ( ) [private, virtual]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh ( AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &  rMesh,
bool  keepOriginalElementIndexing = true 
) [virtual]

Write a const mesh to file. Used by the serialization methods and avoids iterators...

Parameters:
rMeshthe mesh
keepOriginalElementIndexingWhether to write the mesh with the same element ordering as in memory. Optimisations can be applied if this is not needed.
Todo:
#1322 Mesh should really be const!
Todo:
#1322 Mesh should be const

Todo:
#1322 This should be const too
Todo:
#1322, This should be const too

Reimplemented in VtkMeshWriter< ELEMENT_DIM, SPACE_DIM >.

Definition at line 475 of file AbstractTetrahedralMeshWriter.cpp.

References PetscTools::AmMaster(), PetscTools::Barrier(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), and NodeMap::SetNewIndex().

Referenced by Hdf5ToCmguiConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToCmguiConverter(), Hdf5ToMeshalyzerConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToMeshalyzerConverter(), CardiacElectroMechanicsProblem< DIM, ELEC_PROB_DIM >::Initialise(), CellBasedPdeHandler< DIM >::OpenResultsFiles(), AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::save(), and VtkMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMeshReaderAndMesh ( AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &  rMeshReader,
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &  rMesh 
)

Write a const mesh to file. Used by the serialization methods and avoids iterators. The master process will use the mesh reader to copy over most of the mesh files, converting them to binary format. However, the mesh is used to write a .ncl file which contains node connectivity information.

Parameters:
rMeshReadera reader of the original mesh files on disk
rMeshthe mesh object in memory

Definition at line 557 of file AbstractTetrahedralMeshWriter.cpp.

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingParallelMesh ( bool  keepOriginalElementIndexing = true) [private, virtual]

Write a parallel mesh to file. Used by the serialization methods.

Parameters:
keepOriginalElementIndexingWhether to write the mesh with the same element ordering as in memory. Optimisations can be applied if this is not needed.

Definition at line 566 of file AbstractTetrahedralMeshWriter.cpp.

References PetscTools::AmMaster(), PetscTools::AmTopMost(), PetscTools::Barrier(), PetscTools::BeginRoundRobin(), PetscTools::EndRoundRobin(), PetscTools::GetMyRank(), and PetscTools::GetNumProcs().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNclFile ( AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &  rMesh,
bool  invertMeshPermutation = false 
) [private]

Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mBoundaryElementCounterForParallelMesh [protected]

Used by master process for polling processes for the next boundary element

Definition at line 119 of file AbstractTetrahedralMeshWriter.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mCableElementCounterForParallelMesh [protected]

Used by master process for polling processes for the next cable element

Definition at line 120 of file AbstractTetrahedralMeshWriter.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mElementCounterForParallelMesh [protected]

Used by master process for polling processes for the next element

Definition at line 118 of file AbstractTetrahedralMeshWriter.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mFilesAreBinary [protected]

Whether all data is to be written as binary - used in derived class TrianglesMeshWriter

Definition at line 121 of file AbstractTetrahedralMeshWriter.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mIndexFromZero [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mNodeCounterForParallelMesh [protected]

Used by master process for polling processes for the next node

Definition at line 117 of file AbstractTetrahedralMeshWriter.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mNodesPerBoundaryElement [protected]

Same as (ELEMENT_DIM), except when writing a quadratic mesh!

Definition at line 109 of file AbstractTetrahedralMeshWriter.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mNodesPerElement [protected]

Same as (ELEMENT_DIM+1), except when writing a quadratic mesh!

Definition at line 108 of file AbstractTetrahedralMeshWriter.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
DistributedTetrahedralMesh<ELEMENT_DIM,SPACE_DIM>* AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mpDistributedMesh [protected]

Another pointer to the mesh, produced by dynamic cast

Definition at line 111 of file AbstractTetrahedralMeshWriter.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MeshWriterIterators<ELEMENT_DIM,SPACE_DIM>* AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mpIters [protected]

Handy iterators so that we know the next node/element to be written

Definition at line 113 of file AbstractTetrahedralMeshWriter.hpp.

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractTetrahedralMesh<ELEMENT_DIM,SPACE_DIM>* AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mpMesh [private]

Pointer to the mesh (if we are writing from a mesh)

Definition at line 102 of file AbstractTetrahedralMeshWriter.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MixedDimensionMesh<ELEMENT_DIM,SPACE_DIM>* AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mpMixedMesh [protected]

Another pointer to the mesh, produced by dynamic cast

Definition at line 112 of file AbstractTetrahedralMeshWriter.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
NodeMap* AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mpNodeMap [private]

Node map to be used when writing a mesh that has deleted nodes

Definition at line 104 of file AbstractTetrahedralMeshWriter.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::mWriteMetaFile [protected]

Whether to write a metafile (only used by MeshylazerMeshWriter)

Definition at line 116 of file AbstractTetrahedralMeshWriter.hpp.

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


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