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
00030
00031
00032
00033
00034
00035
00036 #ifndef CYLINDRICAL2DVERTEXMESH_HPP_
00037 #define CYLINDRICAL2DVERTEXMESH_HPP_
00038
00039 #include "ChasteSerialization.hpp"
00040 #include <boost/serialization/base_object.hpp>
00041
00042 #include "MutableVertexMesh.hpp"
00043
00052 class Cylindrical2dVertexMesh : public MutableVertexMesh<2,2>
00053 {
00054 friend class TestCylindrical2dVertexMesh;
00055
00056 private:
00057
00059 double mWidth;
00060
00062 friend class boost::serialization::access;
00073 template<class Archive>
00074 void serialize(Archive & archive, const unsigned int version)
00075 {
00076 archive & boost::serialization::base_object<MutableVertexMesh<2,2> >(*this);
00077 archive & mWidth;
00078 }
00079
00083 Cylindrical2dVertexMesh();
00084
00085 public:
00086
00096 Cylindrical2dVertexMesh(double width,
00097 std::vector<Node<2>*> nodes,
00098 std::vector<VertexElement<2,2>*> vertexElements,
00099 double cellRearrangementThreshold=0.01,
00100 double t2Threshold=0.001);
00101
00105 ~Cylindrical2dVertexMesh();
00106
00117 c_vector<double, 2> GetVectorFromAtoB(const c_vector<double, 2>& rLocation1, const c_vector<double, 2>& rLocation2);
00118
00128 void SetNode(unsigned nodeIndex, ChastePoint<2> point);
00129
00139 double GetWidth(const unsigned& rDimension) const;
00140
00148 unsigned AddNode(Node<2>* pNewNode);
00149
00157 void Scale(const double xScale=1.0, const double yScale=1.0,const double zScale=1.0);
00158
00166 MutableVertexMesh<2, 2>* GetMeshForVtk();
00167 };
00168
00169 #include "SerializationExportWrapper.hpp"
00170 CHASTE_CLASS_EXPORT(Cylindrical2dVertexMesh)
00171
00172 #endif