#include <AbstractMesh.hpp>
Inherits boost::noncopyable.
Inherited by AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, AbstractTetrahedralMesh< DIM, DIM >, AbstractTetrahedralMesh< ELEMENT_DIM, ELEMENT_DIM >, AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >, VertexMesh< ELEMENT_DIM, SPACE_DIM >, and VertexMesh< DIM, DIM >.
Classes | |
class | NodeIterator |
Public Types | |
typedef std::vector< Node < SPACE_DIM > * >::const_iterator | BoundaryNodeIterator |
Public Member Functions | |
NodeIterator | GetNodeIteratorBegin (bool skipDeletedNodes=true) |
NodeIterator | GetNodeIteratorEnd () |
AbstractMesh () | |
virtual | ~AbstractMesh () |
virtual unsigned | GetNumNodes () const |
unsigned | GetNumBoundaryNodes () const |
virtual unsigned | GetNumAllNodes () const |
Node< SPACE_DIM > * | GetNode (unsigned index) const |
virtual Node< SPACE_DIM > * | GetNodeOrHaloNode (unsigned index) const |
Node< SPACE_DIM > * | GetNodeFromPrePermutationIndex (unsigned index) const |
virtual void | ReadNodesPerProcessorFile (const std::string &rNodesPerProcessorFile) |
virtual DistributedVectorFactory * | GetDistributedVectorFactory () |
virtual void | SetDistributedVectorFactory (DistributedVectorFactory *pFactory) |
virtual void | PermuteNodes () |
BoundaryNodeIterator | GetBoundaryNodeIteratorBegin () const |
BoundaryNodeIterator | GetBoundaryNodeIteratorEnd () const |
std::string | GetMeshFileBaseName () const |
bool | IsMeshOnDisk () const |
const std::vector< unsigned > & | rGetNodePermutation () const |
virtual c_vector< double, SPACE_DIM > | GetVectorFromAtoB (const c_vector< double, SPACE_DIM > &rLocationA, const c_vector< double, SPACE_DIM > &rLocationB) |
double | GetDistanceBetweenNodes (unsigned indexA, unsigned indexB) |
virtual double | GetWidth (const unsigned &rDimension) const |
virtual ChasteCuboid< SPACE_DIM > | CalculateBoundingBox () const |
virtual void | Scale (const double xFactor=1.0, const double yFactor=1.0, const double zFactor=1.0) |
void | Translate (const c_vector< double, SPACE_DIM > &rDisplacement) |
void | Translate (const double xMovement=0.0, const double yMovement=0.0, const double zMovement=0.0) |
void | Rotate (c_matrix< double, SPACE_DIM, SPACE_DIM > rotationMatrix) |
void | Rotate (c_vector< double, 3 > axis, double angle) |
void | RotateX (const double theta) |
void | RotateY (const double theta) |
void | RotateZ (const double theta) |
void | Rotate (double theta) |
virtual void | RefreshMesh () |
bool | IsMeshChanging () const |
unsigned | CalculateMaximumContainingElementsPerProcess () const |
void | SetMeshHasChangedSinceLoading () |
Protected Member Functions | |
virtual void | SetElementOwnerships () |
Protected Attributes | |
std::vector< Node< SPACE_DIM > * > | mNodes |
std::vector< Node< SPACE_DIM > * > | mBoundaryNodes |
DistributedVectorFactory * | mpDistributedVectorFactory |
std::vector< unsigned > | mNodesPermutation |
std::string | mMeshFileBaseName |
bool | mMeshChangesDuringSimulation |
Private Member Functions | |
virtual unsigned | SolveNodeMapping (unsigned index) const =0 |
template<class Archive > | |
void | serialize (Archive &archive, const unsigned int version) |
Friends | |
class | NodesOnlyMesh |
class | boost::serialization::access |
Abstract base class for all meshes.
Definition at line 53 of file AbstractMesh.hpp.
typedef std::vector<Node<SPACE_DIM> *>::const_iterator AbstractMesh< ELEMENT_DIM, SPACE_DIM >::BoundaryNodeIterator |
Definition of boundary node Iterator type.
Definition at line 122 of file AbstractMesh.hpp.
AbstractMesh< ELEMENT_DIM, SPACE_DIM >::AbstractMesh | ( | ) | [inline] |
Constructor.
Definition at line 37 of file AbstractMesh.cpp.
AbstractMesh< ELEMENT_DIM, SPACE_DIM >::~AbstractMesh | ( | ) | [inline, virtual] |
Virtual destructor, since this class has virtual methods.
Definition at line 45 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory.
ChasteCuboid< SPACE_DIM > AbstractMesh< ELEMENT_DIM, SPACE_DIM >::CalculateBoundingBox | ( | ) | const [inline, virtual] |
Calculate the bounding box (width extremes for all dimensions of the mesh. Overridden in Distribute case
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 209 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by Electrodes< DIM >::Electrodes(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetWidth(), FineCoarseMeshPair< DIM >::SetUpBoxes(), and Cylindrical2dMesh::UpdateTopAndBottom().
unsigned AbstractMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMaximumContainingElementsPerProcess | ( | ) | const [inline] |
Definition at line 411 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNclFile().
AbstractMesh< ELEMENT_DIM, SPACE_DIM >::BoundaryNodeIterator AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryNodeIteratorBegin | ( | ) | const [inline] |
Return a pointer to the first boundary node in the mesh.
Definition at line 149 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes.
Referenced by BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DefineConstantDirichletOnMeshBoundary(), PapillaryFibreCalculator::GetRadiusVectorForOneElement(), and CellBasedPdeHandler< DIM >::SolvePdeAndWriteResultsToFile().
AbstractMesh< ELEMENT_DIM, SPACE_DIM >::BoundaryNodeIterator AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryNodeIteratorEnd | ( | ) | const [inline] |
Return a pointer to *one past* the last boundary node in the mesh (for consistency with STL iterators).
Definition at line 155 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes.
Referenced by BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DefineConstantDirichletOnMeshBoundary(), PapillaryFibreCalculator::GetRadiusVectorForOneElement(), and CellBasedPdeHandler< DIM >::SolvePdeAndWriteResultsToFile().
double AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistanceBetweenNodes | ( | unsigned | indexA, | |
unsigned | indexB | |||
) | [inline] |
Return the distance between two nodes.
This method calls GetVectorFromAtoB(), which is overridden in some daughter classes (e.g. Cylindrical2dMesh).
indexA | a node index | |
indexB | a node index |
Definition at line 192 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForT1Swaps(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNextEdgeGradientOfElementAtNode(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetPreviousEdgeGradientOfElementAtNode(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetSurfaceAreaOfElement().
DistributedVectorFactory * AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistributedVectorFactory | ( | ) | [inline, virtual] |
Get method for DistributedVectorFactory.
Definition at line 116 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), PetscTools::IsParallel(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::SetElementOwnerships().
Referenced by HeartGeometryInformation< SPACE_DIM >::CalculateBoundingBoxOfSurface(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateDesignatedOwnershipOfBoundaryElement(), MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::CalculateDesignatedOwnershipOfCableElement(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateDesignatedOwnershipOfElement(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateNodeExchange(), ElectrodesStimulusFactory< DIM >::CheckForElectrodesIntersection(), HeartConfigRelatedCellFactory< SPACE_DIM >::FillInCellularTransmuralAreas(), StreeterFibreGenerator< SPACE_DIM >::GetAveragedThicknessLocalNode(), Hdf5ToTxtConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToTxtConverter(), Hdf5ToVtkConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToVtkConverter(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SetElementOwnerships(), CardiacElectroMechanicsProblem< DIM >::Solve(), and VoltageInterpolaterOntoMechanicsMesh< DIM >::VoltageInterpolaterOntoMechanicsMesh().
std::string AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetMeshFileBaseName | ( | ) | const [inline] |
Get method for mMeshFileBaseName.
Definition at line 161 of file AbstractMesh.cpp.
References EXCEPTION, AbstractMesh< ELEMENT_DIM, SPACE_DIM >::IsMeshOnDisk(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshFileBaseName.
Referenced by AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::save().
Node< SPACE_DIM > * AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNode | ( | unsigned | index | ) | const [inline] |
Get the node with a given index in the mesh.
index | the global index of the node |
Definition at line 77 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::SolveNodeMapping().
Referenced by HeartGeometryInformation< SPACE_DIM >::CalculateBoundingBoxOfSurface(), ElectrodesStimulusFactory< DIM >::CheckForElectrodesIntersection(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::CheckIsVoronoi(), FineCoarseMeshPair< DIM >::ComputeCoarseElementsForFineNodes(), ElectrodesStimulusFactory< DIM >::ComputeElectrodeTotalFlux(), FineCoarseMeshPair< DIM >::ComputeFineElementsAndWeightsForCoarseNodes(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMesh(), AdaptiveTetrahedralMesh::ConstructFromMesh(), QuadraticMesh< DIM >::ConstructFromMeshReader(), QuadraticMesh< DIM >::CountAndCheckVertices(), RampedQuarterStimulusCellFactory< CELL, DIM >::CreateCardiacCellForTissueNode(), ExtendedBidomainTissue< SPACE_DIM >::CreateGGapConductivities(), CardiacElectroMechanicsProblem< DIM >::DetermineWatchedNodes(), CryptCellsGenerator< CELL_CYCLE_MODEL >::Generate(), StreeterFibreGenerator< SPACE_DIM >::GetAveragedThicknessLocalNode(), HoneycombMeshGenerator::GetCircularMesh(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringNodeIndices(), MeshBasedCellPopulation< DIM >::GetNeighbouringNodeIndices(), VertexBasedCellPopulation< DIM >::GetNode(), NodeBasedCellPopulation< DIM >::GetNode(), MeshBasedCellPopulation< DIM >::GetNode(), CaBasedCellPopulation< DIM >::GetNode(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeFromPrePermutationIndex(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeOrHaloNode(), NonlinearElasticityTools< DIM >::GetNodesByComponentValue(), PapillaryFibreCalculator::GetRadiusVectorForOneElement(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformIntersectionSwap(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformNodeMerge(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT2Swap(), QuadraturePointsGroup< DIM >::QuadraturePointsGroup(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::RescaleMeshFromBoundaryNode(), NodeBasedCellPopulation< DIM >::SetNode(), CellBasedPdeHandler< DIM >::SolvePdeAndWriteResultsToFile(), NodeBasedCellPopulation< DIM >::Update(), CellBasedPdeHandler< DIM >::UseCoarsePdeMesh(), Cylindrical2dMesh::UseTheseElementsToDecideMeshing(), CellBasedPdeHandler< DIM >::WritePdeSolution(), DiscreteSystemForceCalculator::WriteResultsToFile(), MeshBasedCellPopulation< DIM >::WriteVtkResultsToFile(), and VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteVtkUsingMesh().
Node< SPACE_DIM > * AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeFromPrePermutationIndex | ( | unsigned | index | ) | const [inline] |
Get the node with a given index in the mesh, prior to any node permutation being applied. For non-permuted meshes, this will have the same effect as GetNode.
This method is intended for use by the archiving code, to enable checkpoint migration, so that we can load the correct cells and boundary conditions after the mesh has been re-partitioned.
If unsure, use GetNode in preference to this method!
index | the global index of the node prior to a permutation being applied |
Definition at line 90 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNode(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodesPermutation.
Referenced by BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::MergeFromArchive().
AbstractMesh< ELEMENT_DIM, SPACE_DIM >::NodeIterator AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeIteratorBegin | ( | bool | skipDeletedNodes = true |
) | [inline] |
Get an iterator to the first node in the mesh.
skipDeletedNodes | whether to include deleted nodes |
Definition at line 480 of file AbstractMesh.hpp.
Referenced by VertexCryptBoundaryForce< DIM >::AddForceContribution(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForIntersections(), ElectrodesStimulusFactory< DIM >::ComputeElectrodeTotalFlux(), AdaptiveTetrahedralMesh::ConstructFromDistributedMesh(), Cylindrical2dMesh::CreateMirrorNodes(), Electrodes< DIM >::Electrodes(), VtkMeshWriter< ELEMENT_DIM, SPACE_DIM >::SetParallelFiles(), MeshBasedCellPopulationWithGhostNodes< DIM >::UpdateGhostPositions(), VertexBasedCellPopulation< DIM >::VertexBasedCellPopulation(), VtkMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh(), PottsMeshWriter< SPACE_DIM >::WriteFilesUsingMesh(), and AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNclFile().
AbstractMesh< ELEMENT_DIM, SPACE_DIM >::NodeIterator AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeIteratorEnd | ( | ) | [inline] |
Get an iterator to one past the last node in the mesh.
Definition at line 487 of file AbstractMesh.hpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by VertexCryptBoundaryForce< DIM >::AddForceContribution(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForIntersections(), ElectrodesStimulusFactory< DIM >::ComputeElectrodeTotalFlux(), AdaptiveTetrahedralMesh::ConstructFromDistributedMesh(), Cylindrical2dMesh::CreateMirrorNodes(), Electrodes< DIM >::Electrodes(), VtkMeshWriter< ELEMENT_DIM, SPACE_DIM >::SetParallelFiles(), MeshBasedCellPopulationWithGhostNodes< DIM >::UpdateGhostPositions(), VertexBasedCellPopulation< DIM >::VertexBasedCellPopulation(), VtkMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh(), PottsMeshWriter< SPACE_DIM >::WriteFilesUsingMesh(), and AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNclFile().
Node< SPACE_DIM > * AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeOrHaloNode | ( | unsigned | index | ) | const [inline, virtual] |
Get the node with a given index in the mesh (synonym of GetNode()).
index | the global index of the node |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 84 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNode().
Referenced by AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CheckOutwardNormals().
unsigned AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllNodes | ( | ) | const [inline, virtual] |
Get the total number of nodes (including those marked as deleted).
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 71 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ExportToMesher(), HoneycombMeshGenerator::GetCircularMesh(), NodeBasedCellPopulation< DIM >::GetNumNodes(), MeshBasedCellPopulation< DIM >::GetNumNodes(), CaBasedCellPopulation< DIM >::GetNumNodes(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PermuteNodes(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReIndex(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReMesh(), NodesOnlyMesh< SPACE_DIM >::ReMesh(), Cylindrical2dMesh::ReMesh(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Translate(), NodeBasedCellPopulation< DIM >::Update(), MeshBasedCellPopulation< DIM >::Update(), Cylindrical2dMesh::UseTheseElementsToDecideMeshing(), PottsMeshWriter< SPACE_DIM >::WriteFilesUsingMesh(), and AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNclFile().
unsigned AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumBoundaryNodes | ( | ) | const [inline] |
Get the number of boundary nodes in the mesh.
Definition at line 65 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes.
Referenced by BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DefineConstantDirichletOnMeshBoundary().
unsigned AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes | ( | ) | const [inline, virtual] |
Get the number of nodes that are actually in use.
Overridden in MutableMesh and DistributedTetrahedralMesh.
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, MutableMesh< ELEMENT_DIM, SPACE_DIM >, MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >, VertexMesh< ELEMENT_DIM, SPACE_DIM >, PottsMesh< DIM >, MutableMesh< 2, 2 >, MutableMesh< DIM, DIM >, MutableMesh< SPACE_DIM, SPACE_DIM >, MutableVertexMesh< 2, 2 >, MutableVertexMesh< DIM, DIM >, VertexMesh< DIM, DIM >, and PottsMesh< SPACE_DIM >.
Definition at line 59 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by CaBasedCellPopulation< DIM >::CaBasedCellPopulation(), AbstractFunctionalCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Calculate(), CardiacElectroMechProbRegularGeom< DIM >::CardiacElectroMechProbRegularGeom(), ElectrodesStimulusFactory< DIM >::CheckForElectrodesIntersection(), FineCoarseMeshPair< DIM >::ComputeCoarseElementsForFineNodes(), ElectrodesStimulusFactory< DIM >::ComputeElectrodeTotalFlux(), FineCoarseMeshPair< DIM >::ComputeFineElementsAndWeightsForCoarseNodes(), CuboidMeshConstructor< ELEMENT_DIM, SPACE_DIM >::Construct(), QuadraticMesh< DIM >::ConstructFromLinearMeshReader(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMesh(), AdaptiveTetrahedralMesh::ConstructFromMesh(), QuadraticMesh< DIM >::ConstructFromMeshReader(), QuadraticMesh< DIM >::CountAndCheckVertices(), HeartGeometryInformation< SPACE_DIM >::DetermineLayerForEachNode(), CardiacElectroMechanicsProblem< DIM >::DetermineWatchedNodes(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ExportToMesher(), HeartConfigRelatedCellFactory< SPACE_DIM >::FillInCellularTransmuralAreas(), CryptCellsGenerator< CELL_CYCLE_MODEL >::Generate(), StreeterFibreGenerator< SPACE_DIM >::GenerateOrthotropicFibreOrientation(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistributedVectorFactory(), NonlinearElasticityTools< DIM >::GetNodesByComponentValue(), Hdf5ToTxtConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToTxtConverter(), Hdf5ToVtkConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToVtkConverter(), CardiacElectroMechanicsProblem< DIM >::Initialise(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PermuteNodes(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ReadNodesPerProcessorFile(), CaBasedCellPopulation< DIM >::SetEmptySites(), CardiacElectroMechanicsProblem< DIM >::Solve(), CellBasedPdeHandler< DIM >::SolvePdeAndWriteResultsToFile(), CellBasedPdeHandler< DIM >::UseCoarsePdeMesh(), VoltageInterpolaterOntoMechanicsMesh< DIM >::VoltageInterpolaterOntoMechanicsMesh(), HeartGeometryInformation< SPACE_DIM >::WriteLayerForEachNode(), AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNclFile(), CellBasedPdeHandler< DIM >::WritePdeSolution(), and DiscreteSystemForceCalculator::WriteResultsToFile().
c_vector< double, SPACE_DIM > AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB | ( | const c_vector< double, SPACE_DIM > & | rLocationA, | |
const c_vector< double, SPACE_DIM > & | rLocationB | |||
) | [inline, virtual] |
Return a vector between two points in space.
This method is overridden in some daughter classes (e.g. Cylindrical2dMesh).
rLocationA | a c_vector of coordinates | |
rLocationB | a c_vector of coordinates |
Reimplemented in VertexMesh< ELEMENT_DIM, SPACE_DIM >, and VertexMesh< DIM, DIM >.
Definition at line 184 of file AbstractMesh.cpp.
Referenced by MeshBasedCellPopulationWithGhostNodes< DIM >::CalculateForceBetweenGhostNodes(), CryptStatistics::CellIsInSection(), CryptStatistics::CellIsInSectionPeriodic(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistanceBetweenNodes().
double AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetWidth | ( | const unsigned & | rDimension | ) | const [inline, virtual] |
Calculate the 'width' of any dimension of the mesh.
This method is overridden in some daughter classes (e.g. Cylindrical2dMesh).
rDimension | a dimension (0,1 or 2) |
Reimplemented in Cylindrical2dMesh, and Cylindrical2dVertexMesh.
Definition at line 201 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::CalculateBoundingBox().
Referenced by CryptStatistics::CellIsInSectionPeriodic(), CryptStatistics::GetCryptSection(), CaBasedCellPopulation< DIM >::GetMaximumDegreeInEachDirection(), CaBasedCellPopulation< DIM >::GetNeighbouringNodeIndicesVector(), AdvectionCaUpdateRule< DIM >::GetNewLocationOfCell(), VertexBasedCellPopulation< DIM >::GetWidth(), MeshBasedCellPopulation< DIM >::GetWidth(), and CaBasedCellPopulation< DIM >::GetWidth().
bool AbstractMesh< ELEMENT_DIM, SPACE_DIM >::IsMeshChanging | ( | ) | const [inline] |
Definition at line 405 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshChangesDuringSimulation.
Referenced by PottsMeshWriter< SPACE_DIM >::GetNextElement(), and PottsMeshWriter< SPACE_DIM >::WriteFilesUsingMesh().
bool AbstractMesh< ELEMENT_DIM, SPACE_DIM >::IsMeshOnDisk | ( | ) | const [inline] |
Get whether this mesh was read from file.
Definition at line 172 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshFileBaseName.
Referenced by AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetMeshFileBaseName(), and AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::save().
void AbstractMesh< 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 in TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< DIM, DIM >, and TetrahedralMesh< 3, 3 >.
Definition at line 143 of file AbstractMesh.cpp.
References NEVER_REACHED.
void AbstractMesh< 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 in TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< DIM, DIM >, and TetrahedralMesh< 3, 3 >.
Definition at line 103 of file AbstractMesh.cpp.
References NEVER_REACHED.
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RefreshMesh | ( | ) | [inline, virtual] |
This method allows the mesh properties to be re-calculated after one or more nodes have been moved.
Reimplemented in TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< DIM, DIM >, and TetrahedralMesh< 3, 3 >.
Definition at line 400 of file AbstractMesh.cpp.
Referenced by AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMesh(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Scale(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Translate().
const std::vector< unsigned > & AbstractMesh< ELEMENT_DIM, SPACE_DIM >::rGetNodePermutation | ( | ) | const [inline] |
Get method for mNodesPermutation.
When empty (most meshes) there is no node permutation When non-empty (parallel distributed meshes) then for a given original_index mNodesPermutation[original_index] holds the new assigned index of that node in memory
Definition at line 178 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodesPermutation.
Referenced by HeartGeometryInformation< SPACE_DIM >::GetNodesAtSurface(), AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::save(), and AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNclFile().
void AbstractMesh< 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 394 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RotateZ().
void AbstractMesh< 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 317 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
void AbstractMesh< 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 303 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllNodes(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RefreshMesh().
Referenced by AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RotateX(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RotateY(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RotateZ().
void AbstractMesh< 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 342 of file AbstractMesh.cpp.
References EXCEPTION, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
void AbstractMesh< 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 358 of file AbstractMesh.cpp.
References EXCEPTION, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
void AbstractMesh< 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 376 of file AbstractMesh.cpp.
References EXCEPTION, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
Referenced by AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Scale | ( | const double | xFactor = 1.0 , |
|
const double | yFactor = 1.0 , |
|||
const double | zFactor = 1.0 | |||
) | [inline, virtual] |
Scale the mesh.
xFactor | is the scale in the x-direction (defaults to 1.0) | |
yFactor | is the scale in the y-direction (defaults to 1.0) | |
zFactor | is the scale in the z-direction (defaults to 1.0) |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 246 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RefreshMesh().
Referenced by AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRegularSlabMesh().
void AbstractMesh< 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 in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >, MutableMesh< ELEMENT_DIM, SPACE_DIM >, NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, QuadraticMesh< DIM >, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >, Cylindrical2dMesh, Cylindrical2dVertexMesh, NodesOnlyMesh< SPACE_DIM >, MutableMesh< 2, 2 >, MutableMesh< DIM, DIM >, MutableMesh< SPACE_DIM, SPACE_DIM >, TetrahedralMesh< DIM, DIM >, TetrahedralMesh< 3, 3 >, MutableVertexMesh< 2, 2 >, MutableVertexMesh< DIM, DIM >, and NodesOnlyMesh< DIM >.
Definition at line 76 of file AbstractMesh.hpp.
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::SetDistributedVectorFactory | ( | DistributedVectorFactory * | pFactory | ) | [inline, virtual] |
Set method for mpDistributedVectorFactory. Must be called before the mesh is used for anything. This only actually impacts the DistributedTetrahedralMesh subclass, in which the supplied factory is then used to specify the node distribution among the processes.
pFactory | a factory to use for this mesh |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >.
Definition at line 129 of file AbstractMesh.cpp.
References EXCEPTION, PetscTools::GetNumProcs(), DistributedVectorFactory::GetNumProcs(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory.
Referenced by AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::load().
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::SetElementOwnerships | ( | ) | [inline, protected, virtual] |
Does nothing. Used in derived classes which have elements
Reimplemented in AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, AbstractTetrahedralMesh< ELEMENT_DIM, ELEMENT_DIM >, AbstractTetrahedralMesh< DIM, DIM >, and AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >.
Definition at line 110 of file AbstractMesh.cpp.
Referenced by AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistributedVectorFactory().
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::SetMeshHasChangedSinceLoading | ( | ) | [inline] |
Set whether the mesh has been modified since it was read from file. This prevents the archiving code just blithely storing the original, unmodified, mesh.
Definition at line 426 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshFileBaseName.
Referenced by CylindricalHoneycombMeshGenerator::CylindricalHoneycombMeshGenerator(), HoneycombMeshGenerator::HoneycombMeshGenerator(), NodeBasedCellPopulation< DIM >::Update(), and MeshBasedCellPopulation< DIM >::Update().
virtual unsigned AbstractMesh< ELEMENT_DIM, SPACE_DIM >::SolveNodeMapping | ( | unsigned | index | ) | const [private, pure virtual] |
Pure virtual solve node mapping method. For a node with a given global index, get the local index used by this process.
Overridden in TetrahedralMesh DistributedTetrahedralMesh and Vertex Mesh classes.
index | the global index of the node |
Implemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, VertexMesh< ELEMENT_DIM, SPACE_DIM >, PottsMesh< DIM >, TetrahedralMesh< DIM, DIM >, TetrahedralMesh< 3, 3 >, VertexMesh< DIM, DIM >, and PottsMesh< SPACE_DIM >.
Referenced by AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNode().
void AbstractMesh< 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 268 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Translate().
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Translate | ( | const c_vector< double, SPACE_DIM > & | rDisplacement | ) | [inline] |
Translate the mesh given the displacement vector. This is the translation method that actually does the work.
rDisplacement | is a translation vector of the correct size |
Definition at line 289 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllNodes(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RefreshMesh().
Referenced by HoneycombMeshGenerator::GetCircularMesh(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Translate(), and CellBasedPdeHandler< DIM >::UseCoarsePdeMesh().
friend class boost::serialization::access [friend] |
Needed for serialization.
Reimplemented in AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >, MutableMesh< ELEMENT_DIM, SPACE_DIM >, NonCachedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, QuadraticMesh< DIM >, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >, VertexMesh< ELEMENT_DIM, SPACE_DIM >, Cylindrical2dMesh, Cylindrical2dVertexMesh, NodesOnlyMesh< SPACE_DIM >, PottsMesh< DIM >, AbstractTetrahedralMesh< ELEMENT_DIM, ELEMENT_DIM >, AbstractTetrahedralMesh< DIM, DIM >, AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >, MutableMesh< 2, 2 >, MutableMesh< DIM, DIM >, MutableMesh< SPACE_DIM, SPACE_DIM >, TetrahedralMesh< DIM, DIM >, TetrahedralMesh< 3, 3 >, MutableVertexMesh< 2, 2 >, MutableVertexMesh< DIM, DIM >, VertexMesh< DIM, DIM >, NodesOnlyMesh< DIM >, and PottsMesh< SPACE_DIM >.
Definition at line 68 of file AbstractMesh.hpp.
std::vector<Node<SPACE_DIM> *> AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes [protected] |
Vector of pointers to boundary nodes in the mesh.
Definition at line 88 of file AbstractMesh.hpp.
Referenced by QuadraticMesh< DIM >::AddNodeToBoundaryElement(), 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(), QuadraticMesh< 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(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteBoundaryNodeAt(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryNodeIteratorBegin(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryNodeIteratorEnd(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumBoundaryNodes(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ImportFromMesher(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReMesh(), and NodesOnlyMesh< SPACE_DIM >::ReMesh().
bool AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshChangesDuringSimulation [protected] |
Whether this mesh changes during simulation (used to know whether to write a new one to file)
Definition at line 109 of file AbstractMesh.hpp.
Referenced by AbstractMesh< ELEMENT_DIM, SPACE_DIM >::IsMeshChanging(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::MutableMesh(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::MutableVertexMesh(), AbstractMesh< SPACE_DIM, SPACE_DIM >::serialize(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh().
std::string AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshFileBaseName [protected] |
If the mesh is constructed from file using a MeshReader, this member variable stores the base name of these files.
Definition at line 104 of file AbstractMesh.hpp.
Referenced by TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetMeshFileBaseName(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::IsMeshOnDisk(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::SetMeshHasChangedSinceLoading().
std::vector<Node<SPACE_DIM> *> AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes [protected] |
Vector of pointers to nodes in the mesh.
Definition at line 85 of file AbstractMesh.hpp.
Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::AddNode(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::AddNode(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::CalculateBoundingBox(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMaximumContainingElementsPerProcess(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMaximumNodeConnectivityPerProcess(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), 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(), NodesOnlyMesh< SPACE_DIM >::ConstructNodesWithoutMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), Cylindrical2dMesh::CreateMirrorNodes(), Cylindrical2dMesh::Cylindrical2dMesh(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteBoundaryNodeAt(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteNode(), NodesOnlyMesh< SPACE_DIM >::DeleteNode(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DeleteNodePriorToReMesh(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteNodePriorToReMesh(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DivideEdge(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ExportToMesher(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GenerateVerticesFromElementCircumcentres(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetAngleBetweenNodes(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistanceBetweenNodes(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetEdgeLength(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNode(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeIteratorEnd(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeOrHaloNode(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllNodes(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumLocalNodes(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::IdentifySwapType(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ImportFromMesher(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::NodeIterator::IsAtEnd(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::MoveMergeNode(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::MutableMesh(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::MutableVertexMesh(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::NodeIterator::NodeIterator(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformIntersectionSwap(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformNodeMerge(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT3Swap(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PermuteNodes(), Cylindrical2dMesh::ReconstructCylindricalMesh(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::RefineElement(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterNode(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReIndex(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReMesh(), NodesOnlyMesh< SPACE_DIM >::ReMesh(), Cylindrical2dMesh::ReMesh(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::RemoveDeletedNodes(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ReorderNodes(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::RescaleMeshFromBoundaryNode(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Scale(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::SetNode(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::SetNode(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::SolveNodeMapping(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveNodeMapping(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Translate(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::~AbstractMesh().
std::vector<unsigned> AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodesPermutation [protected] |
Vector containing node permutation information. When empty (most meshes) there is no node permutation When non-empty (parallel distributed meshes) then for a given original_index mNodesPermutation[original_index] holds the new assigned index of that node in memory
Definition at line 98 of file AbstractMesh.hpp.
Referenced by MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeFromPrePermutationIndex(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::MetisLibraryNodePartitioning(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ParMetisLibraryNodePartitioning(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PermuteNodes(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::PetscMatrixPartitioning(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ReorderNodes(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::rGetNodePermutation().
DistributedVectorFactory* AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory [protected] |
DistributedVectorFactory capable of reproducing the given number of nodes owned by each processor.
Definition at line 91 of file AbstractMesh.hpp.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructLinearMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructRectangularMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::DumbNodePartitioning(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistributedVectorFactory(), AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::load(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ReadNodesPerProcessorFile(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReMesh(), AbstractMesh< SPACE_DIM, SPACE_DIM >::serialize(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::SetDistributedVectorFactory(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::~AbstractMesh().