Chaste
Release::2017.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) |
unsigned | GetRosetteRankOfElement (unsigned index) |
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) |
double | GetElongationShapeFactorOfElement (unsigned elementIndex) |
double | CalculateUnitNormalToFaceWithArea (VertexElement< ELEMENT_DIM-1, SPACE_DIM > *pFace, c_vector< double, SPACE_DIM > &rNormal) |
virtual double | CalculateAreaOfFace (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) | |
Public Member Functions inherited from AbstractMesh< ELEMENT_DIM, SPACE_DIM > | |
NodeIterator | GetNodeIteratorBegin (bool skipDeletedNodes=true) |
NodeIterator | GetNodeIteratorEnd () |
AbstractMesh () | |
virtual | ~AbstractMesh () |
unsigned | GetNumBoundaryNodes () const |
virtual unsigned | GetNumAllNodes () const |
unsigned | GetNumNodeAttributes () const |
Node< SPACE_DIM > * | GetNode (unsigned index) const |
virtual Node< SPACE_DIM > * | GetNodeOrHaloNode (unsigned index) const |
Node< SPACE_DIM > * | GetNodeFromPrePermutationIndex (unsigned index) const |
virtual void | ReadNodesPerProcessorFile (const std::string &rNodesPerProcessorFile) |
virtual DistributedVectorFactory * | GetDistributedVectorFactory () |
virtual void | SetDistributedVectorFactory (DistributedVectorFactory *pFactory) |
virtual void | PermuteNodes () |
BoundaryNodeIterator | GetBoundaryNodeIteratorBegin () const |
BoundaryNodeIterator | GetBoundaryNodeIteratorEnd () const |
std::string | GetMeshFileBaseName () const |
bool | IsMeshOnDisk () const |
const std::vector< unsigned > & | rGetNodePermutation () const |
double | GetDistanceBetweenNodes (unsigned indexA, unsigned indexB) |
virtual double | GetWidth (const unsigned &rDimension) const |
virtual ChasteCuboid< SPACE_DIM > | CalculateBoundingBox () const |
virtual unsigned | GetNearestNodeIndex (const ChastePoint< SPACE_DIM > &rTestPoint) |
virtual void | Scale (const double xFactor=1.0, const double yFactor=1.0, const double zFactor=1.0) |
virtual void | Translate (const c_vector< double, SPACE_DIM > &rDisplacement) |
void | Translate (const double xMovement=0.0, const double yMovement=0.0, const double zMovement=0.0) |
virtual void | Rotate (c_matrix< double, SPACE_DIM, SPACE_DIM > rotationMatrix) |
void | Rotate (c_vector< double, 3 > axis, double angle) |
void | RotateX (const double theta) |
void | RotateY (const double theta) |
void | RotateZ (const double theta) |
void | Rotate (double theta) |
virtual void | RefreshMesh () |
bool | IsMeshChanging () const |
unsigned | CalculateMaximumContainingElementsPerProcess () const |
void | SetMeshHasChangedSinceLoading () |
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 Member Functions inherited from AbstractMesh< ELEMENT_DIM, SPACE_DIM > | |
virtual void | SetElementOwnerships () |
ChasteCuboid< SPACE_DIM > | CalculateBoundingBox (const std::vector< Node< SPACE_DIM > * > &rNodes) const |
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 |
Protected Attributes inherited from AbstractMesh< ELEMENT_DIM, SPACE_DIM > | |
std::vector< Node< SPACE_DIM > * > | mNodes |
std::vector< Node< SPACE_DIM > * > | mBoundaryNodes |
DistributedVectorFactory * | mpDistributedVectorFactory |
std::vector< unsigned > | mNodePermutation |
std::string | mMeshFileBaseName |
bool | mMeshChangesDuringSimulation |
Friends | |
class | TestVertexMesh |
class | boost::serialization::access |
Additional Inherited Members | |
Public Types inherited from AbstractMesh< ELEMENT_DIM, SPACE_DIM > | |
typedef std::vector< Node< SPACE_DIM > * >::const_iterator | BoundaryNodeIterator |
A vertex-based mesh class, in which elements may contain different numbers of nodes. This is facilitated by the VertexElement class.
This class has two applications in the cell_based code.
First, VertexMesh is used as a member of the MeshBasedCellPopulation class to represent a Voronoi tessellation, the dual to a Delaunay mesh, which allows the shapes of cells to be visualised in simulations of a class of off-lattice cell centre-based models.
Second, VertexMesh serves as a parent class for MutableVertexMesh, which is used as a member of the VertexBasedCellPopulation class to represent the junctional network of cells that forms the basis of simulations of off-lattice vertex-based models.
Definition at line 74 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 104 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 461 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshChangesDuringSimulation, and VertexMesh< ELEMENT_DIM, SPACE_DIM >::mpDelaunayMesh.
Referenced by VertexMesh< DIM, DIM >::load().
|
virtual |
Destructor.
Definition at line 469 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::Clear().
Referenced by VertexMesh< DIM, DIM >::load().
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 152 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 241 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(), Node< SPACE_DIM >::rGetLocation(), and VectorProduct().
|
virtual |
Get the area of a given face in 3D. Uses CalculateUnitNormalToFaceWithArea
This needs to be overridden in daughter classes for non-Euclidean metrics.
pFace | a face in the mesh |
Definition at line 1524 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::CalculateUnitNormalToFaceWithArea(), EXPORT_TEMPLATE_CLASS_ALL_DIMS, and NEVER_REACHED.
Referenced by VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetSurfaceAreaOfElement(), and VertexMesh< DIM, DIM >::load().
|
virtual |
Compute the second moments and product moment of area for a given 2D element about its centroid. These are:
I_xx, the second moment of area about an axis through the centroid of the element parallel to the x-axis;
I_yy, the second moment of area about an axis through the centroid of the element parallel to the y-axis;
and I_xy, product moment of area through the centroid of the element.
Formulae for these quantities may be found e.g. in the following reference:
Mechanics of Materials James M. Gere (Author), Barry J. Goodno. Cengage Learning; 8th edition (January 1, 2012)
This method is used within GetShortAxisOfElement() to compute the direction of the shortest principal axis passing through the centroid, or 'short axis', of the element.
Note that by definition, the second moments of area must be non-negative, while the product moment of area may not be.
index | the global index of a specified vertex element |
Definition at line 1311 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetCentroidOfElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB().
Referenced by VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElongationShapeFactorOfElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetShortAxisOfElement(), and VertexMesh< DIM, DIM >::load().
double VertexMesh< ELEMENT_DIM, SPACE_DIM >::CalculateUnitNormalToFaceWithArea | ( | VertexElement< ELEMENT_DIM-1, SPACE_DIM > * | pFace, |
c_vector< double, SPACE_DIM > & | rNormal | ||
) |
Compute the unit normal vector to a given face in 3D. This is achieved by calculating scaled normal, which is the effective sum of signed areas of triangle forming the face. Note: this may return the outward or inward normal, depending on the face chirality.
pFace | a face in the mesh |
rNormal | vector in which to return the unit normal |
Definition at line 1495 of file VertexMesh.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB(), and VectorProduct().
Referenced by VertexMesh< ELEMENT_DIM, SPACE_DIM >::CalculateAreaOfFace(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVolumeOfElement(), and VertexMesh< DIM, DIM >::load().
|
virtual |
Delete mNodes, mFaces and mElements.
Reimplemented in MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >, MutableVertexMesh< 2, 2 >, and MutableVertexMesh< DIM, DIM >.
Definition at line 573 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::mElements, VertexMesh< ELEMENT_DIM, SPACE_DIM >::mFaces, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), VertexMesh< DIM, DIM >::load(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh(), 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< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringElementIndices(), and VertexMesh< DIM, DIM >::load().
|
protected |
Test whether a given point lies inside a given element.
We use a winding number test, which counts the number of times the polygon associated with the element winds around the given point. The point is outside only when this "winding number" vanishes; otherwise, the point is inside.
One must decide whether a point on the polygon's boundary is inside or outside: we adopt the standard convention that a point on a left or bottom edge is inside, and a point on a right or top edge is outside. This way, if two distinct polygons share a common boundary segment, then a point on that segment will be in one polygon or the other, but not both at the same time.
rTestPoint | the point to test |
elementIndex | global index of the element in the mesh |
Definition at line 1128 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB().
Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForIntersections().
|
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 384 of file VertexMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetInverseJacobianForElement(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by Cylindrical2dVertexMesh::Cylindrical2dVertexMesh(), and 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 1418 of file VertexMesh.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB().
Referenced by FarhadifarForce< DIM >::AddForceContribution(), NagaiHondaForce< DIM >::AddForceContribution(), and VertexMesh< DIM, DIM >::load().
|
virtual |
Compute the centroid of an element.
A formula for the centroid of a plane polygon may be found e.g. in the following reference:
Mechanics of Materials James M. Gere (Author), Barry J. Goodno. Cengage Learning; 8th edition (January 1, 2012)
This needs to be overridden in daughter classes for non-Euclidean metrics.
index | the global index of a specified vertex element |
Definition at line 636 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB(), and NEVER_REACHED.
Referenced by VertexMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMomentsOfElement(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForIntersections(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DivideElementAlongGivenAxis(), VertexBasedCellPopulation< DIM >::GetLocationOfCellCentre(), VertexBasedCellPopulation< DIM >::GetTetrahedralMeshForPdeModifier(), VertexMesh< DIM, DIM >::load(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformProtorosetteResolution(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformRosetteRankDecrease(), and MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT2Swap().
unsigned VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetDelaunayNodeIndexCorrespondingToVoronoiElementIndex | ( | unsigned | elementIndex | ) |
elementIndex | global index of an element in the Voronoi mesh |
Definition at line 497 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::mVoronoiElementIndexMap, and UNSIGNED_UNSET.
Referenced by VertexMesh< DIM, DIM >::load(), VoronoiDataWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), CellPopulationAreaWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), and MeshBasedCellPopulationWithGhostNodes< DIM >::WriteVtkResultsToFile().
double VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetEdgeLength | ( | unsigned | elementIndex1, |
unsigned | elementIndex2 | ||
) |
elementIndex1 | index of an element in the mesh |
elementIndex2 | index of an element in the mesh |
Definition at line 409 of file VertexMesh.cpp.
References EXCEPTION, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistanceBetweenNodes(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
Referenced by VertexMesh< DIM, DIM >::load(), and HeterotypicBoundaryLengthWriter< ELEMENT_DIM, SPACE_DIM >::Visit().
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 622 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
Referenced by VertexMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMomentsOfElement(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForSwapsFromShortEdges(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DivideEdge(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DivideElementAlongGivenAxis(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::ElementIncludesPoint(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetCentroidOfElement(), VertexBasedCellPopulation< DIM >::GetElement(), VertexBasedCellPopulation< DIM >::GetElementCorrespondingToCell(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetLocalIndexForElementEdgeClosestToPoint(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringElementIndices(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringNodeIndices(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringNodeNotAlsoInElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetRosetteRankOfElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetSurfaceAreaOfElement(), VertexBasedCellPopulation< DIM >::GetTetrahedralMeshForPdeModifier(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVolumeOfElement(), VertexMesh< DIM, DIM >::load(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformIntersectionSwap(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformProtorosetteResolution(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformRosetteRankDecrease(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT2Swap(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT3Swap(), and CellPopulationElementWriter< ELEMENT_DIM, SPACE_DIM >::Visit().
|
inline |
skipDeletedElements | whether to include deleted element |
Definition at line 668 of file VertexMesh.hpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::mElements, and VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexElementIterator::VertexElementIterator().
Referenced by WelikyOsterForce< DIM >::AddForceContribution(), FarhadifarForce< DIM >::AddForceContribution(), NagaiHondaForce< DIM >::AddForceContribution(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForIntersections(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForSwapsFromShortEdges(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForT2Swaps(), Toroidal2dVertexMesh::GetMeshForVtk(), Cylindrical2dVertexMesh::GetMeshForVtk(), VertexMesh< DIM, DIM >::load(), VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::MakeVtkMesh(), VoronoiDataWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), CellPopulationAreaWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), VertexBasedCellPopulation< DIM >::WriteVtkResultsToFile(), and MeshBasedCellPopulationWithGhostNodes< DIM >::WriteVtkResultsToFile().
|
inline |
Definition at line 675 of file VertexMesh.hpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::mElements, and VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexElementIterator::VertexElementIterator().
Referenced by WelikyOsterForce< DIM >::AddForceContribution(), FarhadifarForce< DIM >::AddForceContribution(), NagaiHondaForce< DIM >::AddForceContribution(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForIntersections(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForSwapsFromShortEdges(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForT2Swaps(), Toroidal2dVertexMesh::GetMeshForVtk(), Cylindrical2dVertexMesh::GetMeshForVtk(), VertexMesh< DIM, DIM >::load(), VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::MakeVtkMesh(), VoronoiDataWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), CellPopulationAreaWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), VertexBasedCellPopulation< DIM >::WriteVtkResultsToFile(), and MeshBasedCellPopulationWithGhostNodes< DIM >::WriteVtkResultsToFile().
double VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElongationShapeFactorOfElement | ( | unsigned | elementIndex | ) |
Get the elongation shape factor of a given element. This is defined as the square root of the ratio of the two second moments of the element around its principal axes.
elementIndex | index of an element in the mesh |
Definition at line 444 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMomentsOfElement().
Referenced by VertexMesh< DIM, DIM >::load().
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 629 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::mFaces.
Referenced by VertexMesh< DIM, DIM >::load().
|
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 1247 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB(), and SmallPow().
Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformIntersectionSwap(), and MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT3Swap().
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 777 of file VertexMesh.cpp.
References VertexElementData::AttributeValue, ElementData::AttributeValue, VertexMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), EXCEPTION, VertexElementData::Faces, VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextElementData(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextNode(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumElementAttributes(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::HasNodePermutation(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::mElements, VertexMesh< ELEMENT_DIM, SPACE_DIM >::mFaces, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, VertexElementData::NodeIndices, ElementData::NodeIndices, AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset(), Node< SPACE_DIM >::rGetContainingElementIndices(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::SetAttribute(), and UNUSED_OPT.
Referenced by IsolatedLabelledCellKiller< DIM >::CheckAndLabelCellsForApoptosisOrDeath(), VertexBasedCellPopulation< DIM >::GetNeighbouringLocationIndices(), VertexMesh< DIM, DIM >::load(), and HeterotypicBoundaryLengthWriter< ELEMENT_DIM, SPACE_DIM >::Visit().
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 707 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNode().
Referenced by VertexBasedCellPopulation< DIM >::GetNeighbouringNodeIndices(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringNodeNotAlsoInElement(), and VertexMesh< DIM, DIM >::load().
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 737 of file VertexMesh.cpp.
References EXCEPTION, VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringNodeIndices(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes().
Referenced by VertexMesh< DIM, DIM >::load().
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 1462 of file VertexMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistanceBetweenNodes(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB().
Referenced by FarhadifarForce< DIM >::AddForceContribution(), NagaiHondaForce< DIM >::AddForceContribution(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetPerimeterGradientOfElementAtNode(), and VertexMesh< DIM, DIM >::load().
unsigned VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllElements | ( | ) | const |
Definition at line 610 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
Referenced by T2SwapCellKiller< DIM >::CheckAndLabelCellsForApoptosisOrDeath(), VertexMesh< DIM, DIM >::load(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::ReMesh(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::RemoveDeletedNodesAndElements(), and VertexBasedCellPopulation< DIM >::Update().
|
virtual |
Reimplemented in MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >, MutableVertexMesh< 2, 2 >, and MutableVertexMesh< DIM, DIM >.
Definition at line 604 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
Referenced by VertexMesh< DIM, DIM >::load(), and MeshBasedCellPopulationWithGhostNodes< DIM >::WriteVtkResultsToFile().
|
virtual |
Definition at line 616 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::mFaces.
Referenced by VertexMesh< DIM, DIM >::load().
|
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 598 of file VertexMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by VertexMesh< DIM, DIM >::load(), and VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::MakeVtkMesh().
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 1480 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNextEdgeGradientOfElementAtNode(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetPreviousEdgeGradientOfElementAtNode().
Referenced by VertexMesh< DIM, DIM >::load().
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 1441 of file VertexMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistanceBetweenNodes(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB().
Referenced by VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetPerimeterGradientOfElementAtNode(), VertexMesh< DIM, DIM >::load(), and MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT3Swap().
unsigned VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetRosetteRankOfElement | ( | unsigned | index | ) |
Get the "rosette rank" of an element.
This is defined as the maximum number of elements shared by any node in the specified element.
index | the global index of a specified vertex element |
Definition at line 549 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNode(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes().
Referenced by VertexBasedCellPopulation< DIM >::GetRosetteRankOfCell(), and VertexMesh< DIM, DIM >::load().
c_vector< double, SPACE_DIM > VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetShortAxisOfElement | ( | unsigned | index | ) |
Compute the direction of the shortest principal axis passing through the centroid, or 'short axis', of a given element. This is the eigenvector associated with the eigenvalue of largest magnitude of the inertia matrix
J = ( I_xx -I_xy ) ( -I_xy I_yy )
whose entries are computed by calling the method CalculateMomentsOfElement().
Note that if the nodes owned by the element are supplied in clockwise rather than anticlockwise manner, or if this arises when any periodicity is enforced, then the sign of each moment may be incorrect change. This means that we need to consider the eigenvalue of largest magnitude rather than largest value when computing the short axis of the element.
If the element is a regular polygon then the eigenvalues of the inertia tensor are equal: in this case we return a random unit vector.
This method is only implemented in 2D at present.
index | the global index of a specified vertex element |
Definition at line 1365 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMomentsOfElement(), RandomNumberGenerator::Instance(), and RandomNumberGenerator::ranf().
Referenced by ShortAxisVertexBasedDivisionRule< SPACE_DIM >::CalculateCellDivisionVector(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DivideElementAlongShortAxis(), and VertexMesh< DIM, DIM >::load().
|
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 1092 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::CalculateAreaOfFace(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistanceBetweenNodes(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), 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(), FarhadifarForce< DIM >::AddForceContribution(), NagaiHondaForce< DIM >::AddForceContribution(), VertexMesh< DIM, DIM >::load(), and VoronoiDataWriter< ELEMENT_DIM, SPACE_DIM >::Visit().
|
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 1018 of file VertexMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::mpDelaunayMesh.
Referenced by WelikyOsterForce< DIM >::AddForceContribution(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMomentsOfElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::CalculateUnitNormalToFaceWithArea(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForIntersections(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DivideEdge(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DivideElementAlongGivenAxis(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::ElementIncludesPoint(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetAreaGradientOfElementAtNode(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetCentroidOfElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetLocalIndexForElementEdgeClosestToPoint(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNextEdgeGradientOfElementAtNode(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetPreviousEdgeGradientOfElementAtNode(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVolumeOfElement(), VertexMesh< DIM, DIM >::load(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformNodeMerge(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT1Swap(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT3Swap(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformVoidRemoval(), and MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::WidenEdgeOrCorrectIntersectionLocationIfNecessary().
|
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 |
Definition at line 1034 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::CalculateUnitNormalToFaceWithArea(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), VertexElement< ELEMENT_DIM, SPACE_DIM >::GetFace(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeLocation(), VertexElement< ELEMENT_DIM, SPACE_DIM >::GetNumFaces(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB().
Referenced by WelikyOsterForce< DIM >::AddForceContribution(), FarhadifarForce< DIM >::AddForceContribution(), NagaiHondaForce< DIM >::AddForceContribution(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForT2Swaps(), Toroidal2dVertexMesh::ConstructFromMeshReader(), VertexBasedCellPopulation< DIM >::GetVolumeOfCell(), VertexMesh< DIM, DIM >::load(), VoronoiDataWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), and CellPopulationAreaWriter< ELEMENT_DIM, SPACE_DIM >::Visit().
unsigned VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVoronoiElementIndexCorrespondingToDelaunayNodeIndex | ( | unsigned | nodeIndex | ) |
nodeIndex | global index of a node in the Delaunay mesh |
Definition at line 523 of file VertexMesh.cpp.
References EXCEPTION, VertexMesh< ELEMENT_DIM, SPACE_DIM >::mVoronoiElementIndexMap, and UNSIGNED_UNSET.
Referenced by VertexMesh< DIM, DIM >::load().
|
inlineprotected |
Load a mesh by using VertexMeshReader and the location in ArchiveLocationInfo.
archive | the archive |
version | the current version of this class |
Definition at line 202 of file VertexMesh.hpp.
|
inlineprotected |
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 184 of file VertexMesh.hpp.
|
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 489 of file VertexMesh.cpp.
|
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 482 of file VertexMesh.cpp.
References VertexMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
|
protectedvirtual |
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 475 of file VertexMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
|
friend |
Needed for serialization.
Definition at line 174 of file VertexMesh.hpp.
|
protected |
Vector of pointers to VertexElements.
Definition at line 81 of file VertexMesh.hpp.
Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::AddElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), Toroidal2dVertexMesh::ConstructFromMeshReader(), Cylindrical2dVertexMesh::Cylindrical2dVertexMesh(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DeleteElementPriorToReMesh(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DivideElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetEdgeLength(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorBegin(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorEnd(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringElementIndices(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllElements(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::IdentifySwapType(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexElementIterator::IsAtEnd(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::MutableVertexMesh(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformIntersectionSwap(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformNodeMerge(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformRosetteRankIncrease(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT1Swap(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::RemoveDeletedNodesAndElements(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::SolveElementMapping(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexElementIterator::VertexElementIterator(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh().
|
protected |
Vector of pointers to VertexElements.
Definition at line 84 of file VertexMesh.hpp.
Referenced by VertexMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetFace(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringElementIndices(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNumFaces(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::MutableVertexMesh(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh().
|
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 102 of file VertexMesh.hpp.
Referenced by Cylindrical2dVertexMesh::Cylindrical2dVertexMesh(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh().
|
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 93 of file VertexMesh.hpp.
Referenced by VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetDelaunayNodeIndexCorrespondingToVoronoiElementIndex(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVoronoiElementIndexCorrespondingToDelaunayNodeIndex(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh().