#include <AbstractTetrahedralMesh.hpp>
Inherits AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Inherited by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< 3, 3 >, and TetrahedralMesh< DIM, DIM >.
Classes | |
class | ElementIterator |
Public Types | |
typedef std::vector < BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > * >::const_iterator | BoundaryElementIterator |
Public Member Functions | |
ElementIterator | GetElementIteratorBegin (bool skipDeletedElements=true) |
ElementIterator | GetElementIteratorEnd () |
AbstractTetrahedralMesh () | |
virtual | ~AbstractTetrahedralMesh () |
virtual unsigned | GetNumElements () const |
virtual unsigned | GetNumBoundaryElements () const |
unsigned | GetNumAllElements () const |
unsigned | GetNumAllBoundaryElements () const |
Element< ELEMENT_DIM, SPACE_DIM > * | GetElement (unsigned index) const |
BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > * | GetBoundaryElement (unsigned index) const |
virtual void | SetElementOwnerships (unsigned lo, unsigned hi) |
virtual void | ConstructFromMeshReader (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader)=0 |
BoundaryElementIterator | GetBoundaryElementIteratorBegin () const |
BoundaryElementIterator | GetBoundaryElementIteratorEnd () 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 | GetWeightedDirectionForBoundaryElement (unsigned elementIndex, c_vector< double, SPACE_DIM > &rWeightedDirection, double &rJacobianDeterminant) const |
virtual void | ConstructLinearMesh (unsigned width) |
virtual void | ConstructRectangularMesh (unsigned width, unsigned height, bool stagger=true) |
virtual void | ConstructCuboid (unsigned width, unsigned height, unsigned depth) |
virtual bool | CalculateDesignatedOwnershipOfBoundaryElement (unsigned faceIndex) |
virtual bool | CalculateDesignatedOwnershipOfElement (unsigned elementIndex) |
Protected Attributes | |
bool | mMeshIsLinear |
std::vector< Element < ELEMENT_DIM, SPACE_DIM > * > | mElements |
std::vector< BoundaryElement < ELEMENT_DIM-1, SPACE_DIM > * > | mBoundaryElements |
Private Member Functions | |
virtual unsigned | SolveElementMapping (unsigned index) const =0 |
virtual unsigned | SolveBoundaryElementMapping (unsigned index) const =0 |
template<class Archive > | |
void | save (Archive &archive, const unsigned int version) const |
template<class Archive > | |
void | load (Archive &archive, const unsigned int version) |
Friends | |
class | boost::serialization::access |
Abstract base class for all tetrahedral meshes (inherits from AbstractMesh).
Definition at line 54 of file AbstractTetrahedralMesh.hpp.
typedef std::vector<BoundaryElement<ELEMENT_DIM-1, SPACE_DIM> *>::const_iterator AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::BoundaryElementIterator |
Definition of boundary element Iterator type.
Definition at line 204 of file AbstractTetrahedralMesh.hpp.
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::AbstractTetrahedralMesh | ( | ) | [inline] |
Constructor.
Definition at line 57 of file AbstractTetrahedralMesh.cpp.
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::~AbstractTetrahedralMesh | ( | ) | [inline, virtual] |
Virtual destructor, since this class has virtual methods.
Definition at line 63 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements, and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
bool AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateDesignatedOwnershipOfBoundaryElement | ( | unsigned | faceIndex | ) | [inline, virtual] |
Determine whether or not the current process owns node 0 of this boundary element (tie breaker to determine which process writes to file for when two or more share ownership of a face).
faceIndex | is the global index of the face |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 472 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElement(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistributedVectorFactory().
Referenced by Electrodes< DIM >::ComputeElectrodesAreasAndCheckEquality().
bool AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateDesignatedOwnershipOfElement | ( | unsigned | elementIndex | ) | [inline, virtual] |
Determine whether or not the current process owns node 0 of this element (tie breaker to determine which process writes to file for when two or more share ownership of an element).
elementIndex | is the global index of the element |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 489 of file AbstractTetrahedralMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistributedVectorFactory(), and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElement().
Referenced by AbstractFunctionalCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Calculate(), and StreeterFibreGenerator< SPACE_DIM >::GenerateOrthotropicFibreOrientation().
void AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid | ( | unsigned | width, | |
unsigned | height, | |||
unsigned | depth | |||
) | [inline, virtual] |
Construct a 3D cuboid grid on [0,width]x[0,height]x[0,depth].
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) Overridden in DistributedTetrahedralMesh |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 286 of file AbstractTetrahedralMesh.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 AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RefreshMesh().
Referenced by CuboidMeshConstructor< ELEMENT_DIM, SPACE_DIM >::ConstructHyperCube().
virtual void AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader | ( | AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > & | rMeshReader | ) | [pure virtual] |
Construct the mesh using a MeshReader. This method must be overridden in concrete classes.
rMeshReader | the mesh reader |
Implemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< DIM, DIM >, and TetrahedralMesh< 3, 3 >.
Referenced by AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::load().
void AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh | ( | unsigned | width | ) | [inline, virtual] |
Construct a 1D linear grid on [0,width]
If SPACE_DIM > 1 then the y & z default to 0.0 for every node.
width | width of the mesh (in the x-direction) Overridden in DistributedTetrahedralMesh |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 148 of file AbstractTetrahedralMesh.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 AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RefreshMesh().
Referenced by CuboidMeshConstructor< ELEMENT_DIM, SPACE_DIM >::ConstructHyperCube().
void AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh | ( | unsigned | width, | |
unsigned | height, | |||
bool | stagger = true | |||
) | [inline, virtual] |
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) Overridden in DistributedTetrahedralMesh |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 179 of file AbstractTetrahedralMesh.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 AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RefreshMesh().
Referenced by CardiacElectroMechProbRegularGeom< DIM >::CardiacElectroMechProbRegularGeom(), and CuboidMeshConstructor< ELEMENT_DIM, SPACE_DIM >::ConstructHyperCube().
BoundaryElement< ELEMENT_DIM-1, SPACE_DIM > * AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElement | ( | unsigned | index | ) | const [inline] |
Get the boundary element with a given index in the mesh.
index | the global index of the boundary element |
Definition at line 110 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements, and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveBoundaryElementMapping().
Referenced by AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateDesignatedOwnershipOfBoundaryElement(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteBoundaryNodeAt(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::MergeFromArchive(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::MoveMergeNode(), Cylindrical2dMesh::ReconstructCylindricalMesh(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::SetNode(), and AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh().
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::BoundaryElementIterator AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElementIteratorBegin | ( | ) | const [inline] |
Return a pointer to the first boundary element in the mesh.
Definition at line 117 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements.
Referenced by QuadraticMesh< DIM >::AddNodesToBoundaryElements(), Electrodes< DIM >::ComputeElectrodesAreasAndCheckEquality(), QuadraticMesh< DIM >::ConstructFromMeshReader(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DefineZeroNeumannOnMeshBoundary(), Electrodes< DIM >::Electrodes(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetSurfaceArea(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Validate(), and QuadraticMesh< DIM >::WriteBoundaryElementFile().
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::BoundaryElementIterator AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElementIteratorEnd | ( | ) | const [inline] |
Return a pointer to *one past* the last boundary element in the mesh (for consistency with STL iterators).
Definition at line 123 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements.
Referenced by QuadraticMesh< DIM >::AddNodesToBoundaryElements(), Electrodes< DIM >::ComputeElectrodesAreasAndCheckEquality(), QuadraticMesh< DIM >::ConstructFromMeshReader(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DefineZeroNeumannOnMeshBoundary(), Electrodes< DIM >::Electrodes(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetSurfaceArea(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Validate(), and QuadraticMesh< DIM >::WriteBoundaryElementFile().
Element< ELEMENT_DIM, SPACE_DIM > * AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElement | ( | unsigned | index | ) | const [inline] |
Get the element with a given index in the mesh.
index | the global index of the element |
Definition at line 103 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveElementMapping().
Referenced by QuadraticMesh< DIM >::AddNodesToBoundaryElements(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateDesignatedOwnershipOfElement(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::CheckIsVoronoi(), FineCoarseMeshPair< DIM >::ComputeFineElementsAndWeightsForCoarseQuadPoints(), QuadraticMesh< DIM >::ConstructFromMeshReader(), Cylindrical2dMesh::CorrectNonPeriodicMesh(), BidomainPde< SPACE_DIM >::CreateExtracellularConductivityTensors(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteBoundaryNodeAt(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteNode(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgeIterator::EdgeIterator(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgesBegin(), StreeterFibreGenerator< SPACE_DIM >::GenerateOrthotropicFibreOrientation(), VoronoiTessellation< DIM >::GenerateVerticesFromElementCircumcentres(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GenerateVerticesFromElementCircumcentres(), StreeterFibreGenerator< SPACE_DIM >::GetAveragedThicknessLocalNode(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgeIterator::GetNodeA(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgeIterator::GetNodeB(), PapillaryFibreCalculator::GetRadiusVectorForOneElement(), VoronoiTessellation< DIM >::Initialise(), Node< SPACE_DIM >::IsFlagged(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::MoveMergeNode(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgeIterator::operator++(), QuadraturePointsGroup< DIM >::QuadraturePointsGroup(), Cylindrical2dMesh::ReMesh(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::SetNode(), FineCoarseMeshPair< DIM >::SetUpBoxesOnFineMesh(), CardiacElectroMechanicsProblem< DIM >::Solve(), Cylindrical2dMesh::UseTheseElementsToDecideMeshing(), and VertexMesh< 2, 2 >::VertexMesh().
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ElementIterator AbstractTetrahedralMesh< 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 457 of file AbstractTetrahedralMesh.hpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
Referenced by AbstractFunctionalCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Calculate(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateBoundaryOfFlaggedRegion(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CheckIsConforming(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::FlagElementsNotContainingNodes(), Cylindrical2dMesh::GenerateVectorsOfElementsStraddlingPeriodicBoundaries(), PapillaryFibreCalculator::GetRadiusVectors(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetVolume(), Cylindrical2dMesh::ReconstructCylindricalMesh(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData(), PapillaryFibreCalculator::SmoothStructureTensors(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::UnflagAllElements(), Cylindrical2dMesh::UseTheseElementsToDecideMeshing(), and MeshBasedTissue< DIM >::WriteResultsToFiles().
AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ElementIterator AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorEnd | ( | ) | [inline] |
Get an iterator to one past the last element in the mesh.
Definition at line 464 of file AbstractTetrahedralMesh.hpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
Referenced by AbstractFunctionalCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Calculate(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateBoundaryOfFlaggedRegion(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CheckIsConforming(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::FlagElementsNotContainingNodes(), Cylindrical2dMesh::GenerateVectorsOfElementsStraddlingPeriodicBoundaries(), PapillaryFibreCalculator::GetRadiusVectors(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetVolume(), Cylindrical2dMesh::ReconstructCylindricalMesh(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData(), PapillaryFibreCalculator::SmoothStructureTensors(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::UnflagAllElements(), Cylindrical2dMesh::UseTheseElementsToDecideMeshing(), and MeshBasedTissue< DIM >::WriteResultsToFiles().
void AbstractTetrahedralMesh< 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] |
Compute the inverse Jacobian for a given element in the mesh.
elementIndex | index of an element | |
rJacobian | the Jacobian matrix | |
rJacobianDeterminant | the determinant of the Jacobian matrix | |
rInverseJacobian | the inverse Jacobian matrix |
Reimplemented in NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< DIM, DIM >, and TetrahedralMesh< 3, 3 >.
Definition at line 129 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveElementMapping().
Referenced by StreeterFibreGenerator< SPACE_DIM >::GenerateOrthotropicFibreOrientation().
unsigned AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllBoundaryElements | ( | ) | const [inline] |
Get the total number of boundary elements (including those marked as deleted).
Definition at line 90 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements.
Referenced by Cylindrical2dMesh::ReconstructCylindricalMesh(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData(), and AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh().
unsigned AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllElements | ( | ) | const [inline] |
Get the total number of elements (including those marked as deleted).
Definition at line 84 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgeIterator::EdgeIterator(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgesBegin(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgesEnd(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgeIterator::operator++(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PermuteNodesWithMetisBinaries(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RefreshJacobianCachedData(), Cylindrical2dMesh::ReMesh(), Cylindrical2dMesh::UseTheseElementsToDecideMeshing(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh(), and VertexMesh< 2, 2 >::VertexMesh().
unsigned AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumBoundaryElements | ( | ) | const [inline, virtual] |
Get the number of boundary elements that are actually in use.
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, MutableMesh< ELEMENT_DIM, SPACE_DIM >, MutableMesh< 2, 2 >, and MutableMesh< DIM, DIM >.
Definition at line 96 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements.
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CheckIsConforming(), QuadraticMesh< DIM >::ConstructFromMeshReader(), and BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DefineZeroNeumannOnMeshBoundary().
unsigned AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements | ( | ) | const [inline, virtual] |
Get the number of elements that are actually in use.
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, MutableMesh< ELEMENT_DIM, SPACE_DIM >, MutableMesh< 2, 2 >, and MutableMesh< DIM, DIM >.
Definition at line 78 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements.
Referenced by AbstractCardiacMechanicsAssembler< DIM >::AbstractCardiacMechanicsAssembler(), QuadraticMesh< DIM >::AddNodesToBoundaryElements(), PapillaryFibreCalculator::CalculateFibreOrientations(), CuboidMeshConstructor< ELEMENT_DIM, SPACE_DIM >::Construct(), QuadraticMesh< DIM >::ConstructFromMeshReader(), BidomainPde< SPACE_DIM >::CreateExtracellularConductivityTensors(), StreeterFibreGenerator< SPACE_DIM >::GenerateOrthotropicFibreOrientation(), VoronoiTessellation< DIM >::GenerateVerticesFromElementCircumcentres(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GenerateVerticesFromElementCircumcentres(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetContainingElementIndex(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetContainingElementIndexWithInitialGuess(), VoronoiTessellation< DIM >::Initialise(), NonlinearElasticityAssembler< DIM >::NonlinearElasticityAssembler(), PapillaryFibreCalculator::PapillaryFibreCalculator(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PermuteNodesWithMetisBinaries(), QuadraturePointsGroup< DIM >::QuadraturePointsGroup(), FineCoarseMeshPair< DIM >::SetUpBoxesOnFineMesh(), and VertexMesh< 2, 2 >::VertexMesh().
void AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetWeightedDirectionForBoundaryElement | ( | unsigned | elementIndex, | |
c_vector< double, SPACE_DIM > & | rWeightedDirection, | |||
double & | rJacobianDeterminant | |||
) | const [inline, virtual] |
Compute the weighted direction for a given boundary element.
elementIndex | index of an element | |
rWeightedDirection | the weighted direction vector | |
rJacobianDeterminant | the determinant of the Jacobian matrix |
Reimplemented in NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< DIM, DIM >, and TetrahedralMesh< 3, 3 >.
Definition at line 139 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements, and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveBoundaryElementMapping().
Referenced by Electrodes< DIM >::ComputeElectrodesAreasAndCheckEquality().
void AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::load | ( | Archive & | archive, | |
const unsigned int | version | |||
) | [inline, private] |
Loads a mesh by using TrianglesMeshReader and the location in ArchiveLocationInfo.
archive | ||
version |
Definition at line 124 of file AbstractTetrahedralMesh.hpp.
void AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::save | ( | Archive & | archive, | |
const unsigned int | version | |||
) | const [inline, private] |
Archive the AbstractTetrahedralMesh. Note that this will write out a TrianglesMeshWriter file to wherever ArchiveLocationInfo has specified.
If the mesh is MutableMesh (or a subclass) the file is written by examining the current mesh.
If the mesh is not mutable then the file is a copy of the original file the mesh was read from.
archive | the archive | |
version | the current version of this class |
Always write the in-memory mesh to disk, to make sure we have a properly permuted version of it.
Definition at line 96 of file AbstractTetrahedralMesh.hpp.
void AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SetElementOwnerships | ( | unsigned | lo, | |
unsigned | hi | |||
) | [inline, virtual] |
Sets the ownership of each element according to which nodes are owned by the process.
lo | is the lowest node number owned by the process | |
hi | is one higher than the highest node number owned by the process ie. this process owns nodes [lo..hi) and element is "owned" if one or more of its nodes are owned |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 37 of file AbstractTetrahedralMesh.cpp.
References AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, and AbstractElement< ELEMENT_DIM, SPACE_DIM >::SetOwnership().
virtual unsigned AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveBoundaryElementMapping | ( | unsigned | index | ) | const [private, pure virtual] |
Pure virtual solve boundary element mapping method. For a boundary element with a given global index, get the local index used by this process. Overridden in TetrahedralMesh and DistributedTetrahedralMesh classes.
index | the global index of the boundary element |
Implemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< DIM, DIM >, and TetrahedralMesh< 3, 3 >.
Referenced by AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElement(), and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetWeightedDirectionForBoundaryElement().
virtual unsigned AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveElementMapping | ( | unsigned | index | ) | const [private, pure virtual] |
Pure virtual solve element mapping method. For an element with a given global index, get the local index used by this process. Overridden in TetrahedralMesh and DistributedTetrahedralMesh classes.
index | the global index of the element |
Implemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< DIM, DIM >, and TetrahedralMesh< 3, 3 >.
Referenced by AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetInverseJacobianForElement().
friend class boost::serialization::access [friend] |
Needed for serialization.
Reimplemented from AbstractMesh< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, MutableMesh< ELEMENT_DIM, SPACE_DIM >, NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, QuadraticMesh< DIM >, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, Cylindrical2dMesh, MutableMesh< 2, 2 >, MutableMesh< DIM, DIM >, TetrahedralMesh< DIM, DIM >, and TetrahedralMesh< 3, 3 >.
Definition at line 82 of file AbstractTetrahedralMesh.hpp.
std::vector<BoundaryElement<ELEMENT_DIM-1, SPACE_DIM> *> AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements [protected] |
Vector of pointers to boundary elements in the mesh.
Definition at line 195 of file AbstractTetrahedralMesh.hpp.
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElement(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElementIteratorBegin(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElementIteratorEnd(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllBoundaryElements(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::GetNumBoundaryElements(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumBoundaryElements(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumLocalBoundaryElements(), NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetWeightedDirectionForBoundaryElement(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetWeightedDirectionForBoundaryElement(), QuadraticMesh< DIM >::QuadraticMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterBoundaryElement(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReIndex(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReMesh(), Cylindrical2dMesh::ReMesh(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveBoundaryElementMapping(), and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::~AbstractTetrahedralMesh().
std::vector<Element<ELEMENT_DIM, SPACE_DIM> *> AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements [protected] |
Vector of pointers to elements in the mesh.
Definition at line 192 of file AbstractTetrahedralMesh.hpp.
Referenced by MutableMesh< ELEMENT_DIM, SPACE_DIM >::CheckIsVoronoi(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ElementIterator::ElementIterator(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetContainingElementIndex(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetContainingElementIndexWithInitialGuess(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetContainingElementIndices(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorBegin(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorEnd(), NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetInverseJacobianForElement(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetInverseJacobianForElement(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNearestElementIndex(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNearestElementIndexFromTestElements(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllElements(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumLocalElements(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ElementIterator::IsAtEnd(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PermuteNodesWithMetisBinaries(), QuadraticMesh< DIM >::QuadraticMesh(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::RefineElement(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterElement(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReIndex(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SetElementOwnerships(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SetElementOwnerships(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveElementMapping(), Cylindrical2dMesh::UseTheseElementsToDecideMeshing(), and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::~AbstractTetrahedralMesh().
bool AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mMeshIsLinear [protected] |
Most tet meshes are linear (set to true). Set to false in quadratics.
Definition at line 60 of file AbstractTetrahedralMesh.hpp.
Referenced by AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::load(), QuadraticMesh< DIM >::QuadraticMesh(), and AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::save().