Chaste
Release::2017.1
|
#include <MutableElement.hpp>
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 |
virtual bool | IsElementOnBoundary () 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 () |
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 () |
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 |
A mutable element containing functionality to add and remove nodes.
Definition at line 49 of file MutableElement.hpp.
MutableElement< ELEMENT_DIM, SPACE_DIM >::MutableElement | ( | unsigned | index | ) |
Alternative constructor.
index | global index of the element |
Definition at line 41 of file MutableElement.cpp.
Referenced by MutableElement< DIM, DIM >::serialize().
MutableElement< ELEMENT_DIM, SPACE_DIM >::MutableElement | ( | unsigned | index, |
const std::vector< Node< SPACE_DIM > * > & | rNodes | ||
) |
Constructor.
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().
|
virtual |
Destructor.
Definition at line 58 of file MutableElement.cpp.
Referenced by MutableElement< DIM, DIM >::serialize().
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.
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(), Cylindrical2dVertexMesh::Cylindrical2dVertexMesh(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformProtorosetteResolution(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformRosetteRankDecrease(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT3Swap(), MutableElement< DIM, DIM >::serialize(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh().
void MutableElement< ELEMENT_DIM, SPACE_DIM >::DeleteNode | ( | const unsigned & | rIndex | ) |
Delete a node with given local index.
rIndex | is the local index of the node to remove |
Definition at line 111 of file MutableElement.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIndex, and AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DivideElement(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformProtorosetteResolution(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformRosetteRankDecrease(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT2Swap(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT3Swap(), and MutableElement< DIM, DIM >::serialize().
unsigned MutableElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocalIndex | ( | unsigned | globalIndex | ) | const |
Calculate the local index of a node given a global index if node is not contained in element return UINT_MAX.
globalIndex | the global index of the node in the mesh |
Definition at line 151 of file MutableElement.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by FarhadifarForce< DIM >::AddForceContribution(), NagaiHondaForce< DIM >::AddForceContribution(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DivideEdge(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DivideElementAlongGivenAxis(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::IdentifySwapType(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformIntersectionSwap(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformProtorosetteResolution(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformRosetteRankDecrease(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT2Swap(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT3Swap(), and MutableElement< DIM, DIM >::serialize().
|
virtual |
Get whether or not the element is on the boundary by seeing if contains boundary nodes.
Definition at line 165 of file MutableElement.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by MutableElement< DIM, DIM >::serialize().
|
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.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIndex, AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIsDeleted, and AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT2Swap(), and MutableElement< DIM, DIM >::serialize().
|
virtual |
Overridden RegisterWithNodes() method.
Informs all nodes forming this element that they are in this element.
Implements AbstractElement< ELEMENT_DIM, SPACE_DIM >.
Definition at line 63 of file MutableElement.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIndex, and AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::AddElement(), MutableElement< ELEMENT_DIM, SPACE_DIM >::MutableElement(), MutableElement< ELEMENT_DIM, SPACE_DIM >::ResetIndex(), MutableElement< 1, SPACE_DIM >::ResetIndex(), MutableElement< DIM, DIM >::serialize(), and VertexElement< ELEMENT_DIM, SPACE_DIM >::VertexElement().
void MutableElement< ELEMENT_DIM, SPACE_DIM >::ResetIndex | ( | unsigned | index | ) |
Reset the global index of the element and update its nodes.
index | the new global index |
Definition at line 85 of file MutableElement.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIndex, AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes, and MutableElement< ELEMENT_DIM, SPACE_DIM >::RegisterWithNodes().
Referenced by MutableElement< DIM, DIM >::serialize().
|
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.
archive | the archive |
version | the current version of this class |
Definition at line 68 of file MutableElement.hpp.
|
virtual |
Update node at the given index.
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.
Referenced by MutableElement< DIM, DIM >::serialize().
|
friend |
Needed for serialization.
Definition at line 55 of file MutableElement.hpp.