PottsElement.hpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef POTTSELEMENT_HPP_
00030 #define POTTSELEMENT_HPP_
00031
00032 #include "AbstractElement.hpp"
00033
00034 #include "ChasteSerialization.hpp"
00035 #include <boost/serialization/base_object.hpp>
00036
00047 template<unsigned DIM>
00048 class PottsElement : public AbstractElement<DIM, DIM>
00049 {
00050 private:
00051
00053 friend class boost::serialization::access;
00065 template<class Archive>
00066 void serialize(Archive & archive, const unsigned int version)
00067 {
00068 archive & boost::serialization::base_object<AbstractElement<DIM, DIM> >(*this);
00069 }
00070
00071 public:
00078 PottsElement(unsigned index, const std::vector<Node<DIM>*>& rNodes);
00079
00083 ~PottsElement();
00084
00090 void RegisterWithNodes();
00091
00098 void MarkAsDeleted();
00099
00105 void ResetIndex(unsigned index);
00106
00113 void UpdateNode(const unsigned& rIndex, Node<DIM>* pNode);
00114
00120 void DeleteNode(const unsigned& rIndex);
00121
00128 void AddNode(Node<DIM>* pNode);
00129
00137 unsigned GetNodeLocalIndex(unsigned globalIndex) const;
00138
00144 bool IsElementOnBoundary() const;
00145 };
00146
00147 #endif