Cylindrical2dVertexMesh.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 CYLINDRICAL2DVERTEXMESH_HPP_
00030 #define CYLINDRICAL2DVERTEXMESH_HPP_
00031
00032 #include "ChasteSerialization.hpp"
00033 #include <boost/serialization/base_object.hpp>
00034
00035 #include "MutableVertexMesh.hpp"
00036
00045 class Cylindrical2dVertexMesh : public MutableVertexMesh<2,2>
00046 {
00047 friend class TestCylindrical2dVertexMesh;
00048
00049 private:
00050
00052 double mWidth;
00053
00055 friend class boost::serialization::access;
00066 template<class Archive>
00067 void serialize(Archive & archive, const unsigned int version)
00068 {
00069 archive & boost::serialization::base_object<MutableVertexMesh<2,2> >(*this);
00070 archive & mWidth;
00071 }
00072
00076 Cylindrical2dVertexMesh();
00077
00078 public:
00079
00089 Cylindrical2dVertexMesh(double width,
00090 std::vector<Node<2>*> nodes,
00091 std::vector<VertexElement<2,2>*> vertexElements,
00092 double cellRearrangementThreshold=0.01,
00093 double t2Threshold=0.001);
00094
00098 ~Cylindrical2dVertexMesh();
00099
00110 c_vector<double, 2> GetVectorFromAtoB(const c_vector<double, 2>& rLocation1, const c_vector<double, 2>& rLocation2);
00111
00121 void SetNode(unsigned nodeIndex, ChastePoint<2> point);
00122
00132 double GetWidth(const unsigned& rDimension) const;
00133
00141 unsigned AddNode(Node<2>* pNewNode);
00142
00150 double GetVolumeOfElement(unsigned index);
00151
00159 c_vector<double, 2> GetCentroidOfElement(unsigned index);
00160 };
00161
00162 #include "SerializationExportWrapper.hpp"
00163 CHASTE_CLASS_EXPORT(Cylindrical2dVertexMesh)
00164
00165 #endif