AbstractElement< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <AbstractElement.hpp>

Inherited by AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >, and VertexElement< ELEMENT_DIM, SPACE_DIM >.

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

List of all members.

Public Member Functions

 AbstractElement (unsigned index, const std::vector< Node< SPACE_DIM > * > &rNodes)
 AbstractElement (unsigned index=INDEX_IS_NOT_USED)
virtual ~AbstractElement ()
virtual void UpdateNode (const unsigned &rIndex, Node< SPACE_DIM > *pNode)=0
void ReplaceNode (Node< SPACE_DIM > *pOldNode, Node< SPACE_DIM > *pNewNode)
virtual void MarkAsDeleted ()=0
virtual void RegisterWithNodes ()=0
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 Flag ()
void Unflag ()
bool IsFlagged () const
void SetRegion (unsigned region)
unsigned GetRegion ()

Protected Attributes

std::vector< Node< SPACE_DIM > * > mNodes
unsigned mIndex
unsigned mRegion
bool mIsDeleted
bool mOwnership
bool mFlag

Detailed Description

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

An abstract element class for use in finite element meshes.

Definition at line 47 of file AbstractElement.hpp.


Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractElement< ELEMENT_DIM, SPACE_DIM >::AbstractElement ( unsigned  index,
const std::vector< Node< SPACE_DIM > * > &  rNodes 
) [inline]

Constructor which takes in a vector of nodes.

Parameters:
index the index of the element in the mesh
rNodes the nodes owned by the element

Definition at line 40 of file AbstractElement.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractElement< ELEMENT_DIM, SPACE_DIM >::AbstractElement ( unsigned  index = INDEX_IS_NOT_USED  )  [inline]

Default constructor, which doesn't add any nodes: they must be added later.

Parameters:
index the index of the element in the mesh (defaults to INDEX_IS_NOT_USED)

Definition at line 55 of file AbstractElement.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
virtual AbstractElement< ELEMENT_DIM, SPACE_DIM >::~AbstractElement (  )  [inline, virtual]

Virtual destructor, since this class has virtual methods. Does nothing special.

Definition at line 93 of file AbstractElement.hpp.


Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractElement< ELEMENT_DIM, SPACE_DIM >::AddNode ( Node< SPACE_DIM > *  pNode  )  [inline]

Add a node to this element.

Parameters:
pNode pointer to the new node

Definition at line 119 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.

Referenced by QuadraticMesh< DIM >::AddNodeToBoundaryElement().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractElement< ELEMENT_DIM, SPACE_DIM >::Flag (  )  [inline]

Mark the element as flagged.

Definition at line 155 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mFlag.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetIndex (  )  const [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
Node< SPACE_DIM > * AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode ( unsigned  localIndex  )  const [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex ( unsigned  localIndex  )  const [inline]

Given the local index of a node owned by this element, return the global index of the node in the mesh.

Parameters:
localIndex the node's local index in this element
Returns:
the global index

Definition at line 99 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.

Referenced by QuadraticMesh< DIM >::AddExtraBoundaryNodes(), VertexElement< ELEMENT_DIM, SPACE_DIM >::AddFace(), QuadraticMesh< DIM >::AddNodesToBoundaryElements(), NonlinearElasticityAssembler< DIM >::AssembleOnBoundaryElement(), NonlinearElasticityAssembler< DIM >::AssembleOnElement(), AbstractStaticAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, NON_HEART, CONCRETE >::AssembleOnElement(), AbstractCardiacMechanicsAssembler< DIM >::AssembleOnElement(), NonlinearElasticityAssembler< DIM >::AssembleSystem(), AbstractFunctionalCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::CalculateOnElement(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::CheckIsVoronoi(), Cylindrical2dMesh::CorrectNonPeriodicMesh(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteNode(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNextEdgeGradientOfElementAtNode(), AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::GetNextElement(), VertexElement< 1, SPACE_DIM >::GetNodeLocalIndex(), VertexElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocalIndex(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetPerimeterOfElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetPreviousEdgeGradientOfElementAtNode(), AbstractTetrahedralElement< 0, SPACE_DIM >::GetStiffnessMatrixGlobalIndices(), AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::GetStiffnessMatrixGlobalIndices(), QuadraticMesh< DIM >::HelperMethod1(), QuadraturePointsGroup< DIM >::QuadraturePointsGroup(), Cylindrical2dMesh::ReconstructCylindricalMesh(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SetElementOwnerships(), CardiacElectroMechanicsProblem< DIM >::Solve(), and Cylindrical2dMesh::UseTheseElementsToDecideMeshing().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
c_vector< double, SPACE_DIM > AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation ( unsigned  localIndex  )  const [inline]

Get the location in space of one of the nodes in this element.

Parameters:
localIndex the index of the node to query, in [0,N) where N is the number of nodes in this element.

Definition at line 92 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation ( unsigned  localIndex,
unsigned  dimension 
) const [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes (  )  const [inline]

Get the number of nodes owned by this element.

Definition at line 113 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.

Referenced by VertexElement< ELEMENT_DIM, SPACE_DIM >::AddFace(), BidomainProblem< DIM >::AnalyseMeshForBath(), AbstractStaticAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, NON_HEART, CONCRETE >::AssembleOnElement(), AbstractStaticAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, NON_HEART, CONCRETE >::AssembleOnSurfaceElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMomentsOfElement(), AbstractFunctionalCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::CalculateOnElement(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::CheckIsVoronoi(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteBoundaryNodeAt(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::ElementIncludesPoint(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetAreaGradientOfElementAtNode(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetAreaOfElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetAreaOfFace(), StreeterFibreGenerator< SPACE_DIM >::GetAveragedThicknessLocalNode(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetCentroidOfElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetLocalIndexForElementEdgeClosestToPoint(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNextEdgeGradientOfElementAtNode(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetPerimeterOfElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetPreviousEdgeGradientOfElementAtNode(), VertexElement< 1, SPACE_DIM >::MarkAsDeleted(), VertexElement< ELEMENT_DIM, SPACE_DIM >::MarkAsDeleted(), Element< ELEMENT_DIM, SPACE_DIM >::MarkAsDeleted(), BoundaryElement< ELEMENT_DIM, SPACE_DIM >::MarkAsDeleted(), VertexElement< 1, SPACE_DIM >::ResetIndex(), VertexElement< ELEMENT_DIM, SPACE_DIM >::ResetIndex(), Element< ELEMENT_DIM, SPACE_DIM >::ResetIndex(), BoundaryElement< ELEMENT_DIM, SPACE_DIM >::ResetIndex(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SetElementOwnerships(), CardiacElectroMechanicsProblem< DIM >::Solve(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh(), and DistanceMapCalculator< ELEMENT_DIM, SPACE_DIM >::WorkOnLocalQueue().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetOwnership (  )  const [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetRegion (  )  [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractElement< ELEMENT_DIM, SPACE_DIM >::IsDeleted (  )  const [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractElement< ELEMENT_DIM, SPACE_DIM >::IsFlagged (  )  const [inline]

Get whether the element is flagged.

Definition at line 167 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mFlag.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
virtual void AbstractElement< ELEMENT_DIM, SPACE_DIM >::MarkAsDeleted (  )  [pure virtual]

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

Implemented in BoundaryElement< ELEMENT_DIM, SPACE_DIM >, Element< ELEMENT_DIM, SPACE_DIM >, VertexElement< ELEMENT_DIM, SPACE_DIM >, and VertexElement< 1, SPACE_DIM >.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
virtual void AbstractElement< ELEMENT_DIM, SPACE_DIM >::RegisterWithNodes (  )  [pure virtual]

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

Implemented in BoundaryElement< ELEMENT_DIM, SPACE_DIM >, Element< ELEMENT_DIM, SPACE_DIM >, VertexElement< ELEMENT_DIM, SPACE_DIM >, and VertexElement< 1, SPACE_DIM >.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractElement< ELEMENT_DIM, SPACE_DIM >::ReplaceNode ( Node< SPACE_DIM > *  pOldNode,
Node< SPACE_DIM > *  pNewNode 
) [inline]

Replace one of the nodes in this element with another.

Parameters:
pOldNode pointer to the current node
pNewNode pointer to the replacement node

Definition at line 64 of file AbstractElement.cpp.

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

Referenced by Cylindrical2dMesh::ReconstructCylindricalMesh().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractElement< ELEMENT_DIM, SPACE_DIM >::SetIndex ( unsigned  index  )  [inline]

Set the index of this element in the mesh.

Parameters:
index the new index

Definition at line 137 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIndex.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractElement< ELEMENT_DIM, SPACE_DIM >::SetOwnership ( bool  ownership  )  [inline]

Set whether the current process owns this element.

Parameters:
ownership whether the current process now owns this element

Definition at line 149 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mOwnership.

Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SetElementOwnerships(), and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SetElementOwnerships().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractElement< ELEMENT_DIM, SPACE_DIM >::SetRegion ( unsigned  region  )  [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractElement< ELEMENT_DIM, SPACE_DIM >::Unflag (  )  [inline]

Mark the element as not flagged.

Definition at line 161 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mFlag.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
virtual void AbstractElement< ELEMENT_DIM, SPACE_DIM >::UpdateNode ( const unsigned rIndex,
Node< SPACE_DIM > *  pNode 
) [pure 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

Implemented in BoundaryElement< ELEMENT_DIM, SPACE_DIM >, Element< ELEMENT_DIM, SPACE_DIM >, VertexElement< ELEMENT_DIM, SPACE_DIM >, and VertexElement< 1, SPACE_DIM >.

Referenced by AbstractElement< ELEMENT_DIM, SPACE_DIM >::ReplaceNode().


Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractElement< ELEMENT_DIM, SPACE_DIM >::mFlag [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIndex [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIsDeleted [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector<Node<SPACE_DIM>*> AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes [protected]

The nodes forming this element.

Definition at line 52 of file AbstractElement.hpp.

Referenced by AbstractTetrahedralElement< 0, SPACE_DIM >::AbstractTetrahedralElement(), AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::AbstractTetrahedralElement(), VertexElement< 1, SPACE_DIM >::AddNode(), VertexElement< ELEMENT_DIM, SPACE_DIM >::AddNode(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::AddNode(), BoundaryElement< ELEMENT_DIM, SPACE_DIM >::BoundaryElement(), AbstractTetrahedralElement< 0, SPACE_DIM >::CalculateCentroid(), AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::CalculateCentroid(), VertexElement< 1, SPACE_DIM >::DeleteNode(), VertexElement< ELEMENT_DIM, SPACE_DIM >::DeleteNode(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), VertexElement< 1, SPACE_DIM >::GetNodeLocalIndex(), VertexElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocalIndex(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), VertexElement< 1, SPACE_DIM >::MarkAsDeleted(), VertexElement< ELEMENT_DIM, SPACE_DIM >::MarkAsDeleted(), Element< ELEMENT_DIM, SPACE_DIM >::MarkAsDeleted(), BoundaryElement< ELEMENT_DIM, SPACE_DIM >::MarkAsDeleted(), VertexElement< 1, SPACE_DIM >::RegisterWithNodes(), VertexElement< ELEMENT_DIM, SPACE_DIM >::RegisterWithNodes(), Element< ELEMENT_DIM, SPACE_DIM >::RegisterWithNodes(), BoundaryElement< ELEMENT_DIM, SPACE_DIM >::RegisterWithNodes(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::ReplaceNode(), VertexElement< 1, SPACE_DIM >::ResetIndex(), VertexElement< ELEMENT_DIM, SPACE_DIM >::ResetIndex(), Element< ELEMENT_DIM, SPACE_DIM >::ResetIndex(), BoundaryElement< ELEMENT_DIM, SPACE_DIM >::ResetIndex(), VertexElement< 1, SPACE_DIM >::UpdateNode(), VertexElement< ELEMENT_DIM, SPACE_DIM >::UpdateNode(), Element< ELEMENT_DIM, SPACE_DIM >::UpdateNode(), BoundaryElement< ELEMENT_DIM, SPACE_DIM >::UpdateNode(), VertexElement< 1, SPACE_DIM >::VertexElement(), and VertexElement< ELEMENT_DIM, SPACE_DIM >::VertexElement().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractElement< ELEMENT_DIM, SPACE_DIM >::mOwnership [protected]

Whether the current process owns this element.

Definition at line 67 of file AbstractElement.hpp.

Referenced by AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetOwnership(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::SetOwnership().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractElement< ELEMENT_DIM, SPACE_DIM >::mRegion [protected]

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

Generated by  doxygen 1.6.2