#include <TetrahedralMesh.hpp>


Public Member Functions | |
| TetrahedralMesh () | |
| TetrahedralMesh (unsigned numElements) | |
| void | ConstructFromMeshReader (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader, bool cullInternalFaces=false) |
| void | ReadNodesPerProcessorFile (const std::string &rNodesPerProcessorFile) |
| double | GetVolume () |
| double | GetSurfaceArea () |
| void | Translate (c_vector< double, SPACE_DIM > displacement) |
| void | Translate (const double xMovement=0.0, const double yMovement=0.0, const double zMovement=0.0) |
| 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) |
| void | RefreshMesh () |
| void | PermuteNodes () |
| void | PermuteNodesWithMetisBinaries (unsigned numProcs) |
| void | PermuteNodes (std::vector< unsigned > &perm) |
| void | ConstructLinearMesh (unsigned width) |
| void | ConstructRectangularMesh (unsigned width, unsigned height, bool stagger=true) |
| void | ConstructCuboid (unsigned width, unsigned height, unsigned depth, bool stagger=false) |
| unsigned | GetContainingElementIndex (ChastePoint< SPACE_DIM > testPoint, bool strict=false, std::set< unsigned > testElements=std::set< unsigned >()) |
| unsigned | GetNearestElementIndex (ChastePoint< SPACE_DIM > testPoint) |
| std::vector< unsigned > | GetContainingElementIndices (ChastePoint< SPACE_DIM > testPoint) |
| virtual void | Clear () |
| std::set< unsigned > | CalculateBoundaryOfFlaggedRegion () |
| double | GetAngleBetweenNodes (unsigned indexA, unsigned indexB) |
| void | UnflagAllElements () |
| void | FlagElementsNotContainingNodes (std::set< unsigned > nodes) |
| virtual void | RefreshJacobianCachedData () |
| virtual void | GetJacobianForElement (unsigned elementIndex, c_matrix< double, SPACE_DIM, SPACE_DIM > &rJacobian, double &rJacobianDeterminant) const |
| virtual void | GetInverseJacobianForElement (unsigned elementIndex, c_matrix< double, SPACE_DIM, ELEMENT_DIM > &rJacobian, double &rJacobianDeterminant, c_matrix< double, ELEMENT_DIM, SPACE_DIM > &rInverseJacobian) const |
| virtual void | GetWeightedDirectionForElement (unsigned elementIndex, c_vector< double, SPACE_DIM > &rWeightedDirection, double &rJacobianDeterminant) const |
| virtual void | GetWeightedDirectionForBoundaryElement (unsigned elementIndex, c_vector< double, SPACE_DIM > &rWeightedDirection, double &rJacobianDeterminant) const |
| EdgeIterator | EdgesBegin () |
| EdgeIterator | EdgesEnd () |
Protected Member Functions | |
| unsigned | SolveNodeMapping (unsigned index) const |
| unsigned | SolveElementMapping (unsigned index) const |
| unsigned | SolveBoundaryElementMapping (unsigned index) const |
Protected Attributes | |
| std::vector< c_vector< double, SPACE_DIM > > | mElementWeightedDirections |
| std::vector< c_matrix< double, SPACE_DIM, ELEMENT_DIM > > | mElementJacobians |
| std::vector< c_matrix< double, ELEMENT_DIM, SPACE_DIM > > | mElementInverseJacobians |
| std::vector< double > | mElementJacobianDeterminants |
| std::vector< c_vector< double, SPACE_DIM > > | mBoundaryElementWeightedDirections |
| std::vector< double > | mBoundaryElementJacobianDeterminants |
Private Member Functions | |
| template<class Archive> | |
| void | serialize (Archive &archive, const unsigned int version) |
Friends | |
| class | TestTetrahedralMesh |
| class | TestCryptSimulation2d |
| class | boost::serialization::access |
Classes | |
| class | EdgeIterator |
Definition at line 55 of file TetrahedralMesh.hpp.
| TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::TetrahedralMesh | ( | ) | [inline] |
Constructor.
Definition at line 50 of file TetrahedralMesh.cpp.
References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Clear().
| TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::TetrahedralMesh | ( | unsigned | numElements | ) |
Constructor which takes in a number of elements.
| numElements |
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::serialize | ( | Archive & | archive, | |
| const unsigned int | version | |||
| ) | [inline, private] |
Serialize the mesh.
| archive | the archive | |
| version | the current version of this class |
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in MutableMesh< ELEMENT_DIM, SPACE_DIM >, NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, Cylindrical2dMesh, MutableMesh< 2, 2 >, and MutableMesh< DIM, DIM >.
Definition at line 70 of file TetrahedralMesh.hpp.
| unsigned TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveNodeMapping | ( | unsigned | index | ) | const [inline, protected, virtual] |
Overridden solve node mapping method.
| index | the global index of the node |
Implements AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1367 of file TetrahedralMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
| unsigned TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveElementMapping | ( | unsigned | index | ) | const [inline, protected, virtual] |
Overridden solve element mapping method.
| index | the global index of the element |
Implements AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1374 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
Referenced by NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetInverseJacobianForElement().
| unsigned TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveBoundaryElementMapping | ( | unsigned | index | ) | const [inline, protected, virtual] |
Overridden solve boundary element mapping method.
| index | the global index of the boundary element |
Implements AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1381 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements.
Referenced by NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetWeightedDirectionForBoundaryElement().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader | ( | AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > & | rMeshReader, | |
| bool | cullInternalFaces = false | |||
| ) | [inline, virtual] |
Construct the mesh using a MeshReader.
| rMeshReader | the mesh reader | |
| cullInternalFaces | whether to cull internal faces (defaults to false) |
Implements AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 56 of file TetrahedralMesh.cpp.
References ElementData::AttributeValue, AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetMeshFileBaseName(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextElementData(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextFaceData(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNextNode(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumElementAttributes(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumFaceAttributes(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumFaces(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshFileBaseName, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, ElementData::NodeIndices, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData(), AbstractMeshReader< ELEMENT_DIM, SPACE_DIM >::Reset(), and AbstractElement< ELEMENT_DIM, SPACE_DIM >::SetRegion().
Referenced by AbstractConvergenceTester< CELL, CARDIAC_PROBLEM, DIM, PROBLEM_DIM >::Converge(), HoneycombMeshGenerator::HoneycombMeshGenerator(), and MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReMesh().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ReadNodesPerProcessorFile | ( | const std::string & | rNodesPerProcessorFile | ) | [inline, virtual] |
Read in the number of nodes per processor from file.
| rNodesPerProcessorFile | the name of the file |
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 225 of file TetrahedralMesh.cpp.
References PetscTools::GetMyRank(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), PetscTools::GetNumProcs(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory.
| double TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetVolume | ( | ) | [inline] |
Return the volume of the mesh, calculated by adding the determinant of each element and dividing by n!, where n is the element dimension.
Definition at line 273 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorBegin(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorEnd(), and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementJacobianDeterminants.
Referenced by MeshBasedTissue< DIM >::WriteTissueAreaResultsToFile().
| double TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetSurfaceArea | ( | ) | [inline] |
Return the surface area of the mesh.
Definition at line 288 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElementIteratorBegin(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElementIteratorEnd(), and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElementJacobianDeterminants.
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Translate | ( | c_vector< double, SPACE_DIM > | displacement | ) | [inline] |
Translate the mesh given the displacement vector. This is the translation method that actually does the work.
| displacement | is a translation vector of the correct size |
Definition at line 338 of file TetrahedralMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllNodes(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshMesh().
Referenced by HoneycombMeshGenerator::GetCircularMesh(), and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Translate().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Translate | ( | const double | xMovement = 0.0, |
|
| const double | yMovement = 0.0, |
|||
| const double | zMovement = 0.0 | |||
| ) | [inline] |
Translate the mesh given the coordinate displacements separately.
| xMovement | is the x-displacement (defaults to 0.0) | |
| yMovement | is the y-displacement (defaults to 0.0) | |
| zMovement | is the z-displacement (defaults to 0.0) |
Definition at line 317 of file TetrahedralMesh.cpp.
References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Translate().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Rotate | ( | c_matrix< double, SPACE_DIM, SPACE_DIM > | rotationMatrix | ) | [inline] |
Do a general mesh rotation with a positive determinant orthonormal rotation matrix. This is the rotation method that actually does the work.
| rotationMatrix | is a Ublas rotation matrix of the correct form |
Definition at line 352 of file TetrahedralMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllNodes(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshMesh().
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Rotate(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RotateX(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RotateY(), and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RotateZ().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Rotate | ( | c_vector< double, 3 > | axis, | |
| double | angle | |||
| ) | [inline] |
Do an angle axis rotation.
| axis | is the axis of rotation (does not need to be normalised) | |
| angle | is the angle of rotation in radians |
Definition at line 367 of file TetrahedralMesh.cpp.
References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RotateX | ( | const double | theta | ) | [inline] |
Rotate the mesh about the x-axis.
| theta | is the angle of rotation in radians |
Definition at line 392 of file TetrahedralMesh.cpp.
References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RotateY | ( | const double | theta | ) | [inline] |
Rotate the mesh about the y-axis.
| theta | is the angle of rotation in radians |
Definition at line 408 of file TetrahedralMesh.cpp.
References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RotateZ | ( | const double | theta | ) | [inline] |
Rotate the mesh about the z-axis.
| theta | is the angle of rotation in radians |
Definition at line 426 of file TetrahedralMesh.cpp.
References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Rotate | ( | double | theta | ) | [inline] |
Rotating a 2D mesh equates that rotation around the z-axis.
| theta | is the angle of rotation in radians |
Definition at line 444 of file TetrahedralMesh.cpp.
References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RotateZ().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshMesh | ( | ) | [inline, virtual] |
Overridden RefreshMesh method. This method calls RefreshJacobianCachedData.
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1361 of file TetrahedralMesh.cpp.
References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData().
Referenced by MutableMesh< ELEMENT_DIM, SPACE_DIM >::RescaleMeshFromBoundaryNode(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Rotate(), and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Translate().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PermuteNodes | ( | ) | [inline, virtual] |
Permute the nodes so that they appear in a different order in mNodes (and their mIndex's are altered accordingly).
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 450 of file TetrahedralMesh.cpp.
References RandomNumberGenerator::Instance(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and RandomNumberGenerator::randMod().
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PermuteNodesWithMetisBinaries().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PermuteNodesWithMetisBinaries | ( | unsigned | numProcs | ) | [inline] |
Permute the nodes so that they appear in a different order in mNodes (and their mIndex's are altered accordingly) using Metis binaries.
| numProcs | Number of processors (e.g. number of partitions) |
Definition at line 497 of file TetrahedralMesh.cpp.
References PetscTools::Barrier(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllElements(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllNodes(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), OutputFileHandler::GetOutputDirectoryFullPath(), OutputFileHandler::IsMaster(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, OutputFileHandler::OpenOutputFile(), and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PermuteNodes().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PermuteNodes | ( | std::vector< unsigned > & | perm | ) | [inline] |
Permute the nodes so that they appear in a different order in mNodes (and their mIndex's are altered accordingly).
| perm | is a vector containing the new indices |
Definition at line 472 of file TetrahedralMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllNodes(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh | ( | unsigned | width | ) | [inline] |
Construct a 1D linear grid on [0,width]
| width | width of the mesh (in the x-direction) |
Definition at line 630 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData().
Referenced by CuboidMeshConstructor< DIM >::ConstructHyperCube().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh | ( | unsigned | width, | |
| unsigned | height, | |||
| bool | stagger = true | |||
| ) | [inline] |
Construct a 2D rectangular grid on [0,width]x[0,height].
Diagonals can be staggered so that there is no preferred diffusion propagation direction.
| width | width of the mesh (in the x-direction) | |
| height | height of the mesh (in the y-direction) | |
| stagger | whether the mesh should 'jumble' up the elements (defaults to true) |
Definition at line 662 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData().
Referenced by CardiacElectroMechProbRegularGeom< DIM >::CardiacElectroMechProbRegularGeom(), and CuboidMeshConstructor< DIM >::ConstructHyperCube().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid | ( | unsigned | width, | |
| unsigned | height, | |||
| unsigned | depth, | |||
| bool | stagger = false | |||
| ) | [inline] |
Construct a 3D cuboid grid on [0,width]x[0,height]x[0,depth].
Diagonals can be staggered so that there is no preferred diffusion propagation direction.
| width | width of the mesh (in the x-direction) | |
| height | height of the mesh (in the y-direction) | |
| depth | depth of the mesh (in the z-direction) | |
| stagger | whether the mesh should 'jumble' up the elements (defaults to false) |
Definition at line 854 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData().
Referenced by CuboidMeshConstructor< DIM >::ConstructHyperCube().
| unsigned TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetContainingElementIndex | ( | ChastePoint< SPACE_DIM > | testPoint, | |
| bool | strict = false, |
|||
| std::set< unsigned > | testElements = std::set<unsigned>() | |||
| ) | [inline] |
Return the element index for the first element that is known to contain a test point
| testPoint | ||
| strict | Should the element returned contain the point in the interior and not on an edge/face/vertex (default = not strict) | |
| testElements | a set of guesses for the element (a set of element indices), to be checked first for potential efficiency improvements. (default = empty set) |
Definition at line 760 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
Referenced by CardiacElectroMechanicsProblem< DIM >::Initialise().
| unsigned TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNearestElementIndex | ( | ChastePoint< SPACE_DIM > | testPoint | ) | [inline] |
Return the element index for an element is closest to the testPoint.
"Closest" means that the minimum interpolation weights for the testPoint are maximised for this element.
| testPoint | the point |
Definition at line 788 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
| std::vector< unsigned > TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetContainingElementIndices | ( | ChastePoint< SPACE_DIM > | testPoint | ) | [inline] |
Return all element indices for elements that are known to contain a test point.
| testPoint | the point |
Definition at line 818 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Clear | ( | ) | [inline, virtual] |
Clear all the data in the mesh.
Reimplemented in MutableMesh< ELEMENT_DIM, SPACE_DIM >, MutableMesh< 2, 2 >, and MutableMesh< DIM, DIM >.
Definition at line 1088 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by MutableMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::TetrahedralMesh().
| std::set< unsigned > TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateBoundaryOfFlaggedRegion | ( | ) | [inline] |
Return the set of nodes which are on the boundary of the flagged region(s).
Definition at line 1111 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorBegin(), and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorEnd().
| double TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetAngleBetweenNodes | ( | unsigned | indexA, | |
| unsigned | indexB | |||
| ) | [inline] |
Calcuate the angle between the node at indexB and the x axis about the node at indexA. The angle returned is in the range (-pi,pi].
| indexA | a node index | |
| indexB | a node index |
Definition at line 1177 of file TetrahedralMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::UnflagAllElements | ( | ) | [inline] |
Unflag all elements in the mesh.
Definition at line 1206 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorBegin(), and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorEnd().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::FlagElementsNotContainingNodes | ( | std::set< unsigned > | nodes | ) | [inline] |
Flag all elements not containing ANY of the given nodes
| nodes | set of nodes to check for |
Definition at line 1217 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorBegin(), and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorEnd().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData | ( | ) | [inline, virtual] |
Update mElementJacobians, mElementWeightedDirections and mBoundaryElementWeightedDirections.
Reimplemented in NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1388 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElementIteratorBegin(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElementIteratorEnd(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorBegin(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorEnd(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllBoundaryElements(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllElements(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElementJacobianDeterminants, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElementWeightedDirections, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementInverseJacobians, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementJacobianDeterminants, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementJacobians, and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementWeightedDirections.
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshMesh(), and MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReMesh().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetJacobianForElement | ( | unsigned | elementIndex, | |
| c_matrix< double, SPACE_DIM, SPACE_DIM > & | rJacobian, | |||
| double & | rJacobianDeterminant | |||
| ) | const [inline, virtual] |
Get the Jacobian matrix and its determinant for a given element.
| elementIndex | index of the element in the mesh | |
| rJacobian | the Jacobian matrix | |
| rJacobianDeterminant | the determinant of the Jacobian matrix |
Reimplemented in NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1434 of file TetrahedralMesh.cpp.
References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementJacobianDeterminants, and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementJacobians.
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetInverseJacobianForElement | ( | unsigned | elementIndex, | |
| c_matrix< double, SPACE_DIM, ELEMENT_DIM > & | rJacobian, | |||
| double & | rJacobianDeterminant, | |||
| c_matrix< double, ELEMENT_DIM, SPACE_DIM > & | rInverseJacobian | |||
| ) | const [inline, virtual] |
Get the Jacobian matrix, its inverse and its determinant for a given element.
| elementIndex | index of the element in the mesh | |
| rJacobian | the Jacobian matrix | |
| rJacobianDeterminant | the determinant of the Jacobian matrix | |
| rInverseJacobian | the inverse Jacobian matrix |
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1443 of file TetrahedralMesh.cpp.
References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementInverseJacobians, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementJacobianDeterminants, and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementJacobians.
Referenced by StreeterFibreGenerator< SPACE_DIM >::GenerateOrthotropicFibreOrientation(), VoronoiTessellation< DIM >::GenerateVerticesFromElementCircumcentres(), and VoronoiTessellation< DIM >::Initialise().
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetWeightedDirectionForElement | ( | unsigned | elementIndex, | |
| c_vector< double, SPACE_DIM > & | rWeightedDirection, | |||
| double & | rJacobianDeterminant | |||
| ) | const [inline, virtual] |
Get the weighted direction and the determinant of the Jacobian for a given element.
| elementIndex | index of the element in the mesh | |
| rWeightedDirection | the weighted direction | |
| rJacobianDeterminant | the determinant of the Jacobian matrix |
Reimplemented in NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1453 of file TetrahedralMesh.cpp.
References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementJacobianDeterminants, and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementWeightedDirections.
| void TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetWeightedDirectionForBoundaryElement | ( | unsigned | elementIndex, | |
| c_vector< double, SPACE_DIM > & | rWeightedDirection, | |||
| double & | rJacobianDeterminant | |||
| ) | const [inline, virtual] |
Get the weighted direction and the determinant of the Jacobian for a given boundary element.
| elementIndex | index of the element in the mesh | |
| rWeightedDirection | the weighted direction | |
| rJacobianDeterminant | the determinant of the Jacobian matrix |
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1462 of file TetrahedralMesh.cpp.
References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElementJacobianDeterminants, and TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElementWeightedDirections.
| TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgeIterator TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgesBegin | ( | ) | [inline] |
Definition at line 1344 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllElements().
Referenced by VoronoiTessellation< DIM >::Initialise(), MeshBasedTissue< DIM >::SpringsBegin(), and MeshBasedTissueWithGhostNodes< DIM >::UpdateGhostPositions().
| TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgeIterator TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgesEnd | ( | ) | [inline] |
Definition at line 1355 of file TetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllElements().
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgeIterator::GetNodeA(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgeIterator::GetNodeB(), VoronoiTessellation< DIM >::Initialise(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgeIterator::operator++(), MeshBasedTissue< DIM >::SpringsEnd(), and MeshBasedTissueWithGhostNodes< DIM >::UpdateGhostPositions().
friend class boost::serialization::access [friend] |
Needed for serialization.
Reimplemented from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in MutableMesh< ELEMENT_DIM, SPACE_DIM >, NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, Cylindrical2dMesh, MutableMesh< 2, 2 >, and MutableMesh< DIM, DIM >.
Definition at line 62 of file TetrahedralMesh.hpp.
std::vector< c_vector<double, SPACE_DIM> > TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementWeightedDirections [protected] |
Vector storing the weighted direction for each element in the mesh.
Definition at line 99 of file TetrahedralMesh.hpp.
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetWeightedDirectionForElement(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReIndex(), and MutableMesh< ELEMENT_DIM, SPACE_DIM >::SetNode().
std::vector< c_matrix<double, SPACE_DIM, ELEMENT_DIM> > TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementJacobians [protected] |
Vector storing the Jacobian matrix for each element in the mesh.
Definition at line 102 of file TetrahedralMesh.hpp.
Referenced by MutableMesh< ELEMENT_DIM, SPACE_DIM >::CheckVoronoi(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetInverseJacobianForElement(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetJacobianForElement(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReIndex(), and Cylindrical2dMesh::UseTheseElementsToDecideMeshing().
std::vector< c_matrix<double, ELEMENT_DIM, SPACE_DIM> > TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementInverseJacobians [protected] |
Vector storing the inverse Jacobian matrix for each element in the mesh.
Definition at line 105 of file TetrahedralMesh.hpp.
Referenced by MutableMesh< ELEMENT_DIM, SPACE_DIM >::CheckVoronoi(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetInverseJacobianForElement(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReIndex(), and Cylindrical2dMesh::UseTheseElementsToDecideMeshing().
std::vector<double> TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElementJacobianDeterminants [protected] |
Vector storing the Jacobian determinant for each element in the mesh.
Definition at line 108 of file TetrahedralMesh.hpp.
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetInverseJacobianForElement(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetJacobianForElement(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetVolume(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetWeightedDirectionForElement(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::MoveMergeNode(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReIndex(), and Cylindrical2dMesh::UseTheseElementsToDecideMeshing().
std::vector< c_vector<double, SPACE_DIM> > TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElementWeightedDirections [protected] |
Vector storing the weighted direction for each boundary element in the mesh.
Definition at line 111 of file TetrahedralMesh.hpp.
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetWeightedDirectionForBoundaryElement(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::MoveMergeNode(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReIndex(), and Cylindrical2dMesh::ReMesh().
std::vector<double> TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElementJacobianDeterminants [protected] |
Vector storing the determinant of the Jacobian matrix for each boundary element in the mesh.
Definition at line 114 of file TetrahedralMesh.hpp.
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetSurfaceArea(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetWeightedDirectionForBoundaryElement(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::MoveMergeNode(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReIndex(), and Cylindrical2dMesh::ReMesh().
1.5.5