Chaste
Release::2017.1
|
#include <MixedDimensionMesh.hpp>
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 Types inherited from DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > | |
typedef std::vector< Node< SPACE_DIM > * >::const_iterator | HaloNodeIterator |
Public Types inherited from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > | |
typedef std::vector< BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > * >::const_iterator | BoundaryElementIterator |
Public Types inherited from AbstractMesh< ELEMENT_DIM, SPACE_DIM > | |
typedef std::vector< Node< SPACE_DIM > * >::const_iterator | BoundaryNodeIterator |
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, unsigned > | mCableElementsMapping |
std::multimap< const Node< SPACE_DIM > *, Element< 1u, SPACE_DIM > * > | mNodeToCablesMapping |
Friends | |
class | boost::serialization::access |
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.
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.
typedef std::pair<NodeCableIterator, NodeCableIterator> MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::CableRangeAtNode |
The type returned by GetCablesAtNode.
Definition at line 112 of file MixedDimensionMesh.hpp.
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.
MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::MixedDimensionMesh | ( | DistributedTetrahedralMeshPartitionType::type | partitioningMethod = DistributedTetrahedralMeshPartitionType::METIS_LIBRARY | ) |
Constructor.
partitioningMethod | defaults 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.
MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::~MixedDimensionMesh | ( | ) |
Destructor - cleans up the cables
Definition at line 46 of file MixedDimensionMesh.cpp.
References MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mCableElements.
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).
globalElementIndex | is the global index of the cable element |
Definition at line 170 of file MixedDimensionMesh.cpp.
References MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetCableElement(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistributedVectorFactory().
|
virtual |
Construct the mesh using a MeshReader.
rMeshReader | the mesh reader |
Reimplemented from DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 55 of file MixedDimensionMesh.cpp.
References ElementData::AttributeValue, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextCableElementData(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeOrHaloNode(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumCableElementAttributes(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumCableElements(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mCableElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodePermutation, MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mNodeToCablesMapping, MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mNumCableElements, NEVER_REACHED, ElementData::NodeIndices, MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::RegisterCableElement(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::SetAttribute(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveNodeMapping().
Element< 1u, SPACE_DIM > * MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetCableElement | ( | unsigned | globalElementIndex | ) | const |
Get the cable element with a given index in the mesh.
globalElementIndex | the global index of the cable element |
Definition at line 155 of file MixedDimensionMesh.cpp.
References EXCEPTION, PetscTools::GetMyRank(), MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mCableElements, and MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mCableElementsMapping.
Referenced by MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::CalculateDesignatedOwnershipOfCableElement().
MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::CableElementIterator MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetCableElementIteratorBegin | ( | ) | const |
Definition at line 203 of file MixedDimensionMesh.cpp.
References MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mCableElements.
Referenced by MonodomainPurkinjeCableAssembler< ELEMENT_DIM, SPACE_DIM >::MonodomainPurkinjeCableAssembler().
MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::CableElementIterator MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetCableElementIteratorEnd | ( | ) | const |
Definition at line 209 of file MixedDimensionMesh.cpp.
References EXPORT_TEMPLATE_CLASS_ALL_DIMS, and MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mCableElements.
Referenced by MonodomainPurkinjeCableAssembler< ELEMENT_DIM, SPACE_DIM >::MonodomainPurkinjeCableAssembler().
MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::CableRangeAtNode MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetCablesAtNode | ( | const Node< SPACE_DIM > * | pNode | ) |
pNode | a node to find the adjoining cables of |
Definition at line 196 of file MixedDimensionMesh.cpp.
References MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mNodeToCablesMapping.
|
virtual |
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 143 of file MixedDimensionMesh.cpp.
References MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mNumCableElements.
unsigned MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetNumLocalCableElements | ( | ) | const |
Definition at line 149 of file MixedDimensionMesh.cpp.
References MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mCableElements.
void MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::RegisterCableElement | ( | unsigned | index | ) |
Add the most recently constructed cable element to the global->local cable element mapping
index | is the global index of cable element to be registered |
Definition at line 137 of file MixedDimensionMesh.cpp.
References MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mCableElements, and MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::mCableElementsMapping.
Referenced by MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader().
|
inlineprivate |
Serialize the mesh.
archive | the archive |
version | the current version of this class |
Definition at line 144 of file MixedDimensionMesh.hpp.
|
friend |
Needed for serialization.
Definition at line 136 of file MixedDimensionMesh.hpp.
|
private |
The elements making up the 1D cables
Definition at line 124 of file MixedDimensionMesh.hpp.
Referenced by MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetCableElement(), MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetCableElementIteratorBegin(), MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetCableElementIteratorEnd(), MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetNumLocalCableElements(), MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::RegisterCableElement(), and MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::~MixedDimensionMesh().
|
private |
A map from global cable index to local index used by this process.
Definition at line 130 of file MixedDimensionMesh.hpp.
Referenced by MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetCableElement(), and MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::RegisterCableElement().
|
private |
Records which cables are attached to each node.
Definition at line 133 of file MixedDimensionMesh.hpp.
Referenced by MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), and MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetCablesAtNode().
|
private |
The global number of cables over all processes
Definition at line 127 of file MixedDimensionMesh.hpp.
Referenced by MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), and MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::GetNumCableElements().