Chaste Commit::1fd4e48e3990e67db148bc1bc4cf6991a0049d0c
MutableElement< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <MutableElement.hpp>

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

Public Member Functions

 MutableElement (unsigned index)
 
 MutableElement (unsigned index, const std::vector< Node< SPACE_DIM > * > &rNodes)
 
virtual ~MutableElement ()
 
void RegisterWithNodes ()
 
void MarkAsDeleted ()
 
void ResetIndex (unsigned index)
 
void UpdateNode (const unsigned &rIndex, Node< SPACE_DIM > *pNode)
 
void DeleteNode (const unsigned &rIndex)
 
void AddNode (Node< SPACE_DIM > *pNode, const unsigned &rIndex)
 
unsigned GetNodeLocalIndex (unsigned globalIndex) const
 
void RegisterWithEdges ()
 
void RebuildEdges ()
 
virtual bool IsElementOnBoundary () const
 
void SetEdgeHelper (EdgeHelper< SPACE_DIM > *pEdgeHelper)
 
void ClearEdges ()
 
void BuildEdges ()
 
unsigned GetEdgeGlobalIndex (unsigned localIndex) const
 
Edge< SPACE_DIM > * GetEdge (unsigned localIndex) const
 
unsigned GetNumEdges () const
 
std::set< unsignedGetNeighbouringElementAtEdgeIndex (unsigned localIndex)
 
bool ContainsEdge (const Edge< SPACE_DIM > *pEdge) const
 
long GetLocalEdgeIndex (const Edge< SPACE_DIM > *pEdge) const
 
- Public Member Functions inherited from AbstractElement< ELEMENT_DIM, SPACE_DIM >
 AbstractElement (unsigned index, const std::vector< Node< SPACE_DIM > * > &rNodes)
 
 AbstractElement (unsigned index=INDEX_IS_NOT_USED)
 
virtual ~AbstractElement ()
 
void ReplaceNode (Node< SPACE_DIM > *pOldNode, Node< SPACE_DIM > *pNewNode)
 
double GetNodeLocation (unsigned localIndex, unsigned dimension) const
 
c_vector< double, SPACE_DIM > GetNodeLocation (unsigned localIndex) const
 
unsigned GetNodeGlobalIndex (unsigned localIndex) const
 
Node< SPACE_DIM > * GetNode (unsigned localIndex) const
 
unsigned GetNumNodes () const
 
void AddNode (Node< SPACE_DIM > *pNode)
 
bool IsDeleted () const
 
unsigned GetIndex () const
 
void SetIndex (unsigned index)
 
bool GetOwnership () const
 
void SetOwnership (bool ownership)
 
void SetAttribute (double attribute)
 
double GetAttribute ()
 
unsigned GetUnsignedAttribute ()
 
void AddElementAttribute (double attribute)
 
std::vector< double > & rGetElementAttributes ()
 
unsigned GetNumElementAttributes ()
 

Protected Attributes

std::vector< Edge< SPACE_DIM > * > mEdges
 
EdgeHelper< SPACE_DIM > * mEdgeHelper
 
- Protected Attributes inherited from AbstractElement< ELEMENT_DIM, SPACE_DIM >
std::vector< Node< SPACE_DIM > * > mNodes
 
unsigned mIndex
 
bool mIsDeleted
 
bool mOwnership
 
ElementAttributes< ELEMENT_DIM, SPACE_DIM > * mpElementAttributes
 

Private Member Functions

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

Friends

class boost::serialization::access
 

Additional Inherited Members

- Protected Member Functions inherited from AbstractElement< ELEMENT_DIM, SPACE_DIM >
void ConstructElementAttributes ()
 

Detailed Description

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

A mutable element containing functionality to add and remove nodes.

Definition at line 54 of file MutableElement.hpp.

Constructor & Destructor Documentation

◆ MutableElement() [1/2]

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MutableElement< ELEMENT_DIM, SPACE_DIM >::MutableElement ( unsigned  index)

Alternative constructor.

Parameters
indexglobal index of the element

Definition at line 41 of file MutableElement.cpp.

◆ MutableElement() [2/2]

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MutableElement< ELEMENT_DIM, SPACE_DIM >::MutableElement ( unsigned  index,
const std::vector< Node< SPACE_DIM > * > &  rNodes 
)

Constructor.

Parameters
indexglobal index of the element
rNodesvector of Nodes associated with the element

Definition at line 48 of file MutableElement.cpp.

References MutableElement< ELEMENT_DIM, SPACE_DIM >::RegisterWithNodes().

◆ ~MutableElement()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
MutableElement< ELEMENT_DIM, SPACE_DIM >::~MutableElement ( )
virtual

Destructor.

Definition at line 60 of file MutableElement.cpp.

Member Function Documentation

◆ AddNode()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::AddNode ( Node< SPACE_DIM > *  pNode,
const unsigned rIndex 
)

Add a node to the element between nodes at rIndex and rIndex+1.

Parameters
rIndexthe local index of the node after which the new node is added
pNodea pointer to the new node

When constructing a VertexMesh as the Voronoi dual to a Delaunay mesh, each MutableElement is initially constructed without nodes. We therefore require the two cases below for nodes.

Definition at line 173 of file MutableElement.cpp.

Referenced by Cylindrical2dVertexMesh::Cylindrical2dVertexMesh(), Toroidal2dVertexMesh::Toroidal2dVertexMesh(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformProtorosetteResolution(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformRosetteRankDecrease(), and MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT3Swap().

◆ BuildEdges()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::BuildEdges ( )

Builds edges from element nodes

Definition at line 286 of file MutableElement.cpp.

◆ ClearEdges()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::ClearEdges ( )

Clear edges from element

Definition at line 276 of file MutableElement.cpp.

◆ ContainsEdge()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool MutableElement< ELEMENT_DIM, SPACE_DIM >::ContainsEdge ( const Edge< SPACE_DIM > *  pEdge) const

Checks if the element contains an edge.

Parameters
pEdgepointer to an edge
Returns
whether the element contains pEdge

Definition at line 331 of file MutableElement.cpp.

◆ DeleteNode()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::DeleteNode ( const unsigned rIndex)

◆ GetEdge()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
Edge< SPACE_DIM > * MutableElement< ELEMENT_DIM, SPACE_DIM >::GetEdge ( unsigned  localIndex) const

Gets the edge at localIndex

Parameters
localIndexlocal index of the edge in this element
Returns

Definition at line 312 of file MutableElement.cpp.

Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT2Swap(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT3Swap(), and VertexMeshOperationRecorder< ELEMENT_DIM, SPACE_DIM >::RecordCellDivideOperation().

◆ GetEdgeGlobalIndex()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned MutableElement< ELEMENT_DIM, SPACE_DIM >::GetEdgeGlobalIndex ( unsigned  localIndex) const

Gets the global index of the edge at localIndex

Parameters
localIndexlocal index of the edge in this element
Returns
Global index of the edge

Definition at line 305 of file MutableElement.cpp.

◆ GetLocalEdgeIndex()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
long MutableElement< ELEMENT_DIM, SPACE_DIM >::GetLocalEdgeIndex ( const Edge< SPACE_DIM > *  pEdge) const

Return the local index of an edge.

Parameters
pEdgepointer to an edge
Returns
-1 if pEdge was not found, else the local index of pEdge

Definition at line 344 of file MutableElement.cpp.

Referenced by VertexMeshOperationRecorder< ELEMENT_DIM, SPACE_DIM >::RecordCellDivideOperation(), and VertexMeshOperationRecorder< ELEMENT_DIM, SPACE_DIM >::RecordNodeMergeOperation().

◆ GetNeighbouringElementAtEdgeIndex()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::set< unsigned > MutableElement< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringElementAtEdgeIndex ( unsigned  localIndex)

Gets a set of element indices that neighours the element at the specified edge

Parameters
localIndexLocal index of the edge in this element
Returns
A set of element indices that neighbours this edge

Definition at line 324 of file MutableElement.cpp.

◆ GetNodeLocalIndex()

◆ GetNumEdges()

◆ IsElementOnBoundary()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool MutableElement< ELEMENT_DIM, SPACE_DIM >::IsElementOnBoundary ( ) const
virtual

Get whether or not the element is on the boundary by seeing if contains boundary nodes.

Returns
whether or not the element is on the boundary.

Reimplemented in ImmersedBoundaryElement< ELEMENT_DIM, SPACE_DIM >, ImmersedBoundaryElement< ELEMENT_DIM - 1, SPACE_DIM >, and ImmersedBoundaryElement< ELEMENT_DIM-1, SPACE_DIM >.

Definition at line 255 of file MutableElement.cpp.

◆ MarkAsDeleted()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::MarkAsDeleted ( )
virtual

Overridden MarkAsDeleted() method.

Mark an element as having been removed from the mesh. Also notify nodes in the element that it has been removed.

Implements AbstractElement< ELEMENT_DIM, SPACE_DIM >.

Definition at line 74 of file MutableElement.cpp.

◆ RebuildEdges()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::RebuildEdges ( )

Rebuild edges in this element.

Definition at line 248 of file MutableElement.cpp.

◆ RegisterWithEdges()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::RegisterWithEdges ( )

Inform all edges forming this element that they are in this element.

Definition at line 239 of file MutableElement.cpp.

◆ RegisterWithNodes()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::RegisterWithNodes ( )
virtual

◆ ResetIndex()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::ResetIndex ( unsigned  index)

Reset the global index of the element and update its nodes.

Parameters
indexthe new global index

Definition at line 92 of file MutableElement.cpp.

◆ serialize()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
template<class Archive >
void MutableElement< ELEMENT_DIM, SPACE_DIM >::serialize ( Archive &  archive,
const unsigned int  version 
)
inlineprivate

Serialize the object and its member variables.

Note that serialization of the mesh and cells is handled by load/save_construct_data.

Note also that member data related to writers is not saved - output must be set up again by the caller after a restart.

Parameters
archivethe archive
versionthe current version of this class

Definition at line 71 of file MutableElement.hpp.

◆ SetEdgeHelper()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::SetEdgeHelper ( EdgeHelper< SPACE_DIM > *  pEdgeHelper)

Sets edge helper.

Parameters
pEdgeHelperpointer to an edge helper

Definition at line 270 of file MutableElement.cpp.

◆ UpdateNode()

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::UpdateNode ( const unsigned rIndex,
Node< SPACE_DIM > *  pNode 
)
virtual

Update node at the given index.

Parameters
rIndexis an local index to which node to change
pNodeis a pointer to the replacement node

Implements AbstractElement< ELEMENT_DIM, SPACE_DIM >.

Definition at line 110 of file MutableElement.cpp.

Friends And Related Symbol Documentation

◆ boost::serialization::access

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

Needed for serialization.

Definition at line 58 of file MutableElement.hpp.

Member Data Documentation

◆ mEdgeHelper

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
EdgeHelper<SPACE_DIM>* MutableElement< ELEMENT_DIM, SPACE_DIM >::mEdgeHelper
protected

EdgeHelper class to keep track of edges

Definition at line 82 of file MutableElement.hpp.

◆ mEdges

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector<Edge<SPACE_DIM>*> MutableElement< ELEMENT_DIM, SPACE_DIM >::mEdges
protected

The edges forming this element

Definition at line 79 of file MutableElement.hpp.


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