36 #ifndef ABSTRACTELEMENT_HPP_
37 #define ABSTRACTELEMENT_HPP_
43 #include "ElementAttributes.hpp"
49 const unsigned INDEX_IS_NOT_USED=0;
54 template <
unsigned ELEMENT_DIM,
unsigned SPACE_DIM>
60 std::vector<Node<SPACE_DIM>*>
mNodes;
148 c_vector<double, SPACE_DIM>
GetNodeLocation(
unsigned localIndex)
const;
void SetAttribute(double attribute)
ElementAttributes< ELEMENT_DIM, SPACE_DIM > * mpElementAttributes
void AddElementAttribute(double attribute)
unsigned GetNodeGlobalIndex(unsigned localIndex) const
void SetIndex(unsigned index)
void ReplaceNode(Node< SPACE_DIM > *pOldNode, Node< SPACE_DIM > *pNewNode)
void SetOwnership(bool ownership)
unsigned GetNumElementAttributes()
Node< SPACE_DIM > * GetNode(unsigned localIndex) const
AbstractElement(unsigned index, const std::vector< Node< SPACE_DIM > * > &rNodes)
bool GetOwnership() const
std::vector< Node< SPACE_DIM > * > mNodes
void ConstructElementAttributes()
std::vector< double > & rGetElementAttributes()
virtual void MarkAsDeleted()=0
unsigned GetNumNodes() const
virtual ~AbstractElement()
unsigned GetUnsignedAttribute()
unsigned GetIndex() const
void AddNode(Node< SPACE_DIM > *pNode)
virtual void RegisterWithNodes()=0
double GetNodeLocation(unsigned localIndex, unsigned dimension) const
virtual void UpdateNode(const unsigned &rIndex, Node< SPACE_DIM > *pNode)=0