Chaste  Release::3.4
MeshBasedCellPopulationWithGhostNodes< DIM > Class Template Reference

#include <MeshBasedCellPopulationWithGhostNodes.hpp>

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

Public Member Functions

 MeshBasedCellPopulationWithGhostNodes (MutableMesh< DIM, DIM > &rMesh, std::vector< CellPtr > &rCells, const std::vector< unsigned > locationIndices=std::vector< unsigned >(), bool deleteMesh=false, double ghostSpringStiffness=15.0)
 
 MeshBasedCellPopulationWithGhostNodes (MutableMesh< DIM, DIM > &rMesh, double ghostSpringStiffness=15.0)
 
virtual ~MeshBasedCellPopulationWithGhostNodes ()
 
std::set< unsignedGetNeighbouringLocationIndices (CellPtr pCell)
 
void UpdateNodeLocations (double dt)
 
std::vector< bool > & rGetGhostNodes ()
 
bool IsGhostNode (unsigned index)
 
std::set< unsignedGetGhostNodeIndices ()
 
void UpdateGhostPositions (double dt)
 
void UpdateGhostNodesAfterReMesh (NodeMap &rMap)
 
c_vector< double, DIM > CalculateForceBetweenGhostNodes (const unsigned &rNodeAGlobalIndex, const unsigned &rNodeBGlobalIndex)
 
CellPtr AddCell (CellPtr pNewCell, const c_vector< double, DIM > &rCellDivisionVector, CellPtr pParentCell)
 
virtual void OpenWritersFiles (OutputFileHandler &rOutputFileHandler)
 
virtual void WriteVtkResultsToFile (const std::string &rDirectory)
 
void OutputCellPopulationParameters (out_stream &rParamsFile)
 
- Public Member Functions inherited from MeshBasedCellPopulation< DIM >
 MeshBasedCellPopulation (MutableMesh< ELEMENT_DIM, ELEMENT_DIM > &rMesh, std::vector< CellPtr > &rCells, const std::vector< unsigned > locationIndices=std::vector< unsigned >(), bool deleteMesh=false, bool validate=true)
 
 MeshBasedCellPopulation (MutableMesh< ELEMENT_DIM, ELEMENT_DIM > &rMesh)
 
virtual ~MeshBasedCellPopulation ()
 
MutableMesh< ELEMENT_DIM,
ELEMENT_DIM > & 
rGetMesh ()
 
const MutableMesh< ELEMENT_DIM,
ELEMENT_DIM > & 
rGetMesh () const
 
bool UseAreaBasedDampingConstant ()
 
unsigned AddNode (Node< ELEMENT_DIM > *pNewNode)
 
void SetNode (unsigned nodeIndex, ChastePoint< ELEMENT_DIM > &rNewLocation)
 
double GetDampingConstant (unsigned nodeIndex)
 
void SetAreaBasedDampingConstant (bool useAreaBasedDampingConstant)
 
virtual unsigned RemoveDeadCells ()
 
virtual CellPtr AddCell (CellPtr pNewCell, const c_vector< double, ELEMENT_DIM > &rCellDivisionVector, CellPtr pParentCell)
 
virtual void WriteResultsToFiles (const std::string &rDirectory)
 
virtual void AcceptPopulationWriter (boost::shared_ptr< AbstractCellPopulationWriter< ELEMENT_DIM, ELEMENT_DIM > > pPopulationWriter)
 
virtual void AcceptPopulationCountWriter (boost::shared_ptr< AbstractCellPopulationCountWriter< ELEMENT_DIM, ELEMENT_DIM > > pPopulationCountWriter)
 
virtual void AcceptCellWriter (boost::shared_ptr< AbstractCellWriter< ELEMENT_DIM, ELEMENT_DIM > > pCellWriter, CellPtr pCell)
 
virtual void Update (bool hasHadBirthsOrDeaths=true)
 
void TessellateIfNeeded ()
 
void DivideLongSprings (double springDivisionThreshold)
 
Node< ELEMENT_DIM > * GetNode (unsigned index)
 
unsigned GetNumNodes ()
 
double GetVolumeOfCell (CellPtr pCell)
 
void CreateVoronoiTessellation ()
 
VertexMesh< ELEMENT_DIM,
ELEMENT_DIM > * 
GetVoronoiTessellation ()
 
double GetVolumeOfVoronoiElement (unsigned index)
 
double GetSurfaceAreaOfVoronoiElement (unsigned index)
 
double GetVoronoiEdgeLength (unsigned index1, unsigned index2)
 
double GetWidth (const unsigned &rDimension)
 
SpringIterator SpringsBegin ()
 
SpringIterator SpringsEnd ()
 
void CheckCellPointers ()
 
double GetAreaBasedDampingConstantParameter ()
 
void SetAreaBasedDampingConstantParameter (double areaBasedDampingConstantParameter)
 
std::vector< std::pair< Node
< ELEMENT_DIM > *, Node
< ELEMENT_DIM > * > > & 
rGetNodePairs ()
 
void OutputCellPopulationParameters (out_stream &rParamsFile)
 
void SetWriteVtkAsPoints (bool writeVtkAsPoints)
 
bool GetWriteVtkAsPoints ()
 
void SetOutputMeshInVtk (bool outputMeshInVtk)
 
bool GetOutputMeshInVtk ()
 
std::set< unsignedGetNeighbouringNodeIndices (unsigned index)
 
void CalculateRestLengths ()
 
double GetRestLength (unsigned indexA, unsigned indexB)
 
void SetRestLength (unsigned indexA, unsigned indexB, double restLength)
 
- Public Member Functions inherited from AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >
 AbstractCentreBasedCellPopulation (AbstractMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, std::vector< CellPtr > &rCells, const std::vector< unsigned > locationIndices=std::vector< unsigned >())
 
c_vector< double, SPACE_DIM > GetLocationOfCellCentre (CellPtr pCell)
 
Node< SPACE_DIM > * GetNodeCorrespondingToCell (CellPtr pCell)
 
CellPtr AddCell (CellPtr pNewCell, const c_vector< double, SPACE_DIM > &rCellDivisionVector, CellPtr pParentCell=CellPtr())
 
std::pair< CellPtr, CellPtr > CreateCellPair (CellPtr pCell1, CellPtr pCell2)
 
bool IsMarkedSpring (const std::pair< CellPtr, CellPtr > &rCellPair)
 
void MarkSpring (std::pair< CellPtr, CellPtr > &rCellPair)
 
void UnmarkSpring (std::pair< CellPtr, CellPtr > &rCellPair)
 
bool IsCellAssociatedWithADeletedLocation (CellPtr pCell)
 
virtual bool IsParticle (unsigned index)
 
double GetMeinekeDivisionSeparation ()
 
void SetMeinekeDivisionSeparation (double divisionSeparation)
 
- Public Member Functions inherited from AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM >
 AbstractOffLatticeCellPopulation (AbstractMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, std::vector< CellPtr > &rCells, const std::vector< unsigned > locationIndices=std::vector< unsigned >())
 
virtual unsigned AddNode (Node< SPACE_DIM > *pNewNode)=0
 
virtual void SetNode (unsigned nodeIndex, ChastePoint< SPACE_DIM > &rNewLocation)=0
 
void SetDampingConstantNormal (double dampingConstantNormal)
 
void SetDampingConstantMutant (double dampingConstantMutant)
 
void SetAbsoluteMovementThreshold (double absoluteMovementThreshold)
 
double GetAbsoluteMovementThreshold ()
 
double GetDampingConstantNormal ()
 
double GetDampingConstantMutant ()
 
- Public Member Functions inherited from AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >
 AbstractCellPopulation (AbstractMesh< ELEMENT_DIM, SPACE_DIM > &rMesh, std::vector< CellPtr > &rCells, const std::vector< unsigned > locationIndices=std::vector< unsigned >())
 
virtual ~AbstractCellPopulation ()
 
void InitialiseCells ()
 
void SetDataOnAllCells (const std::string &rDataName, double dataValue)
 
AbstractMesh< ELEMENT_DIM,
SPACE_DIM > & 
rGetMesh ()
 
std::list< CellPtr > & rGetCells ()
 
std::vector< unsignedGetCellMutationStateCount ()
 
std::vector< unsignedGetCellProliferativeTypeCount ()
 
std::vector< unsignedGetCellCyclePhaseCount ()
 
unsigned GetNumRealCells ()
 
unsigned GetNumAllCells ()
 
void SetCellAncestorsToLocationIndices ()
 
std::set< unsignedGetCellAncestors ()
 
virtual CellPtr GetCellUsingLocationIndex (unsigned index)
 
std::set< CellPtr > GetCellsUsingLocationIndex (unsigned index)
 
bool IsCellAttachedToLocationIndex (unsigned index)
 
void SetCellUsingLocationIndex (unsigned index, CellPtr pCell)
 
virtual void AddCellUsingLocationIndex (unsigned index, CellPtr pCell)
 
virtual void RemoveCellUsingLocationIndex (unsigned index, CellPtr pCell)
 
void MoveCellInLocationMap (CellPtr pCell, unsigned old_index, unsigned new_index)
 
unsigned GetLocationIndexUsingCell (CellPtr pCell)
 
boost::shared_ptr
< CellPropertyRegistry
GetCellPropertyRegistry ()
 
void SetDefaultCellMutationStateAndProliferativeTypeOrdering ()
 
c_vector< double, SPACE_DIM > GetCentroidOfCellPopulation ()
 
virtual void UpdateCellProcessLocation ()
 
void CloseWritersFiles ()
 
virtual void AcceptPopulationWriter (boost::shared_ptr< AbstractCellPopulationWriter< ELEMENT_DIM, SPACE_DIM > > pPopulationWriter)=0
 
virtual void AcceptPopulationCountWriter (boost::shared_ptr< AbstractCellPopulationCountWriter< ELEMENT_DIM, SPACE_DIM > > pPopulationCountWriter)=0
 
virtual void AcceptCellWriter (boost::shared_ptr< AbstractCellWriter< ELEMENT_DIM, SPACE_DIM > > pCellWriter, CellPtr pCell)=0
 
void OutputCellPopulationInfo (out_stream &rParamsFile)
 
bool GetOutputResultsForChasteVisualizer ()
 
template<template< unsigned, unsigned > class T>
void AddPopulationWriter ()
 
template<template< unsigned, unsigned > class T>
void AddCellWriter ()
 
template<template< unsigned, unsigned > class T>
void AddCellPopulationCountWriter ()
 
void AddPopulationWriter (boost::shared_ptr< AbstractCellPopulationWriter< ELEMENT_DIM, SPACE_DIM > > pPopulationWriter)
 
void AddCellWriter (boost::shared_ptr< AbstractCellWriter< ELEMENT_DIM, SPACE_DIM > > pCellWriter)
 
void AddCellPopulationCountWriter (boost::shared_ptr< AbstractCellPopulationCountWriter< ELEMENT_DIM, SPACE_DIM > > pCellPopulationCountWriter)
 
template<template< unsigned, unsigned > class T>
bool HasWriter () const
 
void SetOutputResultsForChasteVisualizer (bool outputResultsForChasteVisualizer)
 
c_vector< double, SPACE_DIM > GetSizeOfCellPopulation ()
 
virtual bool IsRoomToDivide (CellPtr pCell)
 
std::pair< unsigned, unsignedCreateOrderedPair (unsigned index1, unsigned index2)
 
Iterator Begin ()
 
Iterator End ()
 
- Public Member Functions inherited from Identifiable
virtual ~Identifiable ()
 
std::string GetIdentifier () const
 

Protected Member Functions

virtual void AcceptCellWritersAcrossPopulation ()
 
- Protected Member Functions inherited from AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >
 AbstractCentreBasedCellPopulation (AbstractMesh< ELEMENT_DIM, SPACE_DIM > &rMesh)
 
- Protected Member Functions inherited from AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM >
 AbstractOffLatticeCellPopulation (AbstractMesh< ELEMENT_DIM, SPACE_DIM > &rMesh)
 
- Protected Member Functions inherited from AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >
 AbstractCellPopulation (AbstractMesh< ELEMENT_DIM, SPACE_DIM > &rMesh)
 

Private Member Functions

template<class Archive >
void serialize (Archive &archive, const unsigned int version)
 
void SetGhostNodes (const std::set< unsigned > &rGhostNodeIndices)
 
void Validate ()
 

Private Attributes

std::vector< boolmIsGhostNode
 
double mGhostSpringStiffness
 

Friends

class TestMeshBasedCellPopulationWithGhostNodes
 
class boost::serialization::access
 

Additional Inherited Members

- Protected Attributes inherited from MeshBasedCellPopulation< DIM >
VertexMesh< ELEMENT_DIM,
ELEMENT_DIM > * 
mpVoronoiTessellation
 
MutableMesh< ELEMENT_DIM,
ELEMENT_DIM > * 
mpMutableMesh
 
bool mDeleteMesh
 
std::map< std::pair< unsigned,
unsigned >, double
mSpringRestLengths
 
bool mUseAreaBasedDampingConstant
 
double mAreaBasedDampingConstantParameter
 
bool mWriteVtkAsPoints
 
bool mOutputMeshInVtk
 
bool mHasVariableRestLength
 
std::vector< std::pair< Node
< ELEMENT_DIM > *, Node
< ELEMENT_DIM > * > > 
mNodePairs
 
- Protected Attributes inherited from AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >
double mMeinekeDivisionSeparation
 
std::set< std::pair< CellPtr,
CellPtr > > 
mMarkedSprings
 
- Protected Attributes inherited from AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM >
double mDampingConstantNormal
 
double mDampingConstantMutant
 
double mAbsoluteMovementThreshold
 
- Protected Attributes inherited from AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >
std::map< unsigned, std::set
< CellPtr > > 
mLocationCellMap
 
std::map< Cell *, unsignedmCellLocationMap
 
AbstractMesh< ELEMENT_DIM,
SPACE_DIM > & 
mrMesh
 
std::list< CellPtr > mCells
 
c_vector< double, SPACE_DIM > mCentroid
 
out_stream mpVtkMetaFile
 
boost::shared_ptr
< CellPropertyRegistry
mpCellPropertyRegistry
 
bool mOutputResultsForChasteVisualizer
 
std::vector< boost::shared_ptr
< AbstractCellWriter
< ELEMENT_DIM, SPACE_DIM > > > 
mCellWriters
 
std::vector< boost::shared_ptr
< AbstractCellPopulationWriter
< ELEMENT_DIM, SPACE_DIM > > > 
mCellPopulationWriters
 
std::vector< boost::shared_ptr
< AbstractCellPopulationCountWriter
< ELEMENT_DIM, SPACE_DIM > > > 
mCellPopulationCountWriters
 

Detailed Description

template<unsigned DIM>
class MeshBasedCellPopulationWithGhostNodes< DIM >

A facade class encapsulating a mesh-based cell population with ghost nodes.

If simulating a crypt with a mesh-based cell population, the mesh should be surrounded by at least one layer of ghost nodes. These are nodes which do not correspond to a cell, but are necessary for remeshing (because the remesher tries to create a convex hull of the set of nodes) and visualization purposes. The MeshBasedCellPopulationWithGhostNodes class deals with these ghost nodes, hiding the 'ghost nodes' concept from the OffLatticeSimulation class, so the latter only ever deals with real cells.

Definition at line 56 of file MeshBasedCellPopulationWithGhostNodes.hpp.

Constructor & Destructor Documentation

template<unsigned DIM>
MeshBasedCellPopulationWithGhostNodes< DIM >::MeshBasedCellPopulationWithGhostNodes ( MutableMesh< DIM, DIM > &  rMesh,
std::vector< CellPtr > &  rCells,
const std::vector< unsigned locationIndices = std::vector<unsigned>(),
bool  deleteMesh = false,
double  ghostSpringStiffness = 15.0 
)

Create a new cell population from a mesh and collection of cells.

Parameters
rMesha mutable tetrahedral mesh
rCellscells corresponding to the nodes of the mesh
locationIndicesan optional vector of location indices that correspond to real cells
deleteMeshset to true if you want the cell population to free the mesh memory on destruction
ghostSpringStiffnessspring stiffness used to move the ghost nodes defaults to 15.0.

Definition at line 50 of file MeshBasedCellPopulationWithGhostNodes.cpp.

References MeshBasedCellPopulation< DIM >::GetNode(), MeshBasedCellPopulation< DIM >::GetNumNodes(), MeshBasedCellPopulationWithGhostNodes< DIM >::mIsGhostNode, MeshBasedCellPopulationWithGhostNodes< DIM >::SetGhostNodes(), and MeshBasedCellPopulationWithGhostNodes< DIM >::Validate().

template<unsigned DIM>
MeshBasedCellPopulationWithGhostNodes< DIM >::MeshBasedCellPopulationWithGhostNodes ( MutableMesh< DIM, DIM > &  rMesh,
double  ghostSpringStiffness = 15.0 
)

Constructor for use by the de-serializer.

Parameters
rMesha mutable tetrahedral mesh.
ghostSpringStiffnessspring stiffness used to move the ghost nodes defaults to 15.0.

Definition at line 90 of file MeshBasedCellPopulationWithGhostNodes.cpp.

Empty destructor so archiving works with static libraries.

Definition at line 98 of file MeshBasedCellPopulationWithGhostNodes.cpp.

Member Function Documentation

template<unsigned DIM>
void MeshBasedCellPopulationWithGhostNodes< DIM >::AcceptCellWritersAcrossPopulation ( )
protectedvirtual

Overridden method

Calls AcceptCellWriter across the whole population, iterating in an appropriate way to skip ghost nodes.

Reimplemented from AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >.

Definition at line 306 of file MeshBasedCellPopulationWithGhostNodes.cpp.

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

template<unsigned DIM>
CellPtr MeshBasedCellPopulationWithGhostNodes< DIM >::AddCell ( CellPtr  pNewCell,
const c_vector< double, DIM > &  rCellDivisionVector,
CellPtr  pParentCell 
)

Overridden AddCell() method.

Add a new cell to the cell population and update mIsGhostNode.

Parameters
pNewCellthe cell to add
rCellDivisionVectorthe position in space at which to put it
pParentCellpointer to a parent cell - this is required for mesh-based cell populations
Returns
address of cell as it appears in the cell list (internal of this method uses a copy constructor along the way)

Definition at line 213 of file MeshBasedCellPopulationWithGhostNodes.cpp.

References MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::AddCell().

template<unsigned DIM>
c_vector< double, DIM > MeshBasedCellPopulationWithGhostNodes< DIM >::CalculateForceBetweenGhostNodes ( const unsigned rNodeAGlobalIndex,
const unsigned rNodeBGlobalIndex 
)

This method is used to calculate the force between GHOST nodes.

Parameters
rNodeAGlobalIndex
rNodeBGlobalIndex
Returns
The force exerted on Node A by Node B.

Definition at line 194 of file MeshBasedCellPopulationWithGhostNodes.cpp.

template<unsigned DIM>
std::set< unsigned > MeshBasedCellPopulationWithGhostNodes< DIM >::GetGhostNodeIndices ( )
Returns
the indices of those nodes that are ghost nodes.

Definition at line 115 of file MeshBasedCellPopulationWithGhostNodes.cpp.

template<unsigned DIM>
std::set< unsigned > MeshBasedCellPopulationWithGhostNodes< DIM >::GetNeighbouringLocationIndices ( CellPtr  pCell)
virtual

Overridden GetNeighbouringLocationIndices() method.

Given a cell, returns the set of location indices corresponding to neighbouring cells.

Parameters
pCella cell
Returns
the set of neighbouring location indices.

Reimplemented from AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >.

Definition at line 283 of file MeshBasedCellPopulationWithGhostNodes.cpp.

template<unsigned DIM>
bool MeshBasedCellPopulationWithGhostNodes< DIM >::IsGhostNode ( unsigned  index)
virtual

Overridden IsGhostNode() method.

Find if a given node is a ghost node. The abstract method always returns false but is overridden in subclasses.

Parameters
indexthe global index of a specified node
Returns
whether the node is a ghost node

Reimplemented from AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >.

Definition at line 109 of file MeshBasedCellPopulationWithGhostNodes.cpp.

template<unsigned DIM>
void MeshBasedCellPopulationWithGhostNodes< DIM >::OpenWritersFiles ( OutputFileHandler rOutputFileHandler)
virtual

Overridden OpenWritersFiles() method.

Open all files in mCellPopulationWriters and mCellWriters for writing (not appending).

Parameters
rOutputFileHandlerhandler for the directory in which to open this file.

Reimplemented from MeshBasedCellPopulation< DIM >.

Definition at line 338 of file MeshBasedCellPopulationWithGhostNodes.cpp.

References MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::OpenWritersFiles().

template<unsigned DIM>
void MeshBasedCellPopulationWithGhostNodes< DIM >::OutputCellPopulationParameters ( out_stream &  rParamsFile)
virtual

Outputs CellPopulation parameters to file

As this method is pure virtual, it must be overridden in subclasses.

Parameters
rParamsFilethe file stream to which the parameters are output

Reimplemented from AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >.

Definition at line 427 of file MeshBasedCellPopulationWithGhostNodes.cpp.

References MeshBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::OutputCellPopulationParameters().

template<unsigned DIM>
std::vector< bool > & MeshBasedCellPopulationWithGhostNodes< DIM >::rGetGhostNodes ( )
Returns
mIsGhostNode.

Definition at line 103 of file MeshBasedCellPopulationWithGhostNodes.cpp.

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

Serialize the object and its member variables.

Note that serialization of the mesh and cells is handled by load/save_construct_data.

Note also that member data related to writers is not saved - output must be set up again by the caller after a restart.

Parameters
archivethe archive
versionthe current version of this class

Definition at line 85 of file MeshBasedCellPopulationWithGhostNodes.hpp.

References MeshBasedCellPopulationWithGhostNodes< DIM >::mGhostSpringStiffness, and MeshBasedCellPopulationWithGhostNodes< DIM >::mIsGhostNode.

template<unsigned DIM>
void MeshBasedCellPopulationWithGhostNodes< DIM >::SetGhostNodes ( const std::set< unsigned > &  rGhostNodeIndices)
private

Set the ghost nodes by taking in a set of which nodes indices are ghost nodes.

Parameters
rGhostNodeIndicesset of node indices corresponding to ghost nodes

Definition at line 129 of file MeshBasedCellPopulationWithGhostNodes.cpp.

Referenced by MeshBasedCellPopulationWithGhostNodes< DIM >::MeshBasedCellPopulationWithGhostNodes().

template<unsigned DIM>
void MeshBasedCellPopulationWithGhostNodes< DIM >::UpdateGhostNodesAfterReMesh ( NodeMap rMap)
virtual

Update mIsGhostNode if required by a remesh.

Parameters
rMapA map between node indices before and after remesh

Reimplemented from MeshBasedCellPopulation< DIM >.

Definition at line 262 of file MeshBasedCellPopulationWithGhostNodes.cpp.

References NodeMap::GetNewIndex(), NodeMap::GetSize(), and NodeMap::IsDeleted().

template<unsigned DIM>
void MeshBasedCellPopulationWithGhostNodes< DIM >::UpdateGhostPositions ( double  dt)

Update the GhostNode positions using the spring force model with rest length=1. Forces are applied to ghost nodes from connected ghost and normal nodes.

Parameters
dt

Definition at line 144 of file MeshBasedCellPopulationWithGhostNodes.cpp.

References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::EdgesEnd(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeIteratorBegin(), and MutableMesh< ELEMENT_DIM, SPACE_DIM >::SetNode().

template<unsigned DIM>
void MeshBasedCellPopulationWithGhostNodes< DIM >::UpdateNodeLocations ( double  dt)
virtual

Overridden UpdateNodeLocation() method.

Update the location of each node in the cell population given a time step over which to integrate the equations of motion.

Parameters
dttime step

Reimplemented from AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >.

Definition at line 327 of file MeshBasedCellPopulationWithGhostNodes.cpp.

References AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::UpdateNodeLocations().

template<unsigned DIM>
void MeshBasedCellPopulationWithGhostNodes< DIM >::Validate ( )
privatevirtual

This is called after a cell population has been constructed to check the user gave consistent instructions. Check consistency of our internal data structures: Each node must have a cell associated with it OR must be a ghost node.

It is called after cells are added or removed from MeshBasedCellPopulation as it is an overridden virtual method.

Reimplemented from MeshBasedCellPopulation< DIM >.

Definition at line 233 of file MeshBasedCellPopulationWithGhostNodes.cpp.

References EXCEPTION.

Referenced by MeshBasedCellPopulationWithGhostNodes< DIM >::MeshBasedCellPopulationWithGhostNodes().

template<unsigned DIM>
void MeshBasedCellPopulationWithGhostNodes< DIM >::WriteVtkResultsToFile ( const std::string &  rDirectory)
virtual

Overridden WriteVtkResultsToFile() method.

Parameters
rDirectorypathname of the output directory, relative to where Chaste output is stored
Todo:
#1975 - deal with possibility of information stored in CellData

Reimplemented from MeshBasedCellPopulation< DIM >.

Definition at line 352 of file MeshBasedCellPopulationWithGhostNodes.cpp.

References VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::AddCellData(), VertexMesh< ELEMENT_DIM, SPACE_DIM >::GetElementIteratorBegin(), SimulationTime::GetTimeStepsElapsed(), SimulationTime::Instance(), and VertexMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteVtkUsingMesh().

Friends And Related Function Documentation

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

Needed for serialization.

Definition at line 72 of file MeshBasedCellPopulationWithGhostNodes.hpp.

template<unsigned DIM>
friend class TestMeshBasedCellPopulationWithGhostNodes
friend

Just so that the test can test the private functions

Definition at line 61 of file MeshBasedCellPopulationWithGhostNodes.hpp.

Member Data Documentation

template<unsigned DIM>
double MeshBasedCellPopulationWithGhostNodes< DIM >::mGhostSpringStiffness
private

Spring stiffness for springs between ghost nodes.

Definition at line 69 of file MeshBasedCellPopulationWithGhostNodes.hpp.

Referenced by MeshBasedCellPopulationWithGhostNodes< DIM >::serialize().

template<unsigned DIM>
std::vector<bool> MeshBasedCellPopulationWithGhostNodes< DIM >::mIsGhostNode
private

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