AbstractMesh< ELEMENT_DIM, SPACE_DIM > Class Template Reference

#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 >.

Collaboration diagram for AbstractMesh< ELEMENT_DIM, SPACE_DIM >:
Collaboration graph
[legend]

List of all members.

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 DistributedVectorFactoryGetDistributedVectorFactory ()
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
DistributedVectorFactorympDistributedVectorFactory
std::vector< unsignedmNodesPermutation
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

Detailed Description

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
class AbstractMesh< ELEMENT_DIM, SPACE_DIM >

Abstract base class for all meshes.

Definition at line 53 of file AbstractMesh.hpp.


Member Typedef Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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.


Constructor & Destructor Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractMesh< ELEMENT_DIM, SPACE_DIM >::AbstractMesh (  )  [inline]

Constructor.

Definition at line 37 of file AbstractMesh.cpp.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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.


Member Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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

Returns:
The minimum and maximum co-ordinates of any node in each dimension

Todo:
#1322 use a const version of NodeIterator here

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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractMesh< ELEMENT_DIM, SPACE_DIM >::CalculateMaximumContainingElementsPerProcess (  )  const [inline]
Returns:
Iterates through local nodes and finds the maximum number of containing elements for all locally owned nodes Useful for determining FEM matrix fill.

Definition at line 411 of file AbstractMesh.cpp.

References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodes.

Referenced by AbstractTetrahedralMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteNclFile().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractMesh< ELEMENT_DIM, SPACE_DIM >::BoundaryNodeIterator AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryNodeIteratorBegin (  )  const [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractMesh< ELEMENT_DIM, SPACE_DIM >::BoundaryNodeIterator AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetBoundaryNodeIteratorEnd (  )  const [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistanceBetweenNodes ( unsigned  indexA,
unsigned  indexB 
) [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
DistributedVectorFactory * AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetDistributedVectorFactory (  )  [inline, virtual]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::string AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetMeshFileBaseName (  )  const [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
Node< SPACE_DIM > * AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNode ( unsigned  index  )  const [inline]

Get the node with a given index in the mesh.

Parameters:
index the global index of the node
Returns:
a pointer to 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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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!

Parameters:
index the global index of the node prior to a permutation being applied
Returns:
a pointer to the node

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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractMesh< ELEMENT_DIM, SPACE_DIM >::NodeIterator AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeIteratorBegin ( bool  skipDeletedNodes = true  )  [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
AbstractMesh< ELEMENT_DIM, SPACE_DIM >::NodeIterator AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeIteratorEnd (  )  [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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()).

Parameters:
index the global index of the node
Returns:
a pointer to 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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumAllNodes (  )  const [inline, virtual]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
unsigned AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNumBoundaryNodes (  )  const [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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).

Parameters:
rLocationA a c_vector of coordinates
rLocationB a c_vector of coordinates
Returns:
c_vector from location A to location B.

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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
double AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetWidth ( const unsigned rDimension  )  const [inline, virtual]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractMesh< ELEMENT_DIM, SPACE_DIM >::IsMeshChanging (  )  const [inline]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractMesh< ELEMENT_DIM, SPACE_DIM >::IsMeshOnDisk (  )  const [inline]

Get whether this mesh was read from file.

Returns:
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::ReadNodesPerProcessorFile ( const std::string &  rNodesPerProcessorFile  )  [inline, virtual]

Read in the number of nodes per processor from file.

Parameters:
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.

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RefreshMesh (  )  [inline, virtual]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate ( double  theta  )  [inline]

Rotating a 2D mesh equates that rotation around the z-axis.

Parameters:
theta is the angle of rotation in radians

Definition at line 394 of file AbstractMesh.cpp.

References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RotateZ().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::Rotate ( c_vector< double, 3 >  axis,
double  angle 
) [inline]

Do an angle axis rotation.

Parameters:
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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.

Parameters:
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RotateX ( const double  theta  )  [inline]

Rotate the mesh about the x-axis.

Parameters:
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RotateY ( const double  theta  )  [inline]

Rotate the mesh about the y-axis.

Parameters:
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::RotateZ ( const double  theta  )  [inline]

Rotate the mesh about the z-axis.

Parameters:
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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.

Parameters:
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
template<class Archive >
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::serialize ( Archive &  archive,
const unsigned int  version 
) [inline, private]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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.

Parameters:
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
void AbstractMesh< ELEMENT_DIM, SPACE_DIM >::SetElementOwnerships (  )  [inline, protected, virtual]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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.

Parameters:
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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.

Parameters:
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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.

Parameters:
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().


Friends And Related Function Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
friend class boost::serialization::access [friend]

Member Data Documentation

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector<Node<SPACE_DIM> *> AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mBoundaryNodes [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
bool AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshChangesDuringSimulation [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::string AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mMeshFileBaseName [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
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().

template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
std::vector<unsigned> AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mNodesPermutation [protected]
template<unsigned ELEMENT_DIM, unsigned SPACE_DIM>
DistributedVectorFactory* AbstractMesh< ELEMENT_DIM, SPACE_DIM >::mpDistributedVectorFactory [protected]

The documentation for this class was generated from the following files:
Generated on Thu Dec 22 13:01:17 2011 for Chaste by  doxygen 1.6.3