Chaste  Release::2018.1
DistributedQuadraticMesh< DIM > Class Template Reference

#include <DistributedQuadraticMesh.hpp>

+ Inheritance diagram for DistributedQuadraticMesh< DIM >:
+ Collaboration diagram for DistributedQuadraticMesh< DIM >:

Public Member Functions

 DistributedQuadraticMesh (DistributedTetrahedralMeshPartitionType::type partitioningMethod=DistributedTetrahedralMeshPartitionType::PARMETIS_LIBRARY)
 
virtual ~DistributedQuadraticMesh ()
 
void ConstructFromMeshReader (AbstractMeshReader< DIM, DIM > &rMeshReader)
 
- Public Member Functions inherited from DistributedTetrahedralMesh< DIM, DIM >
 DistributedTetrahedralMesh (DistributedTetrahedralMeshPartitionType::type partitioningMethod=DistributedTetrahedralMeshPartitionType::PARMETIS_LIBRARY)
 
virtual ~DistributedTetrahedralMesh ()
 
void SetDistributedVectorFactory (DistributedVectorFactory *pFactory)
 
virtual void ConstructFromMeshReader (AbstractMeshReader< ELEMENT_DIM, SPACE_DIM > &rMeshReader)
 
unsigned GetNumLocalNodes () const
 
unsigned GetNumHaloNodes () const
 
unsigned GetNumLocalElements () const
 
unsigned GetNumLocalBoundaryElements () const
 
unsigned GetNumNodes () const
 
unsigned GetNumAllNodes () const
 
unsigned GetNumElements () const
 
DistributedTetrahedralMeshPartitionType::type GetPartitionType () const
 
unsigned GetNumBoundaryElements () const
 
void GetHaloNodeIndices (std::vector< unsigned > &rHaloIndices) const
 
void SetProcessRegion (ChasteCuboid< SPACE_DIM > *pRegion)
 
ChasteCuboid< SPACE_DIM > * GetProcessRegion ()
 
bool CalculateDesignatedOwnershipOfElement (unsigned elementIndex)
 
bool CalculateDesignatedOwnershipOfBoundaryElement (unsigned faceIndex)
 
void ConstructLinearMesh (unsigned width)
 
void ConstructRectangularMesh (unsigned width, unsigned height, bool stagger=true)
 
void ConstructCuboid (unsigned width, unsigned height, unsigned depth)
 
virtual void Scale (const double xFactor=1.0, const double yFactor=1.0, const double zFactor=1.0)
 
Node< SPACE_DIM > * GetNodeOrHaloNode (unsigned index) const
 
virtual ChasteCuboid< SPACE_DIM > CalculateBoundingBox () const
 
virtual unsigned GetNearestNodeIndex (const ChastePoint< SPACE_DIM > &rTestPoint)
 
virtual c_vector< double, 2 > CalculateMinMaxEdgeLengths ()
 
void Rotate (c_matrix< double, SPACE_DIM, SPACE_DIM > rotationMatrix)
 
void Translate (const c_vector< double, SPACE_DIM > &rDisplacement)
 
HaloNodeIterator GetHaloNodeIteratorBegin () const
 
HaloNodeIterator GetHaloNodeIteratorEnd () const
 
- Public Member Functions inherited from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >
ElementIterator GetElementIteratorBegin (bool skipDeletedElements=true)
 
ElementIterator GetElementIteratorEnd ()
 
 AbstractTetrahedralMesh ()
 
virtual ~AbstractTetrahedralMesh ()
 
unsigned GetNumAllElements () const
 
unsigned GetNumAllBoundaryElements () const
 
virtual unsigned GetNumCableElements () const
 
virtual unsigned GetNumVertices () const
 
virtual unsigned GetMaximumNodeIndex ()
 
Element< ELEMENT_DIM, SPACE_DIM > * GetElement (unsigned index) const
 
BoundaryElement< ELEMENT_DIM-1,
SPACE_DIM > * 
GetBoundaryElement (unsigned index) const
 
void ConstructFromMesh (AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM > &rOtherMesh)
 
BoundaryElementIterator GetBoundaryElementIteratorBegin () const
 
BoundaryElementIterator GetBoundaryElementIteratorEnd () const
 
virtual void GetInverseJacobianForElement (unsigned elementIndex, c_matrix< double, SPACE_DIM, ELEMENT_DIM > &rJacobian, double &rJacobianDeterminant, c_matrix< double, ELEMENT_DIM, SPACE_DIM > &rInverseJacobian) const
 
virtual void GetWeightedDirectionForBoundaryElement (unsigned elementIndex, c_vector< double, SPACE_DIM > &rWeightedDirection, double &rJacobianDeterminant) const
 
void CheckOutwardNormals ()
 
void ConstructRegularSlabMesh (double spaceStep, double width, double height=0, double depth=0)
 
void ConstructRegularSlabMeshWithDimensionSplit (unsigned dimension, double spaceStep, double width, double height=0, double depth=0)
 
unsigned CalculateMaximumNodeConnectivityPerProcess () const
 
void CalculateNodeExchange (std::vector< std::vector< unsigned > > &rNodesToSendPerProcess, std::vector< std::vector< unsigned > > &rNodesToReceivePerProcess)
 
unsigned GetContainingElementIndex (const ChastePoint< SPACE_DIM > &rTestPoint, bool strict=false, std::set< unsigned > testElements=std::set< unsigned >(), bool onlyTryWithTestElements=false)
 
unsigned GetNearestElementIndexFromTestElements (const ChastePoint< SPACE_DIM > &rTestPoint, std::set< unsigned > testElements)
 
- Public Member Functions inherited from AbstractMesh< ELEMENT_DIM, SPACE_DIM >
NodeIterator GetNodeIteratorBegin (bool skipDeletedNodes=true)
 
NodeIterator GetNodeIteratorEnd ()
 
 AbstractMesh ()
 
virtual ~AbstractMesh ()
 
unsigned GetNumBoundaryNodes () const
 
unsigned GetNumNodeAttributes () const
 
Node< SPACE_DIM > * GetNode (unsigned index) const
 
Node< SPACE_DIM > * GetNodeFromPrePermutationIndex (unsigned index) const
 
virtual void ReadNodesPerProcessorFile (const std::string &rNodesPerProcessorFile)
 
virtual DistributedVectorFactoryGetDistributedVectorFactory ()
 
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
 
void Translate (const double xMovement=0.0, const double yMovement=0.0, const double zMovement=0.0)
 
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 ()
 

Private Member Functions

template<class Archive >
void serialize (Archive &archive, const unsigned int version)
 

Friends

class boost::serialization::access
 

Additional Inherited Members

- Public Types inherited from DistributedTetrahedralMesh< DIM, DIM >
typedef std::vector< Node
< SPACE_DIM >
* >::const_iterator 
HaloNodeIterator
 
- Public Types inherited from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >
typedef std::vector
< BoundaryElement< ELEMENT_DIM-1,
SPACE_DIM >
* >::const_iterator 
BoundaryElementIterator
 
- Public Types inherited from AbstractMesh< ELEMENT_DIM, SPACE_DIM >
typedef std::vector< Node
< SPACE_DIM >
* >::const_iterator 
BoundaryNodeIterator
 
- Protected Member Functions inherited from DistributedTetrahedralMesh< DIM, DIM >
unsigned SolveNodeMapping (unsigned index) const
 
unsigned SolveElementMapping (unsigned index) const
 
unsigned SolveBoundaryElementMapping (unsigned index) const
 
- Protected Member Functions inherited from AbstractMesh< ELEMENT_DIM, SPACE_DIM >
ChasteCuboid< SPACE_DIM > CalculateBoundingBox (const std::vector< Node< SPACE_DIM > * > &rNodes) const
 
- Protected Attributes inherited from AbstractTetrahedralMesh< ELEMENT_DIM, SPACE_DIM >
bool mMeshIsLinear
 
std::vector< Element
< ELEMENT_DIM, SPACE_DIM > * > 
mElements
 
std::vector< BoundaryElement
< ELEMENT_DIM-1, SPACE_DIM > * > 
mBoundaryElements
 
- Protected Attributes inherited from AbstractMesh< ELEMENT_DIM, SPACE_DIM >
std::vector< Node< SPACE_DIM > * > mNodes
 
std::vector< Node< SPACE_DIM > * > mBoundaryNodes
 
DistributedVectorFactorympDistributedVectorFactory
 
std::vector< unsignedmNodePermutation
 
std::string mMeshFileBaseName
 
bool mMeshChangesDuringSimulation
 

Detailed Description

template<unsigned DIM>
class DistributedQuadraticMesh< DIM >

Parallel implementation of a quadratic mesh Nodes are distributed such that each process has

  • A set of nodes (possibly reordered) with contiguous global indices
  • A local copy of all the elements supporting those nodes
  • A local copy of ghost/halo nodes which are all the nodes used in the supporting elements, but not owned outright.

Definition at line 64 of file DistributedQuadraticMesh.hpp.

Constructor & Destructor Documentation

template<unsigned DIM>
DistributedQuadraticMesh< DIM >::DistributedQuadraticMesh ( DistributedTetrahedralMeshPartitionType::type  partitioningMethod = DistributedTetrahedralMeshPartitionType::PARMETIS_LIBRARY)

Constructor.

Parameters
partitioningMethoddefaults to PARMETIS_LIBRARY, Nb: This is should have the same default behaviour as DistributedTetrahedralMesh

Definition at line 40 of file DistributedQuadraticMesh.cpp.

template<unsigned DIM>
DistributedQuadraticMesh< DIM >::~DistributedQuadraticMesh ( )
virtual

Destructor.

Definition at line 47 of file DistributedQuadraticMesh.cpp.

Member Function Documentation

template<unsigned DIM>
template<class Archive >
void DistributedQuadraticMesh< DIM >::serialize ( Archive &  archive,
const unsigned int  version 
)
inlineprivate

Serialize the mesh.

Parameters
archivethe archive
versionthe current version of this class

Definition at line 75 of file DistributedQuadraticMesh.hpp.

Friends And Related Function Documentation

template<unsigned DIM>
friend class boost::serialization::access
friend

Needed for serialization.

Definition at line 67 of file DistributedQuadraticMesh.hpp.


The documentation for this class was generated from the following files: