Chaste Release::3.1
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 >:

List of all members.

Public Member Functions

 MutableElement (unsigned index)
 MutableElement (unsigned index, const std::vector< Node< SPACE_DIM > * > &rNodes)
 ~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
bool IsElementOnBoundary () const

Private Member Functions

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

Friends

class boost::serialization::access

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 49 of file MutableElement.hpp.


Constructor & Destructor Documentation

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.

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 47 of file MutableElement.cpp.

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

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

Destructor.

Definition at line 58 of file MutableElement.cpp.


Member Function Documentation

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.

Definition at line 123 of file MutableElement.cpp.

Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT3Swap(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh().

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

Delete a node with given local index.

Parameters:
rIndexis the local index of the node to remove

Definition at line 111 of file MutableElement.cpp.

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

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

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.

Definition at line 165 of file MutableElement.cpp.

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 72 of file MutableElement.cpp.

Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT2Swap().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::RegisterWithNodes ( ) [virtual]
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 85 of file MutableElement.cpp.

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

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

Reimplemented in VertexElement< ELEMENT_DIM, SPACE_DIM >, and PottsElement< DIM >.

Definition at line 68 of file MutableElement.hpp.

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 96 of file MutableElement.cpp.

References Node< SPACE_DIM >::AddElement().


Friends And Related Function Documentation

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

Needed for serialization.

Reimplemented in VertexElement< ELEMENT_DIM, SPACE_DIM >, and PottsElement< DIM >.

Definition at line 55 of file MutableElement.hpp.


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