Cylindrical2dVertexMesh Class Reference

#include <Cylindrical2dVertexMesh.hpp>

Inherits MutableVertexMesh< 2, 2 >.

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


Constructor & Destructor Documentation

Cylindrical2dVertexMesh::Cylindrical2dVertexMesh (  )  [private]

Constructor - used for serialization only.

Definition at line 43 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 31 of file Cylindrical2dVertexMesh.cpp.

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

Cylindrical2dVertexMesh::~Cylindrical2dVertexMesh (  ) 

Destructor.

Definition at line 47 of file Cylindrical2dVertexMesh.cpp.


Member Function Documentation

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 105 of file Cylindrical2dVertexMesh.cpp.

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

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 151 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().

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 51 of file Cylindrical2dVertexMesh.cpp.

References mWidth.

Referenced by GetCentroidOfElement(), and GetVolumeOfElement().

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

Reimplemented from MutableVertexMesh< 2, 2 >.

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

Definition at line 70 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 55 of file Cylindrical2dVertexMesh.hpp.


Member Data Documentation

The circumference of the cylinder.

Definition at line 52 of file Cylindrical2dVertexMesh.hpp.

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


The documentation for this class was generated from the following files:
Generated on Thu Dec 22 13:04:09 2011 for Chaste by  doxygen 1.6.3