Chaste Release::3.1
|
#include <VertexMesh.hpp>
Classes | |
class | VertexElementIterator |
Public Member Functions | |
VertexElementIterator | GetElementIteratorBegin (bool skipDeletedElements=true) |
VertexElementIterator | GetElementIteratorEnd () |
VertexMesh (std::vector< Node< SPACE_DIM > * > nodes, std::vector< VertexElement< ELEMENT_DIM, SPACE_DIM > * > vertexElements) | |
VertexMesh (std::vector< Node< SPACE_DIM > * > nodes, std::vector< VertexElement< ELEMENT_DIM-1, SPACE_DIM > * > faces, std::vector< VertexElement< ELEMENT_DIM, SPACE_DIM > * > vertexElements) | |
VertexMesh (TetrahedralMesh< 2, 2 > &rMesh, bool isPeriodic=false) | |
VertexMesh (TetrahedralMesh< 3, 3 > &rMesh) | |
VertexMesh () | |
virtual | ~VertexMesh () |
virtual unsigned | GetNumNodes () const |
virtual unsigned | GetNumElements () const |
unsigned | GetNumAllElements () const |
virtual unsigned | GetNumFaces () const |
VertexElement< ELEMENT_DIM, SPACE_DIM > * | GetElement (unsigned index) const |
VertexElement< ELEMENT_DIM-1, SPACE_DIM > * | GetFace (unsigned index) const |
virtual c_vector< double, SPACE_DIM > | GetCentroidOfElement (unsigned index) |
void | ConstructFromMeshReader (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader) |
virtual void | Clear () |
unsigned | GetDelaunayNodeIndexCorrespondingToVoronoiElementIndex (unsigned elementIndex) |
unsigned | GetVoronoiElementIndexCorrespondingToDelaunayNodeIndex (unsigned nodeIndex) |
virtual c_vector< double, SPACE_DIM > | GetVectorFromAtoB (const c_vector< double, SPACE_DIM > &rLocationA, const c_vector< double, SPACE_DIM > &rLocationB) |
virtual double | GetVolumeOfElement (unsigned index) |
virtual double | GetSurfaceAreaOfElement (unsigned index) |
c_vector< double, SPACE_DIM > | GetAreaGradientOfElementAtNode (VertexElement< ELEMENT_DIM, SPACE_DIM > *pElement, unsigned localIndex) |
c_vector< double, SPACE_DIM > | GetPreviousEdgeGradientOfElementAtNode (VertexElement< ELEMENT_DIM, SPACE_DIM > *pElement, unsigned localIndex) |
c_vector< double, SPACE_DIM > | GetNextEdgeGradientOfElementAtNode (VertexElement< ELEMENT_DIM, SPACE_DIM > *pElement, unsigned localIndex) |
c_vector< double, SPACE_DIM > | GetPerimeterGradientOfElementAtNode (VertexElement< ELEMENT_DIM, SPACE_DIM > *pElement, unsigned localIndex) |
virtual c_vector< double, 3 > | CalculateMomentsOfElement (unsigned index) |
double | GetEdgeLength (unsigned elementIndex1, unsigned elementIndex2) |
c_vector< double, SPACE_DIM > | GetUnitNormalToFace (VertexElement< ELEMENT_DIM-1, SPACE_DIM > *pFace) |
virtual double | GetAreaOfFace (VertexElement< ELEMENT_DIM-1, SPACE_DIM > *pFace) |
c_vector< double, SPACE_DIM > | GetShortAxisOfElement (unsigned index) |
std::set< unsigned > | GetNeighbouringNodeIndices (unsigned nodeIndex) |
std::set< unsigned > | GetNeighbouringNodeNotAlsoInElement (unsigned nodeIndex, unsigned elemIndex) |
std::set< unsigned > | GetNeighbouringElementIndices (unsigned elementIndex) |
template<> | |
VertexMesh (TetrahedralMesh< 2, 2 > &rMesh, bool isPeriodic) | |
template<> | |
VertexMesh (TetrahedralMesh< 3, 3 > &rMesh) | |
Protected Member Functions | |
unsigned | SolveNodeMapping (unsigned index) const |
unsigned | SolveElementMapping (unsigned index) const |
unsigned | SolveBoundaryElementMapping (unsigned index) const |
void | GenerateVerticesFromElementCircumcentres (TetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &rMesh) |
bool | ElementIncludesPoint (const c_vector< double, SPACE_DIM > &rTestPoint, unsigned elementIndex) |
unsigned | GetLocalIndexForElementEdgeClosestToPoint (const c_vector< double, SPACE_DIM > &rTestPoint, unsigned elementIndex) |
template<class Archive > | |
void | save (Archive &archive, const unsigned int version) const |
template<class Archive > | |
void | load (Archive &archive, const unsigned int version) |
Protected Attributes | |
std::vector< VertexElement < ELEMENT_DIM, SPACE_DIM > * > | mElements |
std::vector< VertexElement < ELEMENT_DIM-1, SPACE_DIM > * > | mFaces |
std::map< unsigned, unsigned > | mVoronoiElementIndexMap |
TetrahedralMesh< ELEMENT_DIM, SPACE_DIM > * | mpDelaunayMesh |
Friends | |
class | TestVertexMesh |
class | boost::serialization::access |
A vertex-based mesh class, for use in vertex-based simulations.
Definition at line 63 of file VertexMesh.hpp.
VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh | ( | std::vector< Node< SPACE_DIM > * > | nodes, |
std::vector< VertexElement< ELEMENT_DIM, SPACE_DIM > * > | vertexElements | ||
) |
Default constructor.
nodes | vector of pointers to nodes |
vertexElements | vector of pointers to VertexElements |
Definition at line 41 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetIndex(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::mElements, VertexMesh< ELEMENT_DIM, SPACE_DIM >::mFaces, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshChangesDuringSimulation, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh | ( | std::vector< Node< SPACE_DIM > * > | nodes, |
std::vector< VertexElement< ELEMENT_DIM-1, SPACE_DIM > * > | faces, | ||
std::vector< VertexElement< ELEMENT_DIM, SPACE_DIM > * > | vertexElements | ||
) |
Constructor.
nodes | vector of pointers to nodes |
faces | vector of pointer to VertexElements |
vertexElements | vector of pointers to VertexElement<3,3>s |
Definition at line 105 of file VertexMesh.cpp.
References Node< SPACE_DIM >::AddElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetIndex(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::mElements, VertexMesh< ELEMENT_DIM, SPACE_DIM >::mFaces, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshChangesDuringSimulation, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh | ( | TetrahedralMesh< 2, 2 > & | rMesh, |
bool | isPeriodic = false |
||
) |
Alternative 2D 'Voronoi' constructor. Creates a Voronoi tessellation of a given tetrahedral mesh, which must be Delaunay (see TetrahedralMesh::CheckIsVoronoi).
rMesh | a tetrahedral mesh |
isPeriodic | a boolean that indicates whether the mesh is periodic or not |
VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh | ( | TetrahedralMesh< 3, 3 > & | rMesh | ) |
Alternative 3D 'Voronoi' constructor. Creates a Voronoi tessellation of a given tetrahedral mesh, which must be Delaunay (see TetrahedralMesh::CheckIsVoronoi).
rMesh | a tetrahedral mesh |
VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh | ( | ) |
Default constructor for use by serializer.
Definition at line 455 of file VertexMesh.cpp.
VertexMesh< ELEMENT_DIM, SPACE_DIM >::~VertexMesh | ( | ) | [virtual] |
Destructor.
Definition at line 464 of file VertexMesh.cpp.
VertexMesh< 2, 2 >::VertexMesh | ( | TetrahedralMesh< 2, 2 > & | rMesh, |
bool | isPeriodic | ||
) |
This VertexMesh constructor is currently only defined for 2D meshes.
rMesh | a tetrahedral mesh |
isPeriodic | a boolean that indicates whether the mesh is periodic or not |
Create a std::vector of pairs, where each pair comprises the angle between the centre of the Voronoi element and each node with that node's global index in the Voronoi mesh.
Definition at line 154 of file VertexMesh.cpp.
References MutableElement< ELEMENT_DIM, SPACE_DIM >::AddNode(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GenerateVerticesFromElementCircumcentres(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::mElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshChangesDuringSimulation, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and VertexMesh< ELEMENT_DIM, SPACE_DIM >::mpDelaunayMesh.
VertexMesh< 3, 3 >::VertexMesh | ( | TetrahedralMesh< 3, 3 > & | rMesh | ) |
This VertexMesh constructor is currently only defined for 3D meshes.
rMesh | a tetrahedral mesh |
Create a std::vector of pairs, where each pair comprises the angle between the centre of the Voronoi element and each node with that node's global index in the Voronoi mesh.
Definition at line 245 of file VertexMesh.cpp.
References VertexElement< ELEMENT_DIM, SPACE_DIM >::AddFace(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GenerateVerticesFromElementCircumcentres(), Node< SPACE_DIM >::GetIndex(), Node< SPACE_DIM >::IsBoundaryNode(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::mElements, VertexMesh< ELEMENT_DIM, SPACE_DIM >::mFaces, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshChangesDuringSimulation, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, VertexMesh< ELEMENT_DIM, SPACE_DIM >::mpDelaunayMesh, VertexMesh< ELEMENT_DIM, SPACE_DIM >::mVoronoiElementIndexMap, Node< SPACE_DIM >::rGetContainingElementIndices(), and Node< SPACE_DIM >::rGetLocation().
c_vector< double, 3 > VertexMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMomentsOfElement | ( | unsigned | index | ) | [virtual] |
Compute the second moments of area of a given 2D element.
index | the global index of a specified vertex element |
Definition at line 1212 of file VertexMesh.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes().
void VertexMesh< ELEMENT_DIM, SPACE_DIM >::Clear | ( | ) | [virtual] |
Delete mNodes, mFaces and mElements.
Reimplemented in MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >, MutableVertexMesh< 2, 2 >, and MutableVertexMesh< DIM, DIM >.
Definition at line 550 of file VertexMesh.cpp.
Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh().
void VertexMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader | ( | AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > & | rMeshReader | ) |
Construct the mesh using a MeshReader.
rMeshReader | the mesh reader |
Referenced by VertexMesh< DIM, DIM >::load().
bool VertexMesh< ELEMENT_DIM, SPACE_DIM >::ElementIncludesPoint | ( | const c_vector< double, SPACE_DIM > & | rTestPoint, |
unsigned | elementIndex | ||
) | [protected] |
Test whether a given point lies inside a given element.
We use a ray-casting algorithm, which relies on the following result: if the point in question is not on the boundary of the element, then the number of intersections is an even number if the point is outside, and it is odd if inside.
Currently the method is coded 'strictly', such that points lying on an edge or at a vertex are considered to lie outside the element.
rTestPoint | the point to test |
elementIndex | global index of the element in the mesh |
Definition at line 1096 of file VertexMesh.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes().
void VertexMesh< ELEMENT_DIM, SPACE_DIM >::GenerateVerticesFromElementCircumcentres | ( | TetrahedralMesh< ELEMENT_DIM, SPACE_DIM > & | rMesh | ) | [protected] |
Populate mNodes with locations corresponding to the element circumcentres of a given TetrahedralMesh. Used by 'Voronoi' constructors.
rMesh | a tetrahedral mesh |
Definition at line 390 of file VertexMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetInverseJacobianForElement(), and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements().
Referenced by VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh().
c_vector< double, SPACE_DIM > VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetAreaGradientOfElementAtNode | ( | VertexElement< ELEMENT_DIM, SPACE_DIM > * | pElement, |
unsigned | localIndex | ||
) |
Compute the area gradient of a 2D element at one of its nodes.
N.B. This calls GetVectorFromAtoB(), which can be overridden in daughter classes for non-Euclidean metrics.
pElement | pointer to a specified vertex element |
localIndex | local index of a node in this element |
Definition at line 1312 of file VertexMesh.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes().
Referenced by NagaiHondaForce< DIM >::AddForceContribution().
double VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetAreaOfFace | ( | VertexElement< ELEMENT_DIM-1, SPACE_DIM > * | pFace | ) | [virtual] |
Get the area of a given face in 3D. This is achieved by projecting the face onto a 2D plane. To avoid degeneracy and optimize robustness, we choose to ignore the dimension of the component of the unit normal to the plane with the greatest absolute value.
This needs to be overridden in daughter classes for non-Euclidean metrics.
pFace | a face in the mesh |
Definition at line 1419 of file VertexMesh.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes().
c_vector< double, SPACE_DIM > VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetCentroidOfElement | ( | unsigned | index | ) | [virtual] |
Compute the centroid of an element.
This needs to be overridden in daughter classes for non-Euclidean metrics.
index | the global index of a specified vertex element |
Reimplemented in Cylindrical2dVertexMesh.
Definition at line 620 of file VertexMesh.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), and NEVER_REACHED.
unsigned VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetDelaunayNodeIndexCorrespondingToVoronoiElementIndex | ( | unsigned | elementIndex | ) |
Given the global index of an element in the Voronoi mesh, returns the global index of the corresponding element in the Delaunay mesh.
elementIndex | global index of an element in the Voronoi mesh |
Definition at line 496 of file VertexMesh.cpp.
References UNSIGNED_UNSET.
double VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetEdgeLength | ( | unsigned | elementIndex1, |
unsigned | elementIndex2 | ||
) |
Get the length of the edge separating two given elements in 2D.
elementIndex1 | index of an element in the mesh |
elementIndex2 | index of an element in the mesh |
Definition at line 416 of file VertexMesh.cpp.
References EXCEPTION.
VertexElement< ELEMENT_DIM, SPACE_DIM > * VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElement | ( | unsigned | index | ) | const |
index | the global index of a specified vertex element. |
Definition at line 604 of file VertexMesh.cpp.
Referenced by Cylindrical2dVertexMesh::GetCentroidOfElement(), and Cylindrical2dVertexMesh::GetVolumeOfElement().
VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexElementIterator VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorBegin | ( | bool | skipDeletedElements = true | ) | [inline] |
Get an iterator to the first element in the mesh.
skipDeletedElements | whether to include deleted element |
Definition at line 605 of file VertexMesh.hpp.
Referenced by WelikyOsterForce< DIM >::AddForceContribution(), VertexBasedCellPopulation< DIM >::WriteVtkResultsToFile(), MeshBasedCellPopulationWithGhostNodes< DIM >::WriteVtkResultsToFile(), and VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteVtkUsingMesh().
VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexElementIterator VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorEnd | ( | ) | [inline] |
Get an iterator to one past the last element in the mesh.
Definition at line 612 of file VertexMesh.hpp.
Referenced by WelikyOsterForce< DIM >::AddForceContribution(), and VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteVtkUsingMesh().
VertexElement< ELEMENT_DIM-1, SPACE_DIM > * VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetFace | ( | unsigned | index | ) | const |
index | the global index of a specified face. |
Definition at line 612 of file VertexMesh.cpp.
unsigned VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetLocalIndexForElementEdgeClosestToPoint | ( | const c_vector< double, SPACE_DIM > & | rTestPoint, |
unsigned | elementIndex | ||
) | [protected] |
Get the local index of a given element which is the start vertex of the edge of the element that the overlapping point rTestPoint is closest to.
rTestPoint | the point to test |
elementIndex | global index of the element in the mesh |
Definition at line 1162 of file VertexMesh.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes().
std::set< unsigned > VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringElementIndices | ( | unsigned | elementIndex | ) |
Given an element, find a set containing the indices of its neighbouring elements.
elementIndex | global index of the element |
Definition at line 748 of file VertexMesh.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), and Node< SPACE_DIM >::rGetContainingElementIndices().
Referenced by DeltaNotchOffLatticeSimulation< DIM >::UpdateCellData().
std::set< unsigned > VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringNodeIndices | ( | unsigned | nodeIndex | ) |
Given a node, find a set containing the indices of its neighbouring nodes.
nodeIndex | global index of the node |
Definition at line 676 of file VertexMesh.cpp.
std::set< unsigned > VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringNodeNotAlsoInElement | ( | unsigned | nodeIndex, |
unsigned | elemIndex | ||
) |
Given a node and one of its containing elements, find a set containing the indices of those neighbouring node(s) that are NOT also in the element.
Note that we allow for more than one such index, since there is no reason a priori to assume that each node is contained by exactly three elements.
nodeIndex | global index of the node |
elemIndex | global index of the element |
Definition at line 707 of file VertexMesh.cpp.
References EXCEPTION, AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes().
c_vector< double, SPACE_DIM > VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNextEdgeGradientOfElementAtNode | ( | VertexElement< ELEMENT_DIM, SPACE_DIM > * | pElement, |
unsigned | localIndex | ||
) |
Compute the gradient of the edge of a 2D element starting at its nodes.
N.B. This calls GetVectorFromAtoB(), which can be overridden in daughter classes for non-Euclidean metrics.
pElement | pointer to a specified vertex element |
localIndex | local index of a node in this element |
Definition at line 1358 of file VertexMesh.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes().
Referenced by NagaiHondaForce< DIM >::AddForceContribution().
unsigned VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllElements | ( | ) | const |
Definition at line 590 of file VertexMesh.cpp.
unsigned VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements | ( | ) | const [virtual] |
Reimplemented in MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >, MutableVertexMesh< 2, 2 >, and MutableVertexMesh< DIM, DIM >.
Definition at line 583 of file VertexMesh.cpp.
unsigned VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNumFaces | ( | ) | const [virtual] |
Definition at line 597 of file VertexMesh.cpp.
unsigned VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes | ( | ) | const [virtual] |
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >, MutableVertexMesh< 2, 2 >, and MutableVertexMesh< DIM, DIM >.
Definition at line 576 of file VertexMesh.cpp.
Referenced by VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh(), and VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteVtkUsingMesh().
c_vector< double, SPACE_DIM > VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetPerimeterGradientOfElementAtNode | ( | VertexElement< ELEMENT_DIM, SPACE_DIM > * | pElement, |
unsigned | localIndex | ||
) |
Compute the gradient of the perimeter of a 2D element at its nodes. This returns the sum of GetPreviousEdgeGradientAtNode() and GetNextEdgeGradientAtNode().
pElement | pointer to a specified vertex element |
localIndex | local index of a node in this element |
Definition at line 1377 of file VertexMesh.cpp.
Referenced by NagaiHondaForce< DIM >::AddForceContribution().
c_vector< double, SPACE_DIM > VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetPreviousEdgeGradientOfElementAtNode | ( | VertexElement< ELEMENT_DIM, SPACE_DIM > * | pElement, |
unsigned | localIndex | ||
) |
Compute the gradient of the edge of a 2D element ending at its nodes.
N.B. This calls GetVectorFromAtoB(), which can be overridden in daughter classes for non-Euclidean metrics.
pElement | pointer to a specified vertex element |
localIndex | local index of a node in this element |
Definition at line 1336 of file VertexMesh.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes().
Referenced by NagaiHondaForce< DIM >::AddForceContribution().
c_vector< double, SPACE_DIM > VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetShortAxisOfElement | ( | unsigned | index | ) |
Calculate the vector of the shortest axis of a given 2D element. This is the eigenvector associated with the largest eigenvalue of the inertial tensor. If the polygon is regular then the eigenvalues are the same, so we return a random unit vector.
index | the global index of a specified vertex element |
Definition at line 1269 of file VertexMesh.cpp.
References RandomNumberGenerator::Instance(), and RandomNumberGenerator::ranf().
double VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetSurfaceAreaOfElement | ( | unsigned | index | ) | [virtual] |
Compute the surface area (or perimeter in 2D) of an element.
This needs to be overridden in daughter classes for non-Euclidean metrics.
index | the global index of a specified vertex element |
Definition at line 1058 of file VertexMesh.cpp.
References VertexElement< ELEMENT_DIM, SPACE_DIM >::GetFace(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), VertexElement< ELEMENT_DIM, SPACE_DIM >::GetNumFaces(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes().
Referenced by WelikyOsterForce< DIM >::AddForceContribution(), and NagaiHondaForce< DIM >::AddForceContribution().
c_vector< double, SPACE_DIM > VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetUnitNormalToFace | ( | VertexElement< ELEMENT_DIM-1, SPACE_DIM > * | pFace | ) |
Compute the unit normal vector to a given face in 3D. This is achieved from a triangle of vertices of the face. Note: this may return the outward or inward normal, depending on your point of view.
pFace | a face in the mesh |
Definition at line 1394 of file VertexMesh.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode().
unsigned SPACE_DIM c_vector< double, SPACE_DIM > VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB | ( | const c_vector< double, SPACE_DIM > & | rLocationA, |
const c_vector< double, SPACE_DIM > & | rLocationB | ||
) | [virtual] |
Overridden GetVectorFromAtoB() method. Returns a vector between two points in space.
If the mesh is being used to represent a Voronoi tessellation, and mpDelaunayMesh is not NULL, then use that to compute GetVectorFromAtoB.
rLocationA | a c_vector of coordinates |
rLocationB | a c_vector of coordinates |
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 982 of file VertexMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB().
Referenced by WelikyOsterForce< DIM >::AddForceContribution().
double VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVolumeOfElement | ( | unsigned | index | ) | [virtual] |
Get the volume (or area in 2D, or length in 1D) of an element.
This needs to be overridden in daughter classes for non-Euclidean metrics.
index | the global index of a specified vertex element |
Reimplemented in Cylindrical2dVertexMesh.
Definition at line 999 of file VertexMesh.cpp.
References VertexElement< ELEMENT_DIM, SPACE_DIM >::GetFace(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), VertexElement< ELEMENT_DIM, SPACE_DIM >::GetNumFaces(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes().
Referenced by WelikyOsterForce< DIM >::AddForceContribution(), and NagaiHondaForce< DIM >::AddForceContribution().
unsigned VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVoronoiElementIndexCorrespondingToDelaunayNodeIndex | ( | unsigned | nodeIndex | ) |
Given the global index of a node in the Delaunay mesh, returns the global index of the corresponding element in the Voronoi mesh or throws an exception if this does not exist.
nodeIndex | global index of a node in the Delaunay mesh |
Definition at line 523 of file VertexMesh.cpp.
References EXCEPTION, and UNSIGNED_UNSET.
void VertexMesh< ELEMENT_DIM, SPACE_DIM >::load | ( | Archive & | archive, |
const unsigned int | version | ||
) | [inline, protected] |
Loads a mesh by using VertexMeshReader and the location in ArchiveLocationInfo.
archive | the archive |
version | the current version of this class |
Definition at line 188 of file VertexMesh.hpp.
void VertexMesh< ELEMENT_DIM, SPACE_DIM >::save | ( | Archive & | archive, |
const unsigned int | version | ||
) | const [inline, protected] |
Archive the VertexMesh and its member variables. Note that this will write out a VertexMeshWriter file to wherever ArchiveLocationInfo has specified.
archive | the archive |
version | the current version of this class |
Definition at line 170 of file VertexMesh.hpp.
unsigned VertexMesh< ELEMENT_DIM, SPACE_DIM >::SolveBoundaryElementMapping | ( | unsigned | index | ) | const [protected] |
Solve boundary element mapping method. This overridden method is required as it is pure virtual in the base class.
index | the global index of the boundary element |
Definition at line 487 of file VertexMesh.cpp.
unsigned VertexMesh< ELEMENT_DIM, SPACE_DIM >::SolveElementMapping | ( | unsigned | index | ) | const [protected] |
Solve element mapping method. This overridden method is required as it is pure virtual in the base class.
index | the global index of the element |
Definition at line 479 of file VertexMesh.cpp.
unsigned VertexMesh< ELEMENT_DIM, SPACE_DIM >::SolveNodeMapping | ( | unsigned | index | ) | const [protected, virtual] |
Solve node mapping method. This overridden method is required as it is pure virtual in the base class.
index | the global index of the node |
Implements AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 471 of file VertexMesh.cpp.
friend class boost::serialization::access [friend] |
Needed for serialization.
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >, Cylindrical2dVertexMesh, MutableVertexMesh< 2, 2 >, and MutableVertexMesh< DIM, DIM >.
Definition at line 160 of file VertexMesh.hpp.
std::vector<VertexElement<ELEMENT_DIM, SPACE_DIM>*> VertexMesh< ELEMENT_DIM, SPACE_DIM >::mElements [protected] |
Vector of pointers to VertexElements.
Definition at line 70 of file VertexMesh.hpp.
Referenced by VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexElementIterator::IsAtEnd(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::MutableVertexMesh(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexElementIterator::VertexElementIterator(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh().
std::vector<VertexElement<ELEMENT_DIM-1, SPACE_DIM>*> VertexMesh< ELEMENT_DIM, SPACE_DIM >::mFaces [protected] |
Vector of pointers to VertexElements.
Definition at line 73 of file VertexMesh.hpp.
Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::MutableVertexMesh(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh().
TetrahedralMesh<ELEMENT_DIM, SPACE_DIM>* VertexMesh< ELEMENT_DIM, SPACE_DIM >::mpDelaunayMesh [protected] |
Delaunay tetrahedral mesh that is used only when the vertex mesh is used to represent a Voronoi tessellation. A pointer to the Delaunay mesh is required in this case because the Delaunay mesh may be a subclass of TetrahedralMesh, which overrides methods such as GetVectorFromAtoB().
Definition at line 91 of file VertexMesh.hpp.
Referenced by VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh().
std::map<unsigned, unsigned> VertexMesh< ELEMENT_DIM, SPACE_DIM >::mVoronoiElementIndexMap [protected] |
Map that is used only when the vertex mesh is used to represent a Voronoi tessellation, the dual to a Delaunay tetrahedral mesh. The map consists of pairs (index1, index2), where index1 denotes the global index of a node in the Delaunay mesh and index2 denotes the global index of the corresponding element in the Voronoi mesh.
Definition at line 82 of file VertexMesh.hpp.
Referenced by VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh().