Chaste
Release::2017.1
|
#include <AbstractMesh.hpp>
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 |
unsigned | GetNumNodeAttributes () const |
Node< SPACE_DIM > * | GetNode (unsigned index) const |
virtual Node< SPACE_DIM > * | GetNodeOrHaloNode (unsigned index) const |
Node< SPACE_DIM > * | GetNodeFromPrePermutationIndex (unsigned index) const |
virtual void | ReadNodesPerProcessorFile (const std::string &rNodesPerProcessorFile) |
virtual DistributedVectorFactory * | GetDistributedVectorFactory () |
virtual void | SetDistributedVectorFactory (DistributedVectorFactory *pFactory) |
virtual void | PermuteNodes () |
BoundaryNodeIterator | GetBoundaryNodeIteratorBegin () const |
BoundaryNodeIterator | GetBoundaryNodeIteratorEnd () const |
std::string | GetMeshFileBaseName () const |
bool | IsMeshOnDisk () const |
const std::vector< unsigned > & | rGetNodePermutation () const |
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 unsigned | GetNearestNodeIndex (const ChastePoint< SPACE_DIM > &rTestPoint) |
virtual void | Scale (const double xFactor=1.0, const double yFactor=1.0, const double zFactor=1.0) |
virtual void | Translate (const c_vector< double, SPACE_DIM > &rDisplacement) |
void | Translate (const double xMovement=0.0, const double yMovement=0.0, const double zMovement=0.0) |
virtual void | Rotate (c_matrix< double, SPACE_DIM, SPACE_DIM > rotationMatrix) |
void | Rotate (c_vector< double, 3 > axis, double angle) |
void | RotateX (const double theta) |
void | RotateY (const double theta) |
void | RotateZ (const double theta) |
void | Rotate (double theta) |
virtual void | RefreshMesh () |
bool | IsMeshChanging () const |
unsigned | CalculateMaximumContainingElementsPerProcess () const |
void | SetMeshHasChangedSinceLoading () |
Protected Member Functions | |
virtual void | SetElementOwnerships () |
ChasteCuboid< SPACE_DIM > | CalculateBoundingBox (const std::vector< Node< SPACE_DIM > * > &rNodes) const |
Protected Attributes | |
std::vector< Node< SPACE_DIM > * > | mNodes |
std::vector< Node< SPACE_DIM > * > | mBoundaryNodes |
DistributedVectorFactory * | mpDistributedVectorFactory |
std::vector< unsigned > | mNodePermutation |
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 | TestDistributedTetrahedralMesh |
template<unsigned A_DIMENSION> | |
class | NodesOnlyMesh |
template<unsigned A_DIMENSION> | |
class | QuadraticMeshHelper |
class | boost::serialization::access |
Abstract base class for all meshes.
Definition at line 60 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 148 of file AbstractMesh.hpp.
AbstractMesh< ELEMENT_DIM, SPACE_DIM >::AbstractMesh | ( | ) |
Constructor.
Definition at line 44 of file AbstractMesh.cpp.
|
virtual |
Virtual destructor, since this class has virtual methods.
Definition at line 52 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory.
|
protected |
Calculate a bounding box from a set of nodes. A generalised version of the public CalculateBoundingBox method.
rNodes | the list of nodes to calculate the bounding box for. |
Definition at line 227 of file AbstractMesh.cpp.
Referenced by Electrodes< DIM >::Electrodes(), and FineCoarseMeshPair< DIM >::SetUpBoxes().
|
virtual |
Calculate the bounding box (width extremes for all dimensions of the mesh). Overridden in distributed case
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, and DistributedTetrahedralMesh< DIM, DIM >.
Definition at line 277 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateBoundingBox(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetWidth(), NodesOnlyMesh< SPACE_DIM >::SetUpBoxCollection(), and Cylindrical2dMesh::UpdateTopAndBottom().
unsigned AbstractMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMaximumContainingElementsPerProcess | ( | ) | const |
Definition at line 488 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by LinearParabolicPdeSystemWithCoupledOdeSystemSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::InitialiseForSolve(), and AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNclFile().
AbstractMesh< ELEMENT_DIM, SPACE_DIM >::BoundaryNodeIterator AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryNodeIteratorBegin | ( | ) | const |
Definition at line 169 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes.
Referenced by EllipticGrowingDomainPdeModifier< DIM >::ConstructBoundaryConditionsContainer(), ParabolicGrowingDomainPdeModifier< DIM >::ConstructBoundaryConditionsContainer(), ParabolicBoxDomainPdeModifier< DIM >::ConstructBoundaryConditionsContainer(), EllipticBoxDomainPdeModifier< DIM >::ConstructBoundaryConditionsContainer(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DefineConstantDirichletOnMeshBoundary(), and PapillaryFibreCalculator::GetRadiusVectorForOneElement().
AbstractMesh< ELEMENT_DIM, SPACE_DIM >::BoundaryNodeIterator AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryNodeIteratorEnd | ( | ) | const |
Definition at line 175 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes.
Referenced by EllipticGrowingDomainPdeModifier< DIM >::ConstructBoundaryConditionsContainer(), ParabolicGrowingDomainPdeModifier< DIM >::ConstructBoundaryConditionsContainer(), ParabolicBoxDomainPdeModifier< DIM >::ConstructBoundaryConditionsContainer(), EllipticBoxDomainPdeModifier< DIM >::ConstructBoundaryConditionsContainer(), BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::DefineConstantDirichletOnMeshBoundary(), and PapillaryFibreCalculator::GetRadiusVectorForOneElement().
double AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistanceBetweenNodes | ( | unsigned | indexA, |
unsigned | indexB | ||
) |
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 212 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 >::CheckForSwapsFromShortEdges(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetEdgeLength(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNextEdgeGradientOfElementAtNode(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetPreviousEdgeGradientOfElementAtNode(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetSurfaceAreaOfElement(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::SplitLongEdges(), and HeterotypicBoundaryLengthWriter< ELEMENT_DIM, SPACE_DIM >::Visit().
|
virtual |
Definition at line 133 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 AbstractContinuumMechanicsSolver< DIM >::AllocateMatrixMemory(), 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(), NodePartitioner< ELEMENT_DIM, SPACE_DIM >::DumbPartitioning(), HeartConfigRelatedCellFactory< SPACE_DIM >::FillInCellularTransmuralAreas(), Hdf5ToTxtConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToTxtConverter(), Hdf5ToVtkConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToVtkConverter(), AbstractCardiacTissue< SPACE_DIM >::LoadCardiacCells(), AbstractCardiacTissue< SPACE_DIM >::SaveCardiacCells(), CardiacElectroMechanicsProblem< DIM, ELEC_PROB_DIM >::Solve(), and VoltageInterpolaterOntoMechanicsMesh< DIM >::VoltageInterpolaterOntoMechanicsMesh().
std::string AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetMeshFileBaseName | ( | ) | const |
Definition at line 181 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().
|
virtual |
GetNearestNodeIndex iterates through all nodes in the mesh and returns the global index with the smallest distance to the provided point.
This method is overridden in the distributed case to return the global node index.
This method uses GetVectorFromAtoB distance and hence may return a correct solution in non-Euclidean space, but only if this method is overridden in a subclass (see e.g. Cylindrical2dMesh for an example of this).
rTestPoint | reference to the point |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, and DistributedTetrahedralMesh< DIM, DIM >.
Definition at line 285 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and ChastePoint< DIM >::rGetLocation().
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNearestNodeIndex().
Node< SPACE_DIM > * AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNode | ( | unsigned | index | ) | const |
Get the node with a given index in the mesh.
index | the global index of the node |
Definition at line 93 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::SolveNodeMapping().
Referenced by AbstractContinuumMechanicsSolver< DIM >::AddIdentityBlockForDummyPressureVariables(), AbstractNonlinearElasticitySolver< DIM >::AssembleOnBoundaryElement(), HeartGeometryInformation< SPACE_DIM >::CalculateBoundingBoxOfSurface(), ElectrodesStimulusFactory< DIM >::CheckForElectrodesIntersection(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForRosettes(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::CheckIsVoronoi(), FineCoarseMeshPair< DIM >::ComputeCoarseElementsForFineNodes(), ElectrodesStimulusFactory< DIM >::ComputeElectrodeTotalFlux(), FineCoarseMeshPair< DIM >::ComputeFineElementsAndWeightsForCoarseNodes(), EllipticBoxDomainPdeModifier< DIM >::ConstructBoundaryConditionsContainer(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMesh(), ExtendedBidomainTissue< SPACE_DIM >::CreateGGapConductivities(), PottsBasedCellPopulation< DIM >::CreateMutableMesh(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteElement(), NodesOnlyMesh< SPACE_DIM >::DeleteNode(), ExtendedBidomainTissue< SPACE_DIM >::ExtendedBidomainTissue(), CryptCellsGenerator< CELL_CYCLE_MODEL >::Generate(), AbstractBoxDomainPdeModifier< DIM >::GenerateFeMesh(), HoneycombMeshGenerator::GetCircularMesh(), CaBasedCellPopulation< DIM >::GetLocationOfCellCentre(), Toroidal2dVertexMesh::GetMeshForVtk(), Cylindrical2dVertexMesh::GetMeshForVtk(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNearestNodeIndex(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringNodeIndices(), CaBasedCellPopulation< DIM >::GetNode(), PottsBasedCellPopulation< DIM >::GetNode(), CaBasedCellPopulation< DIM >::GetNodeCorrespondingToCell(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeFromPrePermutationIndex(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeOrHaloNode(), NodesOnlyMesh< SPACE_DIM >::GetNodeOrHaloNode(), NonlinearElasticityTools< DIM >::GetNodesByComponentValue(), PapillaryFibreCalculator::GetRadiusVectorForOneElement(), VertexBasedCellPopulation< DIM >::GetTetrahedralMeshForPdeModifier(), VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::MakeVtkMesh(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformIntersectionSwap(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformProtorosetteResolution(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformRosetteRankDecrease(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformRosetteRankIncrease(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT2Swap(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::RescaleMeshFromBoundaryNode(), AbstractNonlinearElasticitySolver< DIM >::rGetSpatialSolution(), SolidMechanicsProblemDefinition< DIM >::SetFixedNodes(), Cylindrical2dNodesOnlyMesh::SetNode(), NodesOnlyMesh< SPACE_DIM >::SetNode(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::SplitLongEdges(), AbstractPdeModifier< DIM >::UpdateAtEndOfOutputTimeStep(), AbstractGrowingDomainPdeModifier< DIM >::UpdateCellData(), PottsBasedCellPopulation< DIM >::UpdateCellLocations(), Cylindrical2dMesh::UseTheseElementsToDecideMeshing(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::WidenEdgeOrCorrectIntersectionLocationIfNecessary(), AbstractContinuumMechanicsSolver< DIM >::WriteCurrentPressureSolution(), DiscreteSystemForceCalculator::WriteResultsToFile(), CaBasedCellPopulation< DIM >::WriteVtkResultsToFile(), and PottsBasedCellPopulation< DIM >::WriteVtkResultsToFile().
Node< SPACE_DIM > * AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeFromPrePermutationIndex | ( | unsigned | index | ) | const |
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 106 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNode(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodePermutation.
Referenced by BoundaryConditionsContainer< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::MergeFromArchive().
|
inline |
skipDeletedNodes | whether to include deleted nodes |
Definition at line 531 of file AbstractMesh.hpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::NodeIterator::NodeIterator().
Referenced by AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::AbstractCentreBasedCellPopulation(), VertexCryptBoundaryForce< DIM >::AddForceContribution(), DiffusionForce< DIM >::AddForceContribution(), NodesOnlyMesh< SPACE_DIM >::AddNodesToBoxes(), AbstractContinuumMechanicsSolver< DIM >::AllocateMatrixMemory(), BidomainProblem< DIM >::AnalyseMeshForBath(), NodesOnlyMesh< SPACE_DIM >::CalculateNodesOutsideLocalDomain(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForIntersections(), ElectrodesStimulusFactory< DIM >::ComputeElectrodeTotalFlux(), Cylindrical2dMesh::CreateMirrorNodes(), Electrodes< DIM >::Electrodes(), NodeBasedCellPopulation< DIM >::GetTetrahedralMeshForPdeModifier(), NodesOnlyMesh< SPACE_DIM >::IsANodeCloseToDomainBoundary(), NodeBasedCellPopulationWithParticles< DIM >::NodeBasedCellPopulationWithParticles(), VtkMeshWriter< ELEMENT_DIM, SPACE_DIM >::SetParallelFiles(), ParabolicGrowingDomainPdeModifier< DIM >::UpdateSolutionVector(), NodeVelocityWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), PottsMeshWriter< SPACE_DIM >::WriteFilesUsingMesh(), XdmfMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh(), VtkMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh(), and AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNclFile().
|
inline |
Definition at line 538 of file AbstractMesh.hpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::NodeIterator::NodeIterator().
Referenced by NodeBasedCellPopulationWithParticles< DIM >::AcceptCellWritersAcrossPopulation(), MeshBasedCellPopulationWithGhostNodes< DIM >::AcceptCellWritersAcrossPopulation(), VertexCryptBoundaryForce< DIM >::AddForceContribution(), DiffusionForce< DIM >::AddForceContribution(), NodesOnlyMesh< SPACE_DIM >::AddNodesToBoxes(), AbstractContinuumMechanicsSolver< DIM >::AllocateMatrixMemory(), NodesOnlyMesh< SPACE_DIM >::CalculateNodesOutsideLocalDomain(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForIntersections(), ElectrodesStimulusFactory< DIM >::ComputeElectrodeTotalFlux(), Cylindrical2dMesh::CreateMirrorNodes(), Electrodes< DIM >::Electrodes(), NodeBasedCellPopulation< DIM >::GetTetrahedralMeshForPdeModifier(), NodesOnlyMesh< SPACE_DIM >::IsANodeCloseToDomainBoundary(), NodeBasedCellPopulationWithParticles< DIM >::NodeBasedCellPopulationWithParticles(), VtkMeshWriter< ELEMENT_DIM, SPACE_DIM >::SetParallelFiles(), ParabolicGrowingDomainPdeModifier< DIM >::UpdateSolutionVector(), NodeVelocityWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), PottsMeshWriter< SPACE_DIM >::WriteFilesUsingMesh(), XdmfMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh(), VtkMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh(), and AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNclFile().
|
virtual |
Get the node with a given index in the mesh (synonym of GetNode() unless overridden in a distributed mesh).
index | the global index of the node |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, DistributedTetrahedralMesh< DIM, DIM >, NodesOnlyMesh< SPACE_DIM >, NodesOnlyMesh< DIM >, and NodesOnlyMesh< 2 >.
Definition at line 100 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNode().
Referenced by QuadraticMeshHelper< DIM >::AddInternalNodesToElements(), and AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CheckOutwardNormals().
|
virtual |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, and DistributedTetrahedralMesh< DIM, DIM >.
Definition at line 78 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::CheckForRosettes(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ExportToMesher(), HoneycombMeshGenerator::GetCircularMesh(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetMaximumNodeIndex(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReIndex(), Cylindrical2dMesh::ReMesh(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReMesh(), Cylindrical2dMesh::UseTheseElementsToDecideMeshing(), PottsMeshWriter< SPACE_DIM >::WriteFilesUsingMesh(), and AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNclFile().
unsigned AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumBoundaryNodes | ( | ) | const |
Definition at line 72 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 >::GetNumNodeAttributes | ( | ) | const |
Definition at line 84 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
|
virtual |
Overridden in MutableMesh and DistributedTetrahedralMesh.
Reimplemented in MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >, MutableVertexMesh< 2, 2 >, MutableVertexMesh< DIM, DIM >, NodesOnlyMesh< SPACE_DIM >, NodesOnlyMesh< DIM >, NodesOnlyMesh< 2 >, VertexMesh< ELEMENT_DIM, SPACE_DIM >, VertexMesh< ELEMENT_DIM, ELEMENT_DIM >, VertexMesh< DIM, DIM >, PottsMesh< DIM >, PottsMesh< SPACE_DIM >, MutableMesh< ELEMENT_DIM, SPACE_DIM >, MutableMesh< ELEMENT_DIM, ELEMENT_DIM >, MutableMesh< 2, 2 >, MutableMesh< DIM, DIM >, MutableMesh< SPACE_DIM, SPACE_DIM >, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, and DistributedTetrahedralMesh< DIM, DIM >.
Definition at line 66 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by AbstractContinuumMechanicsSolver< DIM >::AbstractContinuumMechanicsSolver(), AbstractContinuumMechanicsSolver< DIM >::AddIdentityBlockForDummyPressureVariables(), CaBasedCellPopulation< DIM >::CaBasedCellPopulation(), AbstractFunctionalCalculator< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::Calculate(), CardiacElectroMechProbRegularGeom< DIM >::CardiacElectroMechProbRegularGeom(), ElectrodesStimulusFactory< DIM >::CheckForElectrodesIntersection(), CmguiDeformedSolutionsWriter< DIM >::CmguiDeformedSolutionsWriter(), FineCoarseMeshPair< DIM >::ComputeCoarseElementsForFineNodes(), ElectrodesStimulusFactory< DIM >::ComputeElectrodeTotalFlux(), FineCoarseMeshPair< DIM >::ComputeFineElementsAndWeightsForCoarseNodes(), CuboidMeshConstructor< ELEMENT_DIM, SPACE_DIM >::Construct(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMesh(), CmguiDeformedSolutionsWriter< DIM >::ConvertOutput(), PottsBasedCellPopulation< DIM >::CreateMutableMesh(), HeartGeometryInformation< SPACE_DIM >::DetermineLayerForEachNode(), ContinuumMechanicsNeumannBcsAssembler< DIM >::DoAssemble(), AbstractContinuumMechanicsAssembler< DIM, CAN_ASSEMBLE_VECTOR, CAN_ASSEMBLE_MATRIX >::DoAssemble(), NodePartitioner< ELEMENT_DIM, SPACE_DIM >::DumbPartitioning(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ExportToMesher(), HeartConfigRelatedCellFactory< SPACE_DIM >::FillInCellularTransmuralAreas(), CryptCellsGenerator< CELL_CYCLE_MODEL >::Generate(), AbstractBoxDomainPdeModifier< DIM >::GenerateFeMesh(), SolidMechanicsProblemDefinition< DIM >::GetCompressibleMaterialLaw(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistributedVectorFactory(), SolidMechanicsProblemDefinition< DIM >::GetIncompressibleMaterialLaw(), NonlinearElasticityTools< DIM >::GetNodesByComponentValue(), CaBasedCellPopulation< DIM >::GetNumNodes(), PottsBasedCellPopulation< DIM >::GetNumNodes(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumVertices(), Hdf5ToTxtConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToTxtConverter(), Hdf5ToVtkConverter< ELEMENT_DIM, SPACE_DIM >::Hdf5ToVtkConverter(), CardiacElectroMechanicsProblem< DIM, ELEC_PROB_DIM >::Initialise(), LinearParabolicPdeSystemWithCoupledOdeSystemSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::LinearParabolicPdeSystemWithCoupledOdeSystemSolver(), LinearParabolicPdeSystemWithCoupledOdeSystemSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::PrepareForSetupLinearSystem(), AbstractContinuumMechanicsSolver< DIM >::rGetPressures(), StokesFlowSolver< DIM >::rGetSpatialSolution(), AbstractNonlinearElasticitySolver< DIM >::rGetSpatialSolution(), ParabolicBoxDomainPdeModifier< DIM >::SetupInitialSolutionVector(), ContinuumMechanicsProblemDefinition< DIM >::SetZeroDirichletNodes(), CardiacElectroMechanicsProblem< DIM, ELEC_PROB_DIM >::Solve(), StreeterFibreGenerator< SPACE_DIM >::StreeterFibreGenerator(), AbstractPdeModifier< DIM >::UpdateAtEndOfOutputTimeStep(), EllipticGrowingDomainPdeModifier< DIM >::UpdateAtEndOfTimeStep(), PottsBasedCellPopulation< DIM >::UpdateCellLocations(), CaBasedCellPopulation< DIM >::UpdateCellLocations(), ParabolicGrowingDomainPdeModifier< DIM >::UpdateSolutionVector(), VoltageInterpolaterOntoMechanicsMesh< DIM >::VoltageInterpolaterOntoMechanicsMesh(), CmguiDeformedSolutionsWriter< DIM >::WriteDeformationPositions(), XdmfMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteFilesUsingMesh(), HeartGeometryInformation< SPACE_DIM >::WriteLayerForEachNode(), AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNclFile(), DiscreteSystemForceCalculator::WriteResultsToFile(), CaBasedCellPopulation< DIM >::WriteVtkResultsToFile(), and LinearParabolicPdeSystemWithCoupledOdeSystemSolver< ELEMENT_DIM, SPACE_DIM, PROBLEM_DIM >::WriteVtkResultsToFile().
|
virtual |
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 >, VertexMesh< ELEMENT_DIM, ELEMENT_DIM >, and VertexMesh< DIM, DIM >.
Definition at line 204 of file AbstractMesh.cpp.
Referenced by CryptStatistics::CellIsInSection(), CryptStatistics::CellIsInSectionPeriodic(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistanceBetweenNodes(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNearestNodeIndex(), NodeBasedCellPopulation< DIM >::GetNeighbouringNodeIndices(), NodeBasedCellPopulation< DIM >::GetNodesWithinNeighbourhoodRadius(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB(), NodeBasedCellPopulation< DIM >::GetVolumeOfCell(), and MutableMesh< ELEMENT_DIM, SPACE_DIM >::SplitEdge().
|
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 NodesOnlyMesh< SPACE_DIM >, NodesOnlyMesh< DIM >, NodesOnlyMesh< 2 >, Cylindrical2dMesh, Cylindrical2dVertexMesh, Toroidal2dVertexMesh, and Cylindrical2dNodesOnlyMesh.
Definition at line 220 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::CalculateBoundingBox(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.
Referenced by CryptStatistics::CellIsInSectionPeriodic(), CryptStatistics::GetCryptSection(), Cylindrical2dNodesOnlyMesh::GetWidth(), Cylindrical2dVertexMesh::GetWidth(), Cylindrical2dMesh::GetWidth(), NodesOnlyMesh< SPACE_DIM >::GetWidth(), PottsBasedCellPopulation< DIM >::GetWidth(), CaBasedCellPopulation< DIM >::GetWidth(), and CaBasedCellPopulation< DIM >::WriteVtkResultsToFile().
bool AbstractMesh< ELEMENT_DIM, SPACE_DIM >::IsMeshChanging | ( | ) | const |
Definition at line 482 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 |
Get whether this mesh was read from file.
Definition at line 192 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().
|
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 162 of file AbstractMesh.cpp.
References NEVER_REACHED.
|
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 120 of file AbstractMesh.cpp.
References NEVER_REACHED.
|
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 >, TetrahedralMesh< 3, 3 >, and Cylindrical2dNodesOnlyMesh.
Definition at line 477 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 |
When empty (most meshes) there is no node permutation When non-empty (parallel distributed meshes) then for a given original_index mNodePermutation[original_index] holds the new assigned index of that node in memory
Definition at line 198 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodePermutation.
Referenced by QuadraticMeshHelper< DIM >::AddInternalNodesToElements(), HeartGeometryInformation< SPACE_DIM >::GetNodesAtSurface(), AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::save(), and AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNclFile().
|
virtual |
Do a general mesh rotation with a positive determinant orthonormal rotation matrix. This is the rotation method that actually does the work. Should be overridden when the child class has halo nodes.
rotationMatrix | is a Ublas rotation matrix of the correct form |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, and DistributedTetrahedralMesh< DIM, DIM >.
Definition at line 380 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 >::ConstructRegularSlabMeshWithDimensionSplit(), 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 >::Rotate | ( | c_vector< double, 3 > | axis, |
double | angle | ||
) |
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 394 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate | ( | double | theta | ) |
Rotating a 2D mesh equates that rotation around the z-axis.
theta | is the angle of rotation in radians |
Definition at line 471 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RotateZ().
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RotateX | ( | const double | theta | ) |
Rotate the mesh about the x-axis.
theta | is the angle of rotation in radians |
Definition at line 419 of file AbstractMesh.cpp.
References EXCEPTION, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RotateY | ( | const double | theta | ) |
Rotate the mesh about the y-axis.
theta | is the angle of rotation in radians |
Definition at line 435 of file AbstractMesh.cpp.
References EXCEPTION, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RotateZ | ( | const double | theta | ) |
Rotate the mesh about the z-axis.
theta | is the angle of rotation in radians |
Definition at line 453 of file AbstractMesh.cpp.
References EXCEPTION, and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
Referenced by AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate().
|
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 >, DistributedTetrahedralMesh< DIM, DIM >, and Cylindrical2dVertexMesh.
Definition at line 323 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(), HoneycombVertexMeshGenerator::HoneycombVertexMeshGenerator(), Cylindrical2dVertexMesh::Scale(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Scale().
|
inlineprivate |
Serialize the mesh.
archive | the archive |
version | the current version of this class |
Definition at line 87 of file AbstractMesh.hpp.
|
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 >, and DistributedTetrahedralMesh< DIM, DIM >.
Definition at line 147 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(), and DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SetDistributedVectorFactory().
|
protectedvirtual |
Does nothing. Used in derived classes which have elements
Reimplemented in AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, AbstractTetrahedralMesh< ELEMENT_DIM, ELEMENT_DIM >, AbstractTetrahedralMesh< DIM, DIM >, AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >, DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, and DistributedTetrahedralMesh< DIM, DIM >.
Definition at line 127 of file AbstractMesh.cpp.
Referenced by AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistributedVectorFactory().
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::SetMeshHasChangedSinceLoading | ( | ) |
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 503 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshFileBaseName.
Referenced by CylindricalHoneycombMeshGenerator::CylindricalHoneycombMeshGenerator(), VertexBasedCellPopulation< DIM >::GetTetrahedralMeshForPdeModifier(), HoneycombMeshGenerator::HoneycombMeshGenerator(), NodesOnlyMesh< SPACE_DIM >::ReMesh(), and MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::Update().
|
privatepure 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 >, DistributedTetrahedralMesh< DIM, DIM >, NodesOnlyMesh< SPACE_DIM >, NodesOnlyMesh< DIM >, NodesOnlyMesh< 2 >, VertexMesh< ELEMENT_DIM, SPACE_DIM >, VertexMesh< ELEMENT_DIM, ELEMENT_DIM >, VertexMesh< DIM, DIM >, TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, TetrahedralMesh< DIM, DIM >, TetrahedralMesh< 3, 3 >, PottsMesh< DIM >, and PottsMesh< SPACE_DIM >.
Referenced by AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNode().
|
virtual |
Translate the mesh given the displacement vector. This is the translation method that actually does the work. Should be overridden when the child class has halo nodes.
rDisplacement | is a translation vector of the correct size |
Reimplemented in DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >, and DistributedTetrahedralMesh< DIM, DIM >.
Definition at line 366 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 >::ConstructRegularSlabMeshWithDimensionSplit(), AbstractBoxDomainPdeModifier< DIM >::GenerateFeMesh(), HoneycombMeshGenerator::GetCircularMesh(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Translate().
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Translate | ( | const double | xMovement = 0.0 , |
const double | yMovement = 0.0 , |
||
const double | zMovement = 0.0 |
||
) |
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 345 of file AbstractMesh.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Translate().
|
friend |
Needed for serialization.
Definition at line 79 of file AbstractMesh.hpp.
|
protected |
Vector of pointers to boundary nodes in the mesh.
Definition at line 99 of file AbstractMesh.hpp.
Referenced by QuadraticMeshHelper< DIM >::AddNodeToBoundaryElement(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMesh(), 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(), 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(), and MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReMesh().
|
protected |
Whether this mesh changes during simulation (used to know whether to write a new one to file)
Definition at line 125 of file AbstractMesh.hpp.
Referenced by Toroidal2dVertexMesh::ConstructFromMeshReader(), Cylindrical2dVertexMesh::Cylindrical2dVertexMesh(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::IsMeshChanging(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::MutableMesh(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::MutableVertexMesh(), AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::save(), AbstractMesh< SPACE_DIM, SPACE_DIM >::serialize(), and VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh().
|
protected |
If the mesh is constructed from file using a MeshReader, this member variable stores the base name of these files.
Definition at line 120 of file AbstractMesh.hpp.
Referenced by 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().
|
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 mNodePermutation[original_index] holds the new assigned index of that node in memory
Definition at line 114 of file AbstractMesh.hpp.
Referenced by DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ComputeMeshPartitioning(), MixedDimensionMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeFromPrePermutationIndex(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ParMetisLibraryNodeAndElementPartitioning(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ReorderNodes(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::rGetNodePermutation().
|
protected |
Vector of pointers to nodes in the mesh.
Definition at line 96 of file AbstractMesh.hpp.
Referenced by MutableMesh< ELEMENT_DIM, SPACE_DIM >::AddNode(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::AddNode(), NodesOnlyMesh< SPACE_DIM >::AddNodeWithFixedIndex(), NodesOnlyMesh< SPACE_DIM >::CalculateBoundaryNodePairs(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::CalculateBoundingBox(), NodesOnlyMesh< SPACE_DIM >::CalculateInteriorNodePairs(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMaximumContainingElementsPerProcess(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMaximumNodeConnectivityPerProcess(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::Clear(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructCuboid(), AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), Toroidal2dVertexMesh::ConstructFromMeshReader(), NodesOnlyMesh< SPACE_DIM >::ConstructFromMeshReader(), 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(), Cylindrical2dVertexMesh::Cylindrical2dVertexMesh(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteBoundaryNodeAt(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteNode(), NodesOnlyMesh< SPACE_DIM >::DeleteNode(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteNodePriorToReMesh(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DeleteNodePriorToReMesh(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::DivideEdge(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ExportToMesher(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GenerateVerticesFromElementCircumcentres(), NodesOnlyMesh< SPACE_DIM >::GetAllNodeIndices(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistanceBetweenNodes(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNearestNodeIndex(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNeighbouringElementIndices(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNode(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeIteratorBegin(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeIteratorEnd(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeOrHaloNode(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllNodes(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::GetNumLocalNodes(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodeAttributes(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), NodesOnlyMesh< SPACE_DIM >::GetNumNodes(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetWidth(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::IdentifySwapType(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ImportFromMesher(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::NodeIterator::IsAtEnd(), MutableMesh< SPACE_DIM, SPACE_DIM >::load(), NodesOnlyMesh< 2 >::load(), 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 >::PerformRosetteRankIncrease(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::PerformT3Swap(), Cylindrical2dMesh::ReconstructCylindricalMesh(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::RefineElement(), Cylindrical2dNodesOnlyMesh::RefreshMesh(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::RegisterNode(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReIndex(), Cylindrical2dMesh::ReMesh(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::ReMesh(), NodesOnlyMesh< SPACE_DIM >::RemoveDeletedNodes(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::RemoveDeletedNodes(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ReorderNodes(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::RescaleMeshFromBoundaryNode(), NodesOnlyMesh< SPACE_DIM >::ResizeBoxCollection(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Rotate(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate(), MutableMesh< SPACE_DIM, SPACE_DIM >::save(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Scale(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::SetNode(), MutableVertexMesh< ELEMENT_DIM, SPACE_DIM >::SetNode(), TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::SolveNodeMapping(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::SolveNodeMapping(), MutableMesh< ELEMENT_DIM, SPACE_DIM >::SplitEdge(), DistributedTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::Translate(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Translate(), NodesOnlyMesh< SPACE_DIM >::UpdateNodeIndices(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::VertexMesh(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::~AbstractMesh().
|
protected |
DistributedVectorFactory capable of reproducing the given number of nodes owned by each processor.
Definition at line 105 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(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistributedVectorFactory(), AbstractTetrahedralMesh< SPACE_DIM, SPACE_DIM >::load(), 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().