#include <AbstractTetrahedralMesh.hpp>
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 | GetNumLocalElements () 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 |
void | ConstructFromMesh (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &rOtherMesh) |
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) |
void | ConstructRegularSlabMesh (double spaceStep, double width, double height=0, double depth=0) |
virtual bool | CalculateDesignatedOwnershipOfBoundaryElement (unsigned faceIndex) |
virtual bool | CalculateDesignatedOwnershipOfElement (unsigned elementIndex) |
unsigned | CalculateMaximumNodeConnectivityPerProcess () const |
virtual void | GetHaloNodeIndices (std::vector< unsigned > &rHaloIndices) const |
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 | AbstractConductivityTensors< ELEMENT_DIM, SPACE_DIM > |
class | boost::serialization::access |
Classes | |
class | ElementIterator |
Definition at line 58 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 210 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.
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().
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().
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 102 of file AbstractTetrahedralMesh.hpp.
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 130 of file AbstractTetrahedralMesh.hpp.
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 527 of file AbstractTetrahedralMesh.hpp.
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 >::ExportToMesher(), 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 MeshBasedCellPopulation< 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 534 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 >::ExportToMesher(), 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 MeshBasedCellPopulation< DIM >::WriteResultsToFiles().
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 AbstractCardiacMechanicsSolver< DIM >::AbstractCardiacMechanicsSolver(), PapillaryFibreCalculator::CalculateFibreOrientations(), FineCoarseMeshPair< DIM >::ComputeCoarseElementsForFineElementCentroids(), CuboidMeshConstructor< ELEMENT_DIM, SPACE_DIM >::Construct(), QuadraticMesh< DIM >::ConstructFromLinearMeshReader(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMesh(), QuadraticMesh< DIM >::ConstructFromMeshReader(), StreeterFibreGenerator< SPACE_DIM >::GenerateOrthotropicFibreOrientation(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GenerateVerticesFromElementCircumcentres(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetContainingElementIndex(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetContainingElementIndexWithInitialGuess(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumLocalElements(), NonlinearElasticitySolver< DIM >::NonlinearElasticitySolver(), PapillaryFibreCalculator::PapillaryFibreCalculator(), QuadraturePointsGroup< DIM >::QuadraturePointsGroup(), FineCoarseMeshPair< DIM >::SetUpBoxes(), CellwiseDataGradient< DIM >::SetupGradients(), AveragedSourcePde< DIM >::SetupSourceTerms(), and CellBasedSimulationWithPdes< DIM >::SolvePdeUsingCoarseMesh().
unsigned AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumLocalElements | ( | ) | const [inline, virtual] |
Get the number of local elements that are in use on this process (only over-ridden when the mesh is distributed).
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 84 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements().
Referenced by BidomainTissue< SPACE_DIM >::CreateExtracellularConductivityTensors().
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 102 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements.
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CheckIsConforming(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMesh(), QuadraticMesh< DIM >::ConstructFromMeshReader(), and BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DefineZeroNeumannOnMeshBoundary().
unsigned AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllElements | ( | ) | const [inline] |
Get the total number of elements (including those marked as deleted).
Definition at line 90 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 >::RefreshJacobianCachedData(), Cylindrical2dMesh::ReMesh(), and Cylindrical2dMesh::UseTheseElementsToDecideMeshing().
unsigned AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllBoundaryElements | ( | ) | const [inline] |
Get the total number of boundary elements (including those marked as deleted).
Definition at line 96 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().
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 109 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(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMaximumNodeConnectivityPerProcess(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::CheckIsVoronoi(), FineCoarseMeshPair< DIM >::ComputeCoarseElementsForFineElementCentroids(), FineCoarseMeshPair< DIM >::ComputeFineElementAndWeightForGivenPoint(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMesh(), QuadraticMesh< DIM >::ConstructFromMeshReader(), Cylindrical2dMesh::CorrectNonPeriodicMesh(), 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(), CellBasedSimulationWithPdes< DIM >::FindCoarseElementContainingCell(), StreeterFibreGenerator< SPACE_DIM >::GenerateOrthotropicFibreOrientation(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GenerateVerticesFromElementCircumcentres(), StreeterFibreGenerator< SPACE_DIM >::GetAveragedThicknessLocalNode(), DiscreteSystemForceCalculator::GetNeighbouringNodeIndices(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgeIterator::GetNodeA(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgeIterator::GetNodeB(), PapillaryFibreCalculator::GetRadiusVectorForOneElement(), 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 >::SetUpBoxes(), CellwiseDataGradient< DIM >::SetupGradients(), AveragedSourcePde< DIM >::SetupSourceTerms(), CardiacElectroMechanicsProblem< DIM >::Solve(), CellBasedSimulationWithPdes< DIM >::SolvePdeUsingCoarseMesh(), Cylindrical2dMesh::UseTheseElementsToDecideMeshing(), and VoltageInterpolaterOntoMechanicsMesh< DIM >::VoltageInterpolaterOntoMechanicsMesh().
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 116 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(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMesh(), 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().
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 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 >::ConstructFromMesh | ( | AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > & | rOtherMesh | ) | [inline] |
Construct the mesh using another mesh. This takes a mesh of a given concrete class and produces a deep copy.
Use with caution when copying between subclasses.
rOtherMesh | the mesh to copy |
Definition at line 611 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryElement(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNode(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumBoundaryElements(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumElements(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), Node< SPACE_DIM >::IsBoundaryNode(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::IsDeleted(), Node< SPACE_DIM >::IsDeleted(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes, AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RefreshMesh(), BoundaryElement< ELEMENT_DIM, SPACE_DIM >::RegisterWithNodes(), Element< ELEMENT_DIM, SPACE_DIM >::RegisterWithNodes(), and Node< SPACE_DIM >::rGetLocation().
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 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(), CellBasedSimulationWithPdes< DIM >::SolvePde(), 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 129 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(), CellBasedSimulationWithPdes< DIM >::SolvePde(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Validate(), and QuadraticMesh< DIM >::WriteBoundaryElementFile().
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 135 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveElementMapping().
Referenced by StreeterFibreGenerator< SPACE_DIM >::GenerateOrthotropicFibreOrientation().
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 145 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 >::ConstructLinearMesh | ( | unsigned | width | ) | [inline, virtual] |
Construct a 1D linear grid on [0,width]
ELEMENT_DIM must be equal to 1. 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 >, and QuadraticMesh< DIM >.
Definition at line 155 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 AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRegularSlabMesh().
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 >, and QuadraticMesh< DIM >.
Definition at line 187 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 AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRegularSlabMesh().
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 >, and QuadraticMesh< DIM >.
Definition at line 297 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 AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRegularSlabMesh().
void AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRegularSlabMesh | ( | double | spaceStep, | |
double | width, | |||
double | height = 0 , |
|||
double | depth = 0 | |||
) | [inline] |
Create a 1D mesh on [0, width], 2D mesh on [0, width]x[0 height] with staggering or 3D mesh on [0, width]x[0 height]x[0 depth with a given axis-aligned space step. If SPACE_DIM > ELEMENT_DIM then the y & z default to 0.0 for every node.
spaceStep | The axis-aligned space step | |
width | The width (x-dimension) | |
height | The height (y-dimension - ignored if ELEMENT_DIM is 1D) | |
depth | The depth (z-dimension -ignored in 1D and 2D) |
Definition at line 482 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), EXCEPTION, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Scale().
Referenced by CardiacElectroMechProbRegularGeom< DIM >::CardiacElectroMechProbRegularGeom(), CuboidMeshConstructor< ELEMENT_DIM, SPACE_DIM >::Construct(), and QuadraticMesh< DIM >::QuadraticMesh().
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 525 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 542 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().
unsigned AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMaximumNodeConnectivityPerProcess | ( | ) | const [inline] |
Definition at line 559 of file AbstractTetrahedralMesh.cpp.
References AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetElement(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mElements, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
void AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetHaloNodeIndices | ( | std::vector< unsigned > & | rHaloIndices | ) | const [inline, virtual] |
Utility method to give the functionality of iterating through the halo nodes of a process. Will return an empty std::vector (i.e. no halo nodes) unless overridden by distributed derived classes.
rHaloIndices | A vector to fill with the global indices of the nodes which are locally halos |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 604 of file AbstractTetrahedralMesh.cpp.
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 88 of file AbstractTetrahedralMesh.hpp.
bool AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::mMeshIsLinear [protected] |
Most tet meshes are linear (set to true). Set to false in quadratics.
Definition at line 66 of file AbstractTetrahedralMesh.hpp.
Referenced by QuadraticMesh< DIM >::ConstructCuboid(), QuadraticMesh< DIM >::ConstructRectangularMesh(), AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::load(), QuadraticMesh< DIM >::QuadraticMesh(), and AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::save().
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 198 of file AbstractTetrahedralMesh.hpp.
Referenced by AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMaximumNodeConnectivityPerProcess(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::CheckIsVoronoi(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMesh(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), QuadraticMesh< DIM >::ConstructLinearMesh(), 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 >::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(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ImportFromMesher(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ElementIterator::IsAtEnd(), 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().
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 201 of file AbstractTetrahedralMesh.hpp.
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMesh(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), QuadraticMesh< DIM >::ConstructLinearMesh(), 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(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ImportFromMesher(), 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().