MutableElement< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <MutableElement.hpp>

Inherits AbstractElement< ELEMENT_DIM, SPACE_DIM >.

Inherited by VertexElement< ELEMENT_DIM, SPACE_DIM >.

Collaboration diagram for MutableElement< ELEMENT_DIM, SPACE_DIM >:
Collaboration graph
[legend]

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  )  [inline]

Alternative constructor.

Parameters:
index global 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 
) [inline]

Constructor.

Parameters:
index global index of the element
rNodes vector 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 (  )  [inline]

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 
) [inline]

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

Parameters:
rIndex the local index of the node after which the new node is added
pNode a 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.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIndex, and AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::DeleteNode ( const unsigned rIndex  )  [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned MutableElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocalIndex ( unsigned  globalIndex  )  const [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool MutableElement< ELEMENT_DIM, SPACE_DIM >::IsElementOnBoundary (  )  const [inline]

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.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::MarkAsDeleted (  )  [inline, virtual]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::RegisterWithNodes (  )  [inline, virtual]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void MutableElement< ELEMENT_DIM, SPACE_DIM >::ResetIndex ( unsigned  index  )  [inline]
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:
archive the archive
version the 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 
) [inline, virtual]

Update node at the given index.

Parameters:
rIndex is an local index to which node to change
pNode is a pointer to the replacement node

Implements AbstractElement< ELEMENT_DIM, SPACE_DIM >.

Definition at line 96 of file MutableElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIndex, and AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.


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:

Generated by  doxygen 1.6.2