36 #include "MixedDimensionMesh.hpp" 39 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
45 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
54 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
65 for (
unsigned element_index=0; element_index <
mNumCableElements; element_index++)
71 for (
unsigned j=0; j<2; j++)
78 bool node_owned =
false;
79 for (
unsigned j=0; j<2; j++)
96 std::vector<Node<SPACE_DIM>*> nodes;
99 for (
unsigned j=0; j<2; j++)
119 for (
unsigned node_index=0; node_index<p_element->
GetNumNodes(); ++node_index)
122 p_element->
GetNode(node_index), p_element));
136 template <
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
142 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
148 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
154 template<
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
157 std::map<unsigned, unsigned>::const_iterator element_position =
mCableElementsMapping.find(globalElementIndex);
164 unsigned index = element_position->second;
169 template <
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
175 unsigned tie_break_index = this->
GetCableElement(elementIndex)->GetNodeGlobalIndex(0);
195 template <
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
202 template <
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
208 template <
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
virtual DistributedVectorFactory * GetDistributedVectorFactory()
CableElementIterator GetCableElementIteratorEnd() const
void SetAttribute(double attribute)
unsigned GetNumLocalCableElements() const
void RegisterCableElement(unsigned index)
std::pair< NodeCableIterator, NodeCableIterator > CableRangeAtNode
virtual unsigned GetNumCableElementAttributes() const
std::map< unsigned, unsigned > mCableElementsMapping
std::vector< unsigned > mNodePermutation
#define EXCEPTION(message)
virtual void ConstructFromMeshReader(AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader)
void ConstructFromMeshReader(AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader)
std::vector< unsigned > NodeIndices
Node< SPACE_DIM > * GetNode(unsigned localIndex) const
std::multimap< const Node< SPACE_DIM > *, Element< 1u, SPACE_DIM > * > mNodeToCablesMapping
virtual ElementData GetNextCableElementData()
CableElementIterator GetCableElementIteratorBegin() const
unsigned SolveNodeMapping(unsigned index) const
unsigned GetNumNodes() const
unsigned mNumCableElements
unsigned GetNumCableElements() const
bool CalculateDesignatedOwnershipOfCableElement(unsigned globalElementIndex)
#define EXPORT_TEMPLATE_CLASS_ALL_DIMS(CLASS)
Node< SPACE_DIM > * GetNodeOrHaloNode(unsigned index) const
std::vector< Element< 1u, SPACE_DIM > * > mCableElements
virtual unsigned GetNumCableElements() const
MixedDimensionMesh(DistributedTetrahedralMeshPartitionType::type partitioningMethod=DistributedTetrahedralMeshPartitionType::METIS_LIBRARY)
CableRangeAtNode GetCablesAtNode(const Node< SPACE_DIM > *pNode)
Element< 1u, SPACE_DIM > * GetCableElement(unsigned globalElementIndex) const
std::vector< Element< 1, SPACE_DIM > * >::const_iterator CableElementIterator