Chaste Release::3.1
Cylindrical2dVertexMesh Class Reference

#include <Cylindrical2dVertexMesh.hpp>

Inheritance diagram for Cylindrical2dVertexMesh:
Collaboration diagram for Cylindrical2dVertexMesh:

List of all members.

Public Member Functions

 Cylindrical2dVertexMesh (double width, std::vector< Node< 2 > * > nodes, std::vector< VertexElement< 2, 2 > * > vertexElements, double cellRearrangementThreshold=0.01, double t2Threshold=0.001)
 ~Cylindrical2dVertexMesh ()
c_vector< double, 2 > GetVectorFromAtoB (const c_vector< double, 2 > &rLocation1, const c_vector< double, 2 > &rLocation2)
void SetNode (unsigned nodeIndex, ChastePoint< 2 > point)
double GetWidth (const unsigned &rDimension) const
unsigned AddNode (Node< 2 > *pNewNode)
double GetVolumeOfElement (unsigned index)
c_vector< double, 2 > GetCentroidOfElement (unsigned index)

Private Member Functions

template<class Archive >
void serialize (Archive &archive, const unsigned int version)
 Cylindrical2dVertexMesh ()

Private Attributes

double mWidth

Friends

class TestCylindrical2dVertexMesh
class boost::serialization::access

Detailed Description

A subclass of MutableVertexMesh<2,2> for a rectangular mesh with periodic left and right boundaries, representing a cylindrical geometry.

The class works by overriding calls such as ReMesh() and GetVectorFromAtoB() so that simulation classes can treat this class in exactly the same way as a MutableMesh<2,2>.

Definition at line 52 of file Cylindrical2dVertexMesh.hpp.


Constructor & Destructor Documentation

Cylindrical2dVertexMesh::Cylindrical2dVertexMesh ( ) [private]

Constructor - used for serialization only.

Definition at line 50 of file Cylindrical2dVertexMesh.cpp.

Cylindrical2dVertexMesh::Cylindrical2dVertexMesh ( double  width,
std::vector< Node< 2 > * >  nodes,
std::vector< VertexElement< 2, 2 > * >  vertexElements,
double  cellRearrangementThreshold = 0.01,
double  t2Threshold = 0.001 
)

Default constructor.

Parameters:
widththe width (circumference) of the mesh
nodesvector of pointers to nodes
vertexElementsvector of pointers to VertexElements
cellRearrangementThresholdthe minimum threshold distance for element rearrangment (defaults to 0.01)
t2Thresholdthe maximum threshold distance for Type 2 swaps (defaults to 0.001)

Definition at line 38 of file Cylindrical2dVertexMesh.cpp.

References MutableVertexMesh< 2, 2 >::ReMesh().

Cylindrical2dVertexMesh::~Cylindrical2dVertexMesh ( )

Destructor.

Definition at line 54 of file Cylindrical2dVertexMesh.cpp.


Member Function Documentation

unsigned Cylindrical2dVertexMesh::AddNode ( Node< 2 > *  pNewNode)

Overridden AddNode() method.

Parameters:
pNewNodethe node to be added to the mesh
Returns:
the global index of the new node

Definition at line 112 of file Cylindrical2dVertexMesh.cpp.

References Node< SPACE_DIM >::GetPoint(), and SetNode().

c_vector< double, 2 > Cylindrical2dVertexMesh::GetCentroidOfElement ( unsigned  index) [virtual]
c_vector< double, 2 > Cylindrical2dVertexMesh::GetVectorFromAtoB ( const c_vector< double, 2 > &  rLocation1,
const c_vector< double, 2 > &  rLocation2 
)

Overridden GetVectorFromAtoB() method. This method evaluates the (surface) distance between two points in a 2D cylindrical geometry.

Parameters:
rLocation1the x and y co-ordinates of point 1
rLocation2the x and y co-ordinates of point 2
Returns:
the vector from location1 to location2

Definition at line 58 of file Cylindrical2dVertexMesh.cpp.

References mWidth.

Referenced by GetCentroidOfElement(), and GetVolumeOfElement().

double Cylindrical2dVertexMesh::GetVolumeOfElement ( unsigned  index) [virtual]

Overridden GetVolumeOfElement() method.

Parameters:
indexthe global index of a specified vertex element
Returns:
the area of the element

Reimplemented from VertexMesh< ELEMENT_DIM, SPACE_DIM >.

Definition at line 123 of file Cylindrical2dVertexMesh.cpp.

References VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), and GetVectorFromAtoB().

Referenced by GetCentroidOfElement().

double Cylindrical2dVertexMesh::GetWidth ( const unsigned rDimension) const [virtual]

Overridden GetWidth() method.

Calculate the 'width' of any dimension of the mesh, taking periodicity into account.

Parameters:
rDimensiona dimension (0 or 1)
Returns:
The maximum distance between any nodes in this dimension.

Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.

Definition at line 97 of file Cylindrical2dVertexMesh.cpp.

References mWidth.

template<class Archive >
void Cylindrical2dVertexMesh::serialize ( Archive &  archive,
const unsigned int  version 
) [inline, private]

Archives the member variables of the object which have to be preserved during its lifetime.

The remaining member variables are re-initialised before being used by each ReMesh() call so they do not need to be archived.

Parameters:
archivethe archive
versionthe current version of this class

Reimplemented from MutableVertexMesh< 2, 2 >.

Definition at line 74 of file Cylindrical2dVertexMesh.hpp.

References mWidth.

void Cylindrical2dVertexMesh::SetNode ( unsigned  nodeIndex,
ChastePoint< 2 >  point 
)

Overridden SetNode() method.

If the location should be set outside a cylindrical boundary move it back onto the cylinder.

Parameters:
nodeIndexis the index of the node to be moved
pointis the new target location of the node

Definition at line 77 of file Cylindrical2dVertexMesh.cpp.

References mWidth, ChastePoint< DIM >::rGetLocation(), and ChastePoint< DIM >::SetCoordinate().

Referenced by AddNode().


Friends And Related Function Documentation

friend class boost::serialization::access [friend]

Needed for serialization.

Reimplemented from MutableVertexMesh< 2, 2 >.

Definition at line 62 of file Cylindrical2dVertexMesh.hpp.


Member Data Documentation

The circumference of the cylinder.

Definition at line 59 of file Cylindrical2dVertexMesh.hpp.

Referenced by GetVectorFromAtoB(), GetWidth(), serialize(), and SetNode().


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