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

#include <MixedDimensionMesh.hpp>

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

List of all members.

Public Types

typedef std::multimap< const
Node< SPACE_DIM > *, Element< 1u, SPACE_DIM > * >::iterator 
NodeCableIterator
typedef std::pair
< NodeCableIterator,
NodeCableIterator
CableRangeAtNode
typedef std::vector< Element
< 1, SPACE_DIM >
* >::const_iterator 
CableElementIterator

Public Member Functions

 MixedDimensionMesh (DistributedTetrahedralMeshPartitionType::type partitioningMethod=DistributedTetrahedralMeshPartitionType::METIS_LIBRARY)
 ~MixedDimensionMesh ()
void ConstructFromMeshReader (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader)
void RegisterCableElement (unsigned index)
unsigned GetNumCableElements () const
unsigned GetNumLocalCableElements () const
Element< 1u, SPACE_DIM > * GetCableElement (unsigned globalElementIndex) const
bool CalculateDesignatedOwnershipOfCableElement (unsigned globalElementIndex)
CableRangeAtNode GetCablesAtNode (const Node< SPACE_DIM > *pNode)
CableElementIterator GetCableElementIteratorBegin () const
CableElementIterator GetCableElementIteratorEnd () const

Private Member Functions

template<class Archive >
void serialize (Archive &archive, const unsigned int version)

Private Attributes

std::vector< Element< 1u, SPACE_DIM > * > mCableElements
unsigned mNumCableElements
std::map< unsigned, unsignedmCableElementsMapping
std::multimap< const Node
< SPACE_DIM > *, Element< 1u, SPACE_DIM > * > 
mNodeToCablesMapping

Friends

class boost::serialization::access

Detailed Description

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

A tetrahedral mesh that also supports embedded 1D cable elements.

Could be used for Purkinje or blood vessels, etc.

Definition at line 51 of file MixedDimensionMesh.hpp.


Member Typedef Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
typedef std::vector<Element<1, SPACE_DIM> *>::const_iterator MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::CableElementIterator

Definition of cable element Iterator type.

Definition at line 156 of file MixedDimensionMesh.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
typedef std::pair<NodeCableIterator, NodeCableIterator> MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::CableRangeAtNode

The type returned by GetCablesAtNode.

Definition at line 112 of file MixedDimensionMesh.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
typedef std::multimap<const Node<SPACE_DIM>*, Element<1u, SPACE_DIM>*>::iterator MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::NodeCableIterator

Iterator type over mNodeToCablesMapping.

Definition at line 109 of file MixedDimensionMesh.hpp.


Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::MixedDimensionMesh ( DistributedTetrahedralMeshPartitionType::type  partitioningMethod = DistributedTetrahedralMeshPartitionType::METIS_LIBRARY)

Constructor.

Parameters:
partitioningMethoddefaults to METIS_LIBRARY, but in 1-D is always overridden in this constructor to be the DUMB partition

Definition at line 40 of file MixedDimensionMesh.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::~MixedDimensionMesh ( )

Destructor - cleans up the cables

Definition at line 46 of file MixedDimensionMesh.cpp.


Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::CalculateDesignatedOwnershipOfCableElement ( unsigned  globalElementIndex)

Determine whether or not the current process owns node 0 of this cable element (tie breaker to determine which process writes to file for when two or more share ownership of a cable element).

Parameters:
globalElementIndexis the global index of the cable element

Definition at line 167 of file MixedDimensionMesh.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
Element< 1u, SPACE_DIM > * MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetCableElement ( unsigned  globalElementIndex) const

Get the cable element with a given index in the mesh.

Parameters:
globalElementIndexthe global index of the cable element
Returns:
a pointer to the cable element.

Definition at line 152 of file MixedDimensionMesh.cpp.

References EXCEPTION, and PetscTools::GetMyRank().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::CableElementIterator MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetCableElementIteratorBegin ( ) const

Return a pointer to the first boundary element in the mesh.

Definition at line 200 of file MixedDimensionMesh.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::CableElementIterator MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetCableElementIteratorEnd ( ) const

Return a pointer to *one past* the last boundary element in the mesh (for consistency with STL iterators).

Definition at line 206 of file MixedDimensionMesh.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::CableRangeAtNode MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetCablesAtNode ( const Node< SPACE_DIM > *  pNode)

Get the cables that are attached to the given node.

Parameters:
pNodea node to find the adjoining cables of
Returns:
the adjoining cables.

Definition at line 193 of file MixedDimensionMesh.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetNumCableElements ( ) const [virtual]

Get the number of cable elements.

Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.

Definition at line 141 of file MixedDimensionMesh.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetNumLocalCableElements ( ) const

Get the number of cable elements on this process.

Definition at line 146 of file MixedDimensionMesh.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::RegisterCableElement ( unsigned  index)

Add the most recently constructed cable element to the global->local cable element mapping

Parameters:
indexis the global index of cable element to be registered

Definition at line 135 of file MixedDimensionMesh.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
template<class Archive >
void MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::serialize ( Archive &  archive,
const unsigned int  version 
) [inline, private]

Serialize the mesh.

Parameters:
archivethe archive
versionthe current version of this class

Reimplemented from DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.

Definition at line 144 of file MixedDimensionMesh.hpp.


Friends And Related Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
friend class boost::serialization::access [friend]

Needed for serialization.

Reimplemented from DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.

Definition at line 136 of file MixedDimensionMesh.hpp.


Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector<Element<1u, SPACE_DIM>*> MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mCableElements [private]

The elements making up the 1D cables

Definition at line 124 of file MixedDimensionMesh.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::map<unsigned, unsigned> MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mCableElementsMapping [private]

A map from global cable index to local index used by this process.

Definition at line 130 of file MixedDimensionMesh.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::multimap<const Node<SPACE_DIM>*, Element<1u, SPACE_DIM>*> MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mNodeToCablesMapping [private]

Records which cables are attached to each node.

Definition at line 133 of file MixedDimensionMesh.hpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mNumCableElements [private]

The global number of cables over all processes

Definition at line 127 of file MixedDimensionMesh.hpp.


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