AbstractElement< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#include <AbstractElement.hpp>

Inheritance diagram for AbstractElement< ELEMENT_DIM, SPACE_DIM >:

Inheritance graph
[legend]
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>
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 >, and Element< ELEMENT_DIM, SPACE_DIM >.

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

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>
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 >, and Element< ELEMENT_DIM, 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 >, and Element< ELEMENT_DIM, SPACE_DIM >.

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

Get a single component of 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.
dimension the spatial dimension to query.

Definition at line 79 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.

Referenced by Element< ELEMENT_DIM, SPACE_DIM >::CalculateCircumsphere(), Element< ELEMENT_DIM, SPACE_DIM >::CalculatePsi(), and AbstractTetrahedralElement< ELEMENT_DIM, SPACE_DIM >::RefreshJacobian().

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.
Todo:
this used to return a reference to a c_vector, in which case a weird error arose where it compiled, ran and passed on some machines but failed the tests (bad_size errors) on another machine.

Definition at line 87 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.

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 94 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.

Referenced by QuadraticMesh< DIM >::AddExtraBoundaryNodes(), QuadraticMesh< DIM >::AddNodesToBoundaryElements(), NonlinearElasticityAssembler< DIM >::AssembleOnBoundaryElement(), NonlinearElasticityAssembler< DIM >::AssembleOnElement(), AbstractStaticAssembler< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM, NON_HEART, CONCRETE >::AssembleOnElement(), ImplicitCardiacMechanicsAssembler< DIM >::AssembleOnElement(), NonlinearElasticityAssembler< DIM >::AssembleSystem(), AbstractFunctionalCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::CalculateOnElement(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::CheckVoronoi(), Cylindrical2dMesh::CorrectNonPeriodicMesh(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteNode(), 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(), Cylindrical2dMesh::UseTheseElementsToDecideMeshing(), and AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh().

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 >::GetNumNodes (  )  const [inline]

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 114 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mNodes.

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

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

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetIndex (  )  const [inline]

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 132 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mIndex.

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

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 144 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mOwnership.

Referenced by ParallelTetrahedralMesh< 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 >::Flag (  )  [inline]

Mark the element as flagged.

Definition at line 150 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mFlag.

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

Mark the element as not flagged.

Definition at line 156 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mFlag.

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 162 of file AbstractElement.cpp.

References AbstractElement< ELEMENT_DIM, SPACE_DIM >::mFlag.

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

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


Member Data Documentation

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

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

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

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

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>
bool AbstractElement< ELEMENT_DIM, SPACE_DIM >::mFlag [protected]


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

Generated on Tue Aug 4 16:10:38 2009 for Chaste by  doxygen 1.5.5