Cylindrical2dVertexMesh Class Reference

#include <Cylindrical2dVertexMesh.hpp>

Inheritance diagram for Cylindrical2dVertexMesh:

Inheritance graph
[legend]
Collaboration diagram for Cylindrical2dVertexMesh:

Collaboration graph
[legend]

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 44 of file Cylindrical2dVertexMesh.hpp.


Constructor & Destructor Documentation

Cylindrical2dVertexMesh::Cylindrical2dVertexMesh (  )  [private]

Constructor - used for serialization only.

Definition at line 42 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:
width the width (circumference) of the mesh
nodes vector of pointers to nodes
vertexElements vector of pointers to VertexElements
cellRearrangementThreshold the minimum threshold distance for element rearrangment (defaults to 0.01)
t2Threshold the maximum threshold distance for Type 2 swaps (defaults to 0.001)

Definition at line 30 of file Cylindrical2dVertexMesh.cpp.

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

Cylindrical2dVertexMesh::~Cylindrical2dVertexMesh (  ) 

Destructor.

Definition at line 46 of file Cylindrical2dVertexMesh.cpp.


Member Function Documentation

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:
archive the archive
version the current version of this class

Reimplemented from MutableVertexMesh< 2, 2 >.

Definition at line 66 of file Cylindrical2dVertexMesh.hpp.

References mWidth.

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:
rLocation1 the x and y co-ordinates of point 1
rLocation2 the x and y co-ordinates of point 2
Returns:
the vector from location1 to location2

Definition at line 50 of file Cylindrical2dVertexMesh.cpp.

References mWidth.

Referenced by GetCentroidOfElement(), and GetVolumeOfElement().

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:
nodeIndex is the index of the node to be moved
point is the new target location of the node

Definition at line 69 of file Cylindrical2dVertexMesh.cpp.

References mWidth, ChastePoint< DIM >::rGetLocation(), ChastePoint< DIM >::SetCoordinate(), and MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::SetNode().

Referenced by AddNode().

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:
rDimension a dimension (0 or 1)
Returns:
The maximum distance between any nodes in this dimension.

Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.

Definition at line 89 of file Cylindrical2dVertexMesh.cpp.

References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetWidth(), and mWidth.

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

Overridden AddNode() method.

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

Definition at line 104 of file Cylindrical2dVertexMesh.cpp.

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

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

Overridden GetVolumeOfElement() method.

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

Reimplemented from VertexMesh< ELEMENT_DIM, SPACE_DIM >.

Definition at line 115 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().

c_vector< double, 2 > Cylindrical2dVertexMesh::GetCentroidOfElement ( unsigned  index  )  [virtual]

Overridden GetCentroidOfElement() method.

Parameters:
index the global index of a specified vertex element
Returns:
(centroid_x,centroid_y).

Reimplemented from VertexMesh< ELEMENT_DIM, SPACE_DIM >.

Definition at line 150 of file Cylindrical2dVertexMesh.cpp.

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


Friends And Related Function Documentation

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

Needed for serialization.

Reimplemented from MutableVertexMesh< 2, 2 >.

Definition at line 54 of file Cylindrical2dVertexMesh.hpp.


Member Data Documentation

The circumference of the cylinder.

Definition at line 51 of file Cylindrical2dVertexMesh.hpp.

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


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

Generated on Mon Apr 18 11:36:59 2011 for Chaste by  doxygen 1.5.5