Chaste
Release::2017.1
|
#include <NodeBasedCellPopulation.hpp>
Public Member Functions | |
void | SetNode (unsigned nodeIndex, ChastePoint< DIM > &rNewLocation) |
NodeBasedCellPopulation (NodesOnlyMesh< DIM > &rMesh, std::vector< CellPtr > &rCells, const std::vector< unsigned > locationIndices=std::vector< unsigned >(), bool deleteMesh=false, bool validate=true) | |
NodeBasedCellPopulation (NodesOnlyMesh< DIM > &rMesh) | |
virtual | ~NodeBasedCellPopulation () |
NodesOnlyMesh< DIM > & | rGetMesh () |
const NodesOnlyMesh< DIM > & | rGetMesh () const |
virtual TetrahedralMesh< DIM, DIM > * | GetTetrahedralMeshForPdeModifier () |
unsigned | GetNumNodes () |
virtual CellPtr | GetCellUsingLocationIndex (unsigned index) |
Node< DIM > * | GetNode (unsigned index) |
unsigned | RemoveDeadCells () |
void | Clear () |
void | Update (bool hasHadBirthsOrDeaths=true) |
std::vector< std::pair< Node< DIM > *, Node< DIM > * > > & | rGetNodePairs () |
void | OutputCellPopulationParameters (out_stream &rParamsFile) |
virtual void | AcceptPopulationWriter (boost::shared_ptr< AbstractCellPopulationWriter< DIM, DIM > > pPopulationWriter) |
virtual void | AcceptPopulationCountWriter (boost::shared_ptr< AbstractCellPopulationCountWriter< DIM, DIM > > pPopulationCountWriter) |
virtual void | AcceptCellWriter (boost::shared_ptr< AbstractCellWriter< DIM, DIM > > pCellWriter, CellPtr pCell) |
double | GetMechanicsCutOffLength () |
bool | GetUseVariableRadii () |
void | SetUseVariableRadii (bool useVariableRadii=true) |
void | SetLoadBalanceMesh (bool loadBalanceMesh) |
void | SetLoadBalanceFrequency (unsigned loadBalanceFrequency) |
double | GetWidth (const unsigned &rDimension) |
c_vector< double, DIM > | GetSizeOfCellPopulation () |
std::set< unsigned > | GetNodesWithinNeighbourhoodRadius (unsigned index, double neighbourhoodRadius) |
std::set< unsigned > | GetNeighbouringNodeIndices (unsigned index) |
virtual CellPtr | AddCell (CellPtr pNewCell, CellPtr pParentCell) |
double | GetVolumeOfCell (CellPtr pCell) |
void | SendCellsToNeighbourProcesses () |
void | NonBlockingSendCellsToNeighbourProcesses () |
void | GetReceivedCells () |
std::pair< CellPtr, Node< DIM > * > | GetCellNodePair (unsigned nodeIndex) |
void | AddReceivedCells () |
virtual void | UpdateCellProcessLocation () |
Public Member Functions inherited from AbstractCentreBasedCellPopulation< DIM > | |
AbstractCentreBasedCellPopulation (AbstractMesh< ELEMENT_DIM, ELEMENT_DIM > &rMesh, std::vector< CellPtr > &rCells, const std::vector< unsigned > locationIndices=std::vector< unsigned >()) | |
c_vector< double, ELEMENT_DIM > | GetLocationOfCellCentre (CellPtr pCell) |
Node< ELEMENT_DIM > * | GetNodeCorrespondingToCell (CellPtr pCell) |
virtual double | GetCellDataItemAtPdeNode (unsigned pdeNodeIndex, std::string &rVariableName, bool dirichletBoundaryConditionApplies=false, double dirichletBoundaryValue=0.0) |
CellPtr | AddCell (CellPtr pNewCell, 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 std::set< unsigned > | GetNeighbouringLocationIndices (CellPtr pCell) |
virtual void | CheckForStepSizeException (unsigned nodeIndex, c_vector< double, ELEMENT_DIM > &rDisplacement, double dt) |
virtual double | GetDampingConstant (unsigned nodeIndex) |
virtual bool | IsGhostNode (unsigned index) |
virtual bool | IsParticle (unsigned index) |
double | GetMeinekeDivisionSeparation () |
void | SetMeinekeDivisionSeparation (double divisionSeparation) |
boost::shared_ptr< AbstractCentreBasedDivisionRule< ELEMENT_DIM, ELEMENT_DIM > > | GetCentreBasedDivisionRule () |
void | SetCentreBasedDivisionRule (boost::shared_ptr< AbstractCentreBasedDivisionRule< ELEMENT_DIM, ELEMENT_DIM > > pCentreBasedDivisionRule) |
virtual double | GetDefaultTimeStep () |
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 |
virtual void | UpdateNodeLocations (double dt) |
virtual void | CheckForStepSizeException (unsigned nodeIndex, c_vector< double, SPACE_DIM > &rDisplacement, double dt)=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 () |
virtual bool | IsPdeNodeAssociatedWithNonApoptoticCell (unsigned pdeNodeIndex) |
std::list< CellPtr > & | rGetCells () |
virtual void | WriteDataToVisualizerSetupFile (out_stream &pVizSetupFile) |
std::vector< unsigned > | GetCellMutationStateCount () |
std::vector< unsigned > | GetCellProliferativeTypeCount () |
std::vector< unsigned > | GetCellCyclePhaseCount () |
unsigned | GetNumRealCells () |
unsigned | GetNumAllCells () |
void | SetCellAncestorsToLocationIndices () |
std::set< unsigned > | GetCellAncestors () |
std::set< CellPtr > | GetCellsUsingLocationIndex (unsigned index) |
virtual 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 | OpenWritersFiles (OutputFileHandler &rOutputFileHandler) |
void | CloseWritersFiles () |
virtual void | WriteResultsToFiles (const std::string &rDirectory) |
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) |
virtual void | SimulationSetupHook (AbstractCellBasedSimulation< ELEMENT_DIM, SPACE_DIM > *pSimulation) |
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, unsigned > | CreateOrderedPair (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 | UpdateParticlesAfterReMesh (NodeMap &rMap) |
virtual void | Validate () |
Protected Member Functions inherited from AbstractCentreBasedCellPopulation< DIM > | |
AbstractCentreBasedCellPopulation (AbstractMesh< ELEMENT_DIM, ELEMENT_DIM > &rMesh) | |
virtual void | AcceptCellWritersAcrossPopulation () |
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) |
unsigned | AddNode (Node< DIM > *pNewNode) |
void | AddMovedCell (CellPtr pCell, boost::shared_ptr< Node< DIM > > pNode) |
void | DeleteMovedCell (unsigned index) |
void | RefreshHaloCells () |
void | AddNodeAndCellToSendRight (unsigned nodeIndex) |
void | AddNodeAndCellToSendLeft (unsigned nodeIndex) |
void | AddCellsToSendRight (std::vector< unsigned > &cellLocationIndices) |
void | AddCellsToSendLeft (std::vector< unsigned > &cellLocationIndices) |
void | AddReceivedHaloCells () |
void | AddHaloCell (CellPtr pCell, boost::shared_ptr< Node< DIM > > pNode) |
void | UpdateMapsAfterRemesh (NodeMap &map) |
virtual void | WriteVtkResultsToFile (const std::string &rDirectory) |
Private Attributes | |
c_vector< double, DIM > | mMinSpatialPositions |
c_vector< double, DIM > | mMaxSpatialPositions |
std::vector< std::pair< Node< DIM > *, Node< DIM > * > > | mNodePairs |
bool | mDeleteMesh |
bool | mUseVariableRadii |
std::vector< std::pair< CellPtr, Node< DIM > * > > | mCellsToSendRight |
std::vector< std::pair< CellPtr, Node< DIM > * > > | mCellsToSendLeft |
boost::shared_ptr< std::vector< std::pair< CellPtr, Node< DIM > * > > > | mpCellsRecvRight |
boost::shared_ptr< std::vector< std::pair< CellPtr, Node< DIM > * > > > | mpCellsRecvLeft |
ObjectCommunicator< std::vector< std::pair< CellPtr, Node< DIM > * > > > | mRightCommunicator |
ObjectCommunicator< std::vector< std::pair< CellPtr, Node< DIM > * > > > | mLeftCommunicator |
std::vector< CellPtr > | mHaloCells |
std::map< unsigned, CellPtr > | mLocationHaloCellMap |
std::map< CellPtr, unsigned > | mHaloCellLocationMap |
bool | mLoadBalanceMesh |
unsigned | mLoadBalanceFrequency |
Static Private Attributes | |
static const unsigned | mCellCommunicationTag = 123 |
Friends | |
class | TestNodeBasedCellPopulation |
class | TestNodeBasedCellPopulationParallelMethods |
class | boost::serialization::access |
A NodeBasedCellPopulation is a CellPopulation consisting of only nodes in space with associated cells. There are no elements and no mesh.
Definition at line 52 of file NodeBasedCellPopulation.hpp.
NodeBasedCellPopulation< DIM >::NodeBasedCellPopulation | ( | NodesOnlyMesh< DIM > & | rMesh, |
std::vector< CellPtr > & | rCells, | ||
const std::vector< unsigned > | locationIndices = std::vector<unsigned>() , |
||
bool | deleteMesh = false , |
||
bool | validate = true |
||
) |
Default constructor.
Note that the cell population will take responsibility for freeing the memory used by the nodes.
rMesh | a mutable nodes-only mesh |
rCells | a vector of cells |
locationIndices | an optional vector of location indices that correspond to real cells |
deleteMesh | whether to delete nodes-only mesh in destructor |
validate | whether to call Validate() in the constructor or not |
Definition at line 41 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh, AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mrMesh, and NodeBasedCellPopulation< DIM >::Validate().
Referenced by NodeBasedCellPopulation< DIM >::serialize().
NodeBasedCellPopulation< DIM >::NodeBasedCellPopulation | ( | NodesOnlyMesh< DIM > & | rMesh | ) |
Constructor for use by the de-serializer.
rMesh | a mutable nodes-only mesh |
Definition at line 61 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh, and AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mrMesh.
|
virtual |
Destructor.
Frees all our node memory.
Definition at line 72 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::Clear(), NodeBasedCellPopulation< DIM >::mDeleteMesh, and AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mrMesh.
Referenced by NodeBasedCellPopulation< DIM >::serialize().
|
virtual |
A virtual method to accept a cell writer so it can write data from this object to file.
pCellWriter | the population writer. |
pCell | the cell whose data are being written. |
Definition at line 317 of file NodeBasedCellPopulation.cpp.
Referenced by NodeBasedCellPopulationWithParticles< DIM >::AcceptCellWritersAcrossPopulation(), and NodeBasedCellPopulation< DIM >::serialize().
|
virtual |
A virtual method to accept a cell population count writer so it can write data from this object to file.
pPopulationCountWriter | the population count writer. |
Definition at line 311 of file NodeBasedCellPopulation.cpp.
Referenced by NodeBasedCellPopulation< DIM >::serialize().
|
virtual |
A virtual method to accept a cell population writer so it can write data from this object to file.
pPopulationWriter | the population writer. |
Definition at line 305 of file NodeBasedCellPopulation.cpp.
Referenced by NodeBasedCellPopulation< DIM >::serialize().
|
virtual |
Overridden AddCell() method.
Add a new cell to the cell population and update the vector of cell radii in the NodesOnlyMesh.
pNewCell | the cell to add |
pParentCell | pointer to a parent cell - this is required for node-based cell populations |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in NodeBasedCellPopulationWithParticles< DIM >.
Definition at line 698 of file NodeBasedCellPopulation.cpp.
References AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::AddCell(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetLocationIndexUsingCell(), NodeBasedCellPopulation< DIM >::GetNode(), Node< SPACE_DIM >::GetRadius(), and Node< SPACE_DIM >::SetRadius().
Referenced by NodeBasedCellPopulation< DIM >::serialize().
|
private |
Add a collection of cells to send left
cellLocationIndices | the list of location indices of cells to send. |
Definition at line 935 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::AddNodeAndCellToSendLeft(), and NodeBasedCellPopulation< DIM >::mCellsToSendLeft.
Referenced by NodeBasedCellPopulation< DIM >::RefreshHaloCells(), NodeBasedCellPopulation< DIM >::serialize(), and NodeBasedCellPopulation< DIM >::UpdateCellProcessLocation().
|
private |
Add a collection of cells to send right
cellLocationIndices | the list of location indices of cells to send. |
Definition at line 924 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::AddNodeAndCellToSendRight(), and NodeBasedCellPopulation< DIM >::mCellsToSendRight.
Referenced by NodeBasedCellPopulation< DIM >::RefreshHaloCells(), NodeBasedCellPopulation< DIM >::serialize(), and NodeBasedCellPopulation< DIM >::UpdateCellProcessLocation().
|
private |
Add a single halo cell with its node to the halo structures on this process.
pCell | the cell to add. |
pNode | the node to add. |
Definition at line 976 of file NodeBasedCellPopulation.cpp.
References NodesOnlyMesh< SPACE_DIM >::AddHaloNode(), EXPORT_TEMPLATE_CLASS_SAME_DIMS, NodeBasedCellPopulation< DIM >::mHaloCellLocationMap, NodeBasedCellPopulation< DIM >::mHaloCells, NodeBasedCellPopulation< DIM >::mLocationHaloCellMap, and NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh.
Referenced by NodeBasedCellPopulation< DIM >::AddReceivedHaloCells(), and NodeBasedCellPopulation< DIM >::serialize().
|
private |
Add a moved cell to this process along with its node.
pCell | the pointer to the cell that is to be added. |
pNode | the pointer to the node that is to be added. |
Definition at line 720 of file NodeBasedCellPopulation.cpp.
References AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AddCellUsingLocationIndex(), NodesOnlyMesh< SPACE_DIM >::AddMovedNode(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCells, and NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh.
Referenced by NodeBasedCellPopulation< DIM >::AddReceivedCells(), and NodeBasedCellPopulation< DIM >::serialize().
|
private |
Overridden AddNode() method.
Add a new node to the cell population.
pNewNode | pointer to the new node |
Definition at line 258 of file NodeBasedCellPopulation.cpp.
References NodesOnlyMesh< SPACE_DIM >::AddNode(), and NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh.
Referenced by NodeBasedCellPopulation< DIM >::serialize().
|
private |
Add the node and cell with index nodeIndex to the list of cells to send to the process left.
nodeIndex | the index of the node and cell to send. |
Definition at line 832 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::GetCellNodePair(), and NodeBasedCellPopulation< DIM >::mCellsToSendLeft.
Referenced by NodeBasedCellPopulation< DIM >::AddCellsToSendLeft(), and NodeBasedCellPopulation< DIM >::serialize().
|
private |
Add the node and cell with index nodeIndex to the list of cells to send to the process right.
nodeIndex | the index of the node and cell to send. |
Definition at line 824 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::GetCellNodePair(), and NodeBasedCellPopulation< DIM >::mCellsToSendRight.
Referenced by NodeBasedCellPopulation< DIM >::AddCellsToSendRight(), and NodeBasedCellPopulation< DIM >::serialize().
void NodeBasedCellPopulation< DIM >::AddReceivedCells | ( | ) |
Add the contents of mpCellsRecvRight and mpCellsRecvLeft to the local population.
Definition at line 840 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::AddMovedCell(), PetscTools::AmMaster(), PetscTools::AmTopMost(), NodeBasedCellPopulation< DIM >::mpCellsRecvLeft, and NodeBasedCellPopulation< DIM >::mpCellsRecvRight.
Referenced by NodeBasedCellPopulation< DIM >::serialize(), and NodeBasedCellPopulation< DIM >::UpdateCellProcessLocation().
|
private |
Add halo cells to the halo structure on this process.
Definition at line 946 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::AddHaloCell(), NodesOnlyMesh< SPACE_DIM >::AddHaloNodesToBoxes(), PetscTools::AmMaster(), PetscTools::AmTopMost(), NodeBasedCellPopulation< DIM >::GetReceivedCells(), NodeBasedCellPopulation< DIM >::mpCellsRecvLeft, NodeBasedCellPopulation< DIM >::mpCellsRecvRight, and NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh.
Referenced by NodeBasedCellPopulation< DIM >::serialize(), and NodeBasedCellPopulation< DIM >::Update().
void NodeBasedCellPopulation< DIM >::Clear | ( | ) |
Reset the member variables mNodePairs and mpBoxCollection in the underlying mesh.
Definition at line 113 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::mNodePairs.
Referenced by NodeBasedCellPopulation< DIM >::serialize(), and NodeBasedCellPopulation< DIM >::~NodeBasedCellPopulation().
|
private |
Delete a cell and its associated node that have moved off this process.
index | the location of the cell to be deleted |
Definition at line 733 of file NodeBasedCellPopulation.cpp.
References NodesOnlyMesh< SPACE_DIM >::DeleteMovedNode(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetLocationIndexUsingCell(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCells, NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh, and AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::RemoveCellUsingLocationIndex().
Referenced by NodeBasedCellPopulation< DIM >::serialize(), and NodeBasedCellPopulation< DIM >::UpdateCellProcessLocation().
std::pair< CellPtr, Node< DIM > * > NodeBasedCellPopulation< DIM >::GetCellNodePair | ( | unsigned | nodeIndex | ) |
Helper method to find and pack up nodes and cells together
nodeIndex | the global index of the node. |
Definition at line 812 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::GetCellUsingLocationIndex(), and NodeBasedCellPopulation< DIM >::GetNode().
Referenced by NodeBasedCellPopulation< DIM >::AddNodeAndCellToSendLeft(), NodeBasedCellPopulation< DIM >::AddNodeAndCellToSendRight(), and NodeBasedCellPopulation< DIM >::serialize().
|
virtual |
Overridden method from AbstractCellPopulation so that we can access halo cells through this method.
index | the global index of the node assocaited with a cell |
Reimplemented from AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 270 of file NodeBasedCellPopulation.cpp.
References AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetCellUsingLocationIndex(), and NodeBasedCellPopulation< DIM >::mLocationHaloCellMap.
Referenced by NodeBasedCellPopulationWithParticles< DIM >::AcceptCellWritersAcrossPopulation(), NodeBasedCellPopulation< DIM >::GetCellNodePair(), NodeBasedCellPopulation< DIM >::serialize(), NodeBasedCellPopulation< DIM >::Validate(), NodeVelocityWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), HeterotypicBoundaryLengthWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), and NodeBasedCellPopulationWithParticles< DIM >::WriteVtkResultsToFile().
double NodeBasedCellPopulation< DIM >::GetMechanicsCutOffLength | ( | ) |
Definition at line 323 of file NodeBasedCellPopulation.cpp.
References NodesOnlyMesh< SPACE_DIM >::GetMaximumInteractionDistance(), and NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh.
Referenced by NodeBasedCellPopulation< DIM >::serialize().
|
virtual |
Overridden GetNeighbouringNodeIndices() method.
Not that this method only returns node indices for cells that are strictly touching each other.
index | the node index |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 429 of file NodeBasedCellPopulation.cpp.
References EXCEPTION, NodesOnlyMesh< SPACE_DIM >::GetMaximumInteractionDistance(), Node< SPACE_DIM >::GetNeighboursSetUp(), NodeBasedCellPopulation< DIM >::GetNode(), Node< SPACE_DIM >::GetRadius(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB(), NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh, Node< SPACE_DIM >::rGetLocation(), and Node< SPACE_DIM >::rGetNeighbours().
Referenced by BuskeCompressionForce< DIM >::AddForceContribution(), NodeBasedCellPopulation< DIM >::GetVolumeOfCell(), NodeBasedCellPopulation< DIM >::serialize(), NodeBasedCellPopulationWithBuskeUpdate< DIM >::UpdateNodeLocations(), and HeterotypicBoundaryLengthWriter< ELEMENT_DIM, SPACE_DIM >::Visit().
|
virtual |
Overridden GetNode() method.
index | global index of the specified node |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 137 of file NodeBasedCellPopulation.cpp.
References NodesOnlyMesh< SPACE_DIM >::GetNodeOrHaloNode(), and NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh.
Referenced by NodeBasedCellPopulationWithParticles< DIM >::AddCell(), NodeBasedCellPopulation< DIM >::AddCell(), NodeBasedCellPopulation< DIM >::GetCellNodePair(), NodeBasedCellPopulation< DIM >::GetNeighbouringNodeIndices(), NodeBasedCellPopulation< DIM >::GetNodesWithinNeighbourhoodRadius(), NodeBasedCellPopulation< DIM >::GetVolumeOfCell(), NodeBasedCellPopulationWithParticles< DIM >::IsParticle(), NodeBasedCellPopulation< DIM >::serialize(), NodeBasedCellPopulation< DIM >::Update(), NodeBasedCellPopulationWithBuskeUpdate< DIM >::UpdateNodeLocations(), NodeBasedCellPopulationWithParticles< DIM >::Validate(), and HeterotypicBoundaryLengthWriter< ELEMENT_DIM, SPACE_DIM >::Visit().
std::set< unsigned > NodeBasedCellPopulation< DIM >::GetNodesWithinNeighbourhoodRadius | ( | unsigned | index, |
double | neighbourhoodRadius | ||
) |
Method to return nodes within a given radius of a node. Note this is independent of cell radius and returns all nodes within a given radius.
index | the node index |
neighbourhoodRadius | the radius to find neighbours in. Note must be less than the MaximumInteractionDistance in the NodesOnlyMesh |
Definition at line 373 of file NodeBasedCellPopulation.cpp.
References EXCEPTION, NodesOnlyMesh< SPACE_DIM >::GetMaximumInteractionDistance(), Node< SPACE_DIM >::GetNeighboursSetUp(), NodeBasedCellPopulation< DIM >::GetNode(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB(), NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh, Node< SPACE_DIM >::rGetLocation(), and Node< SPACE_DIM >::rGetNeighbours().
Referenced by NodeBasedCellPopulation< DIM >::serialize().
|
virtual |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 264 of file NodeBasedCellPopulation.cpp.
References NodesOnlyMesh< SPACE_DIM >::GetNumNodes(), and NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh.
Referenced by NodeBasedCellPopulation< DIM >::serialize(), NodeBasedCellPopulationWithBuskeUpdate< DIM >::UpdateNodeLocations(), NodeBasedCellPopulationWithParticles< DIM >::WriteVtkResultsToFile(), and NodeBasedCellPopulation< DIM >::WriteVtkResultsToFile().
void NodeBasedCellPopulation< DIM >::GetReceivedCells | ( | ) |
Obtain proper cell/node pair objects from a previous call to NonBlockingSendCellsToNeighbourProcesses();
Definition at line 799 of file NodeBasedCellPopulation.cpp.
References PetscTools::AmMaster(), PetscTools::AmTopMost(), ObjectCommunicator< CLASS >::GetRecvObject(), NodeBasedCellPopulation< DIM >::mLeftCommunicator, NodeBasedCellPopulation< DIM >::mpCellsRecvLeft, NodeBasedCellPopulation< DIM >::mpCellsRecvRight, and NodeBasedCellPopulation< DIM >::mRightCommunicator.
Referenced by NodeBasedCellPopulation< DIM >::AddReceivedHaloCells(), and NodeBasedCellPopulation< DIM >::serialize().
c_vector< double, DIM > NodeBasedCellPopulation< DIM >::GetSizeOfCellPopulation | ( | ) |
Overridden GetSizeOfCellPopulation to work in parallel.
Definition at line 359 of file NodeBasedCellPopulation.cpp.
References AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetSizeOfCellPopulation(), and PetscTools::GetWorld().
Referenced by NodeBasedCellPopulation< DIM >::serialize().
|
virtual |
Overridden GetTetrahedralMeshForPdeModifier() method.
This method is called by AbstractGrowingDomainPdeModifier.
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 94 of file NodeBasedCellPopulation.cpp.
References AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeIteratorBegin(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetNodeIteratorEnd(), PetscTools::IsSequential(), and NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh.
Referenced by NodeBasedCellPopulation< DIM >::serialize().
bool NodeBasedCellPopulation< DIM >::GetUseVariableRadii | ( | ) |
Definition at line 329 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::mUseVariableRadii.
Referenced by NodeBasedCellPopulation< DIM >::serialize().
|
virtual |
Overridden GetVolumeOfCell() method.
pCell | boost shared pointer to a cell |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 495 of file NodeBasedCellPopulation.cpp.
References AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetLocationIndexUsingCell(), NodeBasedCellPopulation< DIM >::GetNeighbouringNodeIndices(), NodeBasedCellPopulation< DIM >::GetNode(), Node< SPACE_DIM >::GetRadius(), AbstractMesh< ELEMENT_DIM, SPACE_DIM >::GetVectorFromAtoB(), NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh, and Node< SPACE_DIM >::rGetLocation().
Referenced by NodeBasedCellPopulation< DIM >::serialize().
|
virtual |
Overridden GetWidth() method.
Calculate the 'width' of any dimension of the cell population by computing the maximum distance between any nodes in this dimension.
rDimension | a dimension (0,1 or 2) |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 353 of file NodeBasedCellPopulation.cpp.
References NodesOnlyMesh< SPACE_DIM >::GetWidth(), and NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh.
Referenced by NodeBasedCellPopulation< DIM >::serialize().
void NodeBasedCellPopulation< DIM >::NonBlockingSendCellsToNeighbourProcesses | ( | ) |
Send the contents of mCellsToSendRight/Left to neighbouring processes using asynchronous communication. mpCellsRecvLeft/Right will not be updated until the equivalent GetReceivedCells() is called.
Definition at line 771 of file NodeBasedCellPopulation.cpp.
References PetscTools::AmMaster(), PetscTools::AmTopMost(), PetscTools::GetMyRank(), ObjectCommunicator< CLASS >::IRecvObject(), ObjectCommunicator< CLASS >::ISendObject(), NodeBasedCellPopulation< DIM >::mCellsToSendLeft, NodeBasedCellPopulation< DIM >::mCellsToSendRight, NodeBasedCellPopulation< DIM >::mLeftCommunicator, NodeBasedCellPopulation< DIM >::mRightCommunicator, and SmallPow().
Referenced by NodeBasedCellPopulation< DIM >::RefreshHaloCells(), and NodeBasedCellPopulation< DIM >::serialize().
|
virtual |
Outputs CellPopulation parameters to file
As this method is pure virtual, it must be overridden in subclasses.
rParamsFile | the file stream to which the parameters are output |
Reimplemented from AbstractCentreBasedCellPopulation< DIM >.
Reimplemented in NodeBasedCellPopulationWithParticles< DIM >, and NodeBasedCellPopulationWithBuskeUpdate< DIM >.
Definition at line 295 of file NodeBasedCellPopulation.cpp.
References NodesOnlyMesh< SPACE_DIM >::GetMaximumInteractionDistance(), NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh, NodeBasedCellPopulation< DIM >::mUseVariableRadii, and AbstractCentreBasedCellPopulation< ELEMENT_DIM, SPACE_DIM >::OutputCellPopulationParameters().
Referenced by NodeBasedCellPopulationWithBuskeUpdate< DIM >::OutputCellPopulationParameters(), NodeBasedCellPopulationWithParticles< DIM >::OutputCellPopulationParameters(), and NodeBasedCellPopulation< DIM >::serialize().
|
private |
Send and receive halo nodes with neighbours and populate memory structures to store them
Definition at line 906 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::AddCellsToSendLeft(), NodeBasedCellPopulation< DIM >::AddCellsToSendRight(), NodesOnlyMesh< SPACE_DIM >::ClearHaloNodes(), NodeBasedCellPopulation< DIM >::mHaloCellLocationMap, NodeBasedCellPopulation< DIM >::mHaloCells, NodeBasedCellPopulation< DIM >::mLocationHaloCellMap, NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh, NodeBasedCellPopulation< DIM >::NonBlockingSendCellsToNeighbourProcesses(), NodesOnlyMesh< SPACE_DIM >::rGetHaloNodesToSendLeft(), and NodesOnlyMesh< SPACE_DIM >::rGetHaloNodesToSendRight().
Referenced by NodeBasedCellPopulation< DIM >::serialize(), and NodeBasedCellPopulation< DIM >::Update().
|
virtual |
Remove all cells labelled as dead.
Note that after calling this method the cell population will be in an inconsistent state until the equivalent of a 'remesh' is performed! So don't try iterating over cells or anything like that.
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 227 of file NodeBasedCellPopulation.cpp.
References MutableMesh< ELEMENT_DIM, SPACE_DIM >::DeleteNodePriorToReMesh(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetLocationIndexUsingCell(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCells, NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh, AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::RemoveCellUsingLocationIndex(), and NodesOnlyMesh< SPACE_DIM >::SolveNodeMapping().
Referenced by NodeBasedCellPopulation< DIM >::serialize().
NodesOnlyMesh< DIM > & NodeBasedCellPopulation< DIM >::rGetMesh | ( | ) |
Definition at line 82 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh.
Referenced by NodeBasedCellPopulationWithParticles< DIM >::AcceptCellWritersAcrossPopulation(), NodeBasedCellPopulationWithBuskeUpdate< DIM >::serialize(), NodeBasedCellPopulationWithParticles< DIM >::serialize(), NodeBasedCellPopulation< DIM >::serialize(), NodeBasedCellPopulationWithBuskeUpdate< DIM >::UpdateNodeLocations(), NodeVelocityWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), HeterotypicBoundaryLengthWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), NodeBasedCellPopulationWithParticles< DIM >::WriteVtkResultsToFile(), and NodeBasedCellPopulation< DIM >::WriteVtkResultsToFile().
const NodesOnlyMesh< DIM > & NodeBasedCellPopulation< DIM >::rGetMesh | ( | ) | const |
Definition at line 88 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh.
|
virtual |
Overridden rGetNodePairs method
Implements AbstractCentreBasedCellPopulation< DIM >.
Definition at line 289 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::mNodePairs.
Referenced by NodeBasedCellPopulation< DIM >::serialize().
void NodeBasedCellPopulation< DIM >::SendCellsToNeighbourProcesses | ( | ) |
Send the contents of mCellsToSendRight/Left to neighbouring processes and receive from them into mpCellsRecvRight/Left.
Definition at line 754 of file NodeBasedCellPopulation.cpp.
References PetscTools::AmMaster(), PetscTools::AmTopMost(), PetscTools::GetMyRank(), NodeBasedCellPopulation< DIM >::mCellCommunicationTag, NodeBasedCellPopulation< DIM >::mCellsToSendLeft, NodeBasedCellPopulation< DIM >::mCellsToSendRight, NodeBasedCellPopulation< DIM >::mLeftCommunicator, NodeBasedCellPopulation< DIM >::mpCellsRecvLeft, NodeBasedCellPopulation< DIM >::mpCellsRecvRight, NodeBasedCellPopulation< DIM >::mRightCommunicator, and ObjectCommunicator< CLASS >::SendRecvObject().
Referenced by NodeBasedCellPopulation< DIM >::serialize(), and NodeBasedCellPopulation< DIM >::UpdateCellProcessLocation().
|
inlineprivate |
Serialize the object and its member variables.
Note that serialization of the nodes is handled by load/save_construct_data, so we don't actually have to do anything here except delegate to the base class.
archive | the archive |
version | the current version of this class |
Definition at line 127 of file NodeBasedCellPopulation.hpp.
References NodeBasedCellPopulation< DIM >::AcceptCellWriter(), NodeBasedCellPopulation< DIM >::AcceptPopulationCountWriter(), NodeBasedCellPopulation< DIM >::AcceptPopulationWriter(), NodeBasedCellPopulation< DIM >::AddCell(), NodeBasedCellPopulation< DIM >::AddCellsToSendLeft(), NodeBasedCellPopulation< DIM >::AddCellsToSendRight(), NodeBasedCellPopulation< DIM >::AddHaloCell(), NodeBasedCellPopulation< DIM >::AddMovedCell(), NodeBasedCellPopulation< DIM >::AddNode(), NodeBasedCellPopulation< DIM >::AddNodeAndCellToSendLeft(), NodeBasedCellPopulation< DIM >::AddNodeAndCellToSendRight(), NodeBasedCellPopulation< DIM >::AddReceivedCells(), NodeBasedCellPopulation< DIM >::AddReceivedHaloCells(), NodeBasedCellPopulation< DIM >::Clear(), NodeBasedCellPopulation< DIM >::DeleteMovedCell(), EXPORT_TEMPLATE_CLASS_SAME_DIMS, NodeBasedCellPopulation< DIM >::GetCellNodePair(), NodeBasedCellPopulation< DIM >::GetCellUsingLocationIndex(), NodeBasedCellPopulation< DIM >::GetMechanicsCutOffLength(), NodeBasedCellPopulation< DIM >::GetNeighbouringNodeIndices(), NodeBasedCellPopulation< DIM >::GetNode(), NodeBasedCellPopulation< DIM >::GetNodesWithinNeighbourhoodRadius(), NodeBasedCellPopulation< DIM >::GetNumNodes(), NodeBasedCellPopulation< DIM >::GetReceivedCells(), NodeBasedCellPopulation< DIM >::GetSizeOfCellPopulation(), NodeBasedCellPopulation< DIM >::GetTetrahedralMeshForPdeModifier(), NodeBasedCellPopulation< DIM >::GetUseVariableRadii(), NodeBasedCellPopulation< DIM >::GetVolumeOfCell(), NodeBasedCellPopulation< DIM >::GetWidth(), NodeBasedCellPopulation< DIM >::mUseVariableRadii, NodeBasedCellPopulation< DIM >::NodeBasedCellPopulation(), NodeBasedCellPopulation< DIM >::NonBlockingSendCellsToNeighbourProcesses(), NodeBasedCellPopulation< DIM >::OutputCellPopulationParameters(), NodeBasedCellPopulation< DIM >::RefreshHaloCells(), NodeBasedCellPopulation< DIM >::RemoveDeadCells(), NodeBasedCellPopulation< DIM >::rGetMesh(), NodeBasedCellPopulation< DIM >::rGetNodePairs(), NodeBasedCellPopulation< DIM >::SendCellsToNeighbourProcesses(), NodeBasedCellPopulation< DIM >::SetLoadBalanceFrequency(), NodeBasedCellPopulation< DIM >::SetLoadBalanceMesh(), NodeBasedCellPopulation< DIM >::SetNode(), NodeBasedCellPopulation< DIM >::SetUseVariableRadii(), NodeBasedCellPopulation< DIM >::Update(), NodeBasedCellPopulation< DIM >::UpdateCellProcessLocation(), NodeBasedCellPopulation< DIM >::UpdateMapsAfterRemesh(), NodeBasedCellPopulation< DIM >::UpdateParticlesAfterReMesh(), NodeBasedCellPopulation< DIM >::Validate(), NodeBasedCellPopulation< DIM >::WriteVtkResultsToFile(), and NodeBasedCellPopulation< DIM >::~NodeBasedCellPopulation().
void NodeBasedCellPopulation< DIM >::SetLoadBalanceFrequency | ( | unsigned | loadBalanceFrequency | ) |
Set the freqeuncy, in number of time steps, with which the underlying mesh should be load balanced.
loadBalanceFrequency | the frequency for load balancing. |
Definition at line 347 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::mLoadBalanceFrequency.
Referenced by NodeBasedCellPopulation< DIM >::serialize().
void NodeBasedCellPopulation< DIM >::SetLoadBalanceMesh | ( | bool | loadBalanceMesh | ) |
Set whether to carry out the dynamic load balance algorithm on this mesh when it is updated
loadBalanceMesh | whether to do dynamic load balancing. |
Definition at line 341 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::mLoadBalanceMesh.
Referenced by NodeBasedCellPopulation< DIM >::serialize().
void NodeBasedCellPopulation< DIM >::SetNode | ( | unsigned | nodeIndex, |
ChastePoint< DIM > & | rNewLocation | ||
) |
Move the node with a given index to a new point in space.
nodeIndex | the index of the node to be moved |
rNewLocation | the new target location of the node |
Definition at line 143 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh, and NodesOnlyMesh< SPACE_DIM >::SetNode().
Referenced by NodeBasedCellPopulation< DIM >::serialize(), and NodeBasedCellPopulationWithBuskeUpdate< DIM >::UpdateNodeLocations().
void NodeBasedCellPopulation< DIM >::SetUseVariableRadii | ( | bool | useVariableRadii = true | ) |
Set mUseVariableRadii.
useVariableRadii | the new value of mUseVariableRadii |
Definition at line 335 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::mUseVariableRadii.
Referenced by NodeBasedCellPopulation< DIM >::serialize().
|
virtual |
Remove nodes that have been marked as deleted and update the node cell map.
hasHadBirthsOrDeaths | whether cell population has had Births Or Deaths |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 149 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::AddReceivedHaloCells(), PetscTools::Barrier(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::Begin(), NodesOnlyMesh< SPACE_DIM >::CalculateBoundaryNodePairs(), NodesOnlyMesh< SPACE_DIM >::CalculateInteriorNodePairs(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::End(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetLocationIndexUsingCell(), NodeBasedCellPopulation< DIM >::GetNode(), SimulationTime::Instance(), NodesOnlyMesh< SPACE_DIM >::LoadBalanceMesh(), NodeBasedCellPopulation< DIM >::mLoadBalanceFrequency, NodeBasedCellPopulation< DIM >::mLoadBalanceMesh, NodeBasedCellPopulation< DIM >::mNodePairs, NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh, NodeBasedCellPopulation< DIM >::mUseVariableRadii, NodeBasedCellPopulation< DIM >::RefreshHaloCells(), NodesOnlyMesh< SPACE_DIM >::UpdateBoxCollection(), and NodeBasedCellPopulation< DIM >::UpdateCellProcessLocation().
Referenced by NodeBasedCellPopulation< DIM >::serialize(), and HeterotypicBoundaryLengthWriter< ELEMENT_DIM, SPACE_DIM >::Visit().
|
virtual |
Update which process each cell is owned by.
Reimplemented from AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 866 of file NodeBasedCellPopulation.cpp.
References NodeBasedCellPopulation< DIM >::AddCellsToSendLeft(), NodeBasedCellPopulation< DIM >::AddCellsToSendRight(), NodeBasedCellPopulation< DIM >::AddReceivedCells(), NodesOnlyMesh< SPACE_DIM >::CalculateNodesOutsideLocalDomain(), NodeBasedCellPopulation< DIM >::DeleteMovedCell(), NodesOnlyMesh< SPACE_DIM >::GetMaximumNodeIndex(), NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh, NodesOnlyMesh< SPACE_DIM >::ReMesh(), NodesOnlyMesh< SPACE_DIM >::ResizeBoxCollection(), NodesOnlyMesh< SPACE_DIM >::rGetNodesToSendLeft(), NodesOnlyMesh< SPACE_DIM >::rGetNodesToSendRight(), NodeBasedCellPopulation< DIM >::SendCellsToNeighbourProcesses(), and NodeBasedCellPopulation< DIM >::UpdateMapsAfterRemesh().
Referenced by NodeBasedCellPopulation< DIM >::serialize(), and NodeBasedCellPopulation< DIM >::Update().
|
private |
Update the map between nodes and cells after a call to remesh.
map | The node map from ReMesh. |
Definition at line 195 of file NodeBasedCellPopulation.cpp.
References NodeMap::GetNewIndex(), NodeMap::IsDeleted(), NodeMap::IsIdentityMap(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCellLocationMap, AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCells, AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mLocationCellMap, AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::SetCellUsingLocationIndex(), NodeBasedCellPopulation< DIM >::UpdateParticlesAfterReMesh(), and NodeBasedCellPopulation< DIM >::Validate().
Referenced by NodeBasedCellPopulation< DIM >::serialize(), and NodeBasedCellPopulation< DIM >::UpdateCellProcessLocation().
|
protectedvirtual |
Update mIsParticle if required by a remesh.
rMap | A map between node indices before and after remesh |
Reimplemented in NodeBasedCellPopulationWithParticles< DIM >.
Definition at line 284 of file NodeBasedCellPopulation.cpp.
Referenced by NodeBasedCellPopulation< DIM >::serialize(), and NodeBasedCellPopulation< DIM >::UpdateMapsAfterRemesh().
|
protectedvirtual |
Check consistency of our internal data structures.
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Reimplemented in NodeBasedCellPopulationWithParticles< DIM >.
Definition at line 119 of file NodeBasedCellPopulation.cpp.
References EXCEPTION, NodeBasedCellPopulation< DIM >::GetCellUsingLocationIndex(), SimulationTime::Instance(), and AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mrMesh.
Referenced by NodeBasedCellPopulation< DIM >::NodeBasedCellPopulation(), NodeBasedCellPopulation< DIM >::serialize(), and NodeBasedCellPopulation< DIM >::UpdateMapsAfterRemesh().
|
privatevirtual |
Overridden WriteVtkResultsToFile() method.
rDirectory | pathname of the output directory, relative to where Chaste output is stored |
Implements AbstractCentreBasedCellPopulation< DIM >.
Reimplemented in NodeBasedCellPopulationWithParticles< DIM >.
Definition at line 585 of file NodeBasedCellPopulation.cpp.
References AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::Begin(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::End(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::GetLocationIndexUsingCell(), NodesOnlyMesh< SPACE_DIM >::GetMaximumNodeIndex(), PetscTools::GetMyRank(), NodeBasedCellPopulation< DIM >::GetNumNodes(), SimulationTime::GetTimeStepsElapsed(), SimulationTime::Instance(), PetscTools::IsSequential(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCellWriters, NodeBasedCellPopulation< DIM >::mpNodesOnlyMesh, AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mpVtkMetaFile, NodesOnlyMesh< SPACE_DIM >::ReMesh(), NodeBasedCellPopulation< DIM >::rGetMesh(), VtkMeshWriter< ELEMENT_DIM, SPACE_DIM >::SetParallelFiles(), and NodesOnlyMesh< SPACE_DIM >::SolveNodeMapping().
Referenced by NodeBasedCellPopulation< DIM >::serialize().
|
friend |
Needed for serialization.
Definition at line 116 of file NodeBasedCellPopulation.hpp.
|
staticprivate |
The tag used to send and recieve cell information
Definition at line 98 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::SendCellsToNeighbourProcesses().
|
private |
The cells to send to the left process
Definition at line 83 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::AddCellsToSendLeft(), NodeBasedCellPopulation< DIM >::AddNodeAndCellToSendLeft(), NodeBasedCellPopulation< DIM >::NonBlockingSendCellsToNeighbourProcesses(), and NodeBasedCellPopulation< DIM >::SendCellsToNeighbourProcesses().
|
private |
The cells to send to the right process
Definition at line 80 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::AddCellsToSendRight(), NodeBasedCellPopulation< DIM >::AddNodeAndCellToSendRight(), NodeBasedCellPopulation< DIM >::NonBlockingSendCellsToNeighbourProcesses(), and NodeBasedCellPopulation< DIM >::SendCellsToNeighbourProcesses().
|
private |
Whether to delete the nodes-only mesh (taken in one of the constructors, defaults to false).
Definition at line 74 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::~NodeBasedCellPopulation().
|
private |
Map halo cells back to location indices
Definition at line 107 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::AddHaloCell(), and NodeBasedCellPopulation< DIM >::RefreshHaloCells().
|
private |
Pointers to halo cells
Definition at line 101 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::AddHaloCell(), and NodeBasedCellPopulation< DIM >::RefreshHaloCells().
|
private |
A communicator to send cells to the left hand process
Definition at line 95 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::GetReceivedCells(), NodeBasedCellPopulation< DIM >::NonBlockingSendCellsToNeighbourProcesses(), and NodeBasedCellPopulation< DIM >::SendCellsToNeighbourProcesses().
|
private |
The frequency at which the mesh is rebalanced
Definition at line 113 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::SetLoadBalanceFrequency(), and NodeBasedCellPopulation< DIM >::Update().
|
private |
Whether to load balance the underlying mesh dynamically
Definition at line 110 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::SetLoadBalanceMesh(), and NodeBasedCellPopulation< DIM >::Update().
|
private |
Map location indices back to halo cells
Definition at line 104 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::AddHaloCell(), NodeBasedCellPopulation< DIM >::GetCellUsingLocationIndex(), and NodeBasedCellPopulation< DIM >::RefreshHaloCells().
|
private |
Vector of maximal spatial positions in each dimension.
Definition at line 68 of file NodeBasedCellPopulation.hpp.
|
private |
Vector of minimal spatial positions in each dimension.
Definition at line 65 of file NodeBasedCellPopulation.hpp.
|
private |
Node pairs for force calculations.
Definition at line 71 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::Clear(), NodeBasedCellPopulation< DIM >::rGetNodePairs(), and NodeBasedCellPopulation< DIM >::Update().
|
private |
A pointer to the cells received from the left process
Definition at line 89 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::AddReceivedCells(), NodeBasedCellPopulation< DIM >::AddReceivedHaloCells(), NodeBasedCellPopulation< DIM >::GetReceivedCells(), and NodeBasedCellPopulation< DIM >::SendCellsToNeighbourProcesses().
|
private |
A shared pointer to the cells received from the right process
Definition at line 86 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::AddReceivedCells(), NodeBasedCellPopulation< DIM >::AddReceivedHaloCells(), NodeBasedCellPopulation< DIM >::GetReceivedCells(), and NodeBasedCellPopulation< DIM >::SendCellsToNeighbourProcesses().
|
protected |
Static cast of the mesh from AbstractCellPopulation.
Definition at line 60 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::AddHaloCell(), NodeBasedCellPopulation< DIM >::AddMovedCell(), NodeBasedCellPopulation< DIM >::AddNode(), NodeBasedCellPopulation< DIM >::AddReceivedHaloCells(), NodeBasedCellPopulation< DIM >::DeleteMovedCell(), NodeBasedCellPopulation< DIM >::GetMechanicsCutOffLength(), NodeBasedCellPopulation< DIM >::GetNeighbouringNodeIndices(), NodeBasedCellPopulation< DIM >::GetNode(), NodeBasedCellPopulation< DIM >::GetNodesWithinNeighbourhoodRadius(), NodeBasedCellPopulation< DIM >::GetNumNodes(), NodeBasedCellPopulation< DIM >::GetTetrahedralMeshForPdeModifier(), NodeBasedCellPopulation< DIM >::GetVolumeOfCell(), NodeBasedCellPopulation< DIM >::GetWidth(), NodeBasedCellPopulation< DIM >::NodeBasedCellPopulation(), NodeBasedCellPopulation< DIM >::OutputCellPopulationParameters(), NodeBasedCellPopulation< DIM >::RefreshHaloCells(), NodeBasedCellPopulation< DIM >::RemoveDeadCells(), NodeBasedCellPopulation< DIM >::rGetMesh(), NodeBasedCellPopulation< DIM >::SetNode(), NodeBasedCellPopulation< DIM >::Update(), NodeBasedCellPopulation< DIM >::UpdateCellProcessLocation(), NodeBasedCellPopulationWithParticles< DIM >::WriteVtkResultsToFile(), and NodeBasedCellPopulation< DIM >::WriteVtkResultsToFile().
|
private |
A communicator to send cells to the right hand process
Definition at line 92 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::GetReceivedCells(), NodeBasedCellPopulation< DIM >::NonBlockingSendCellsToNeighbourProcesses(), and NodeBasedCellPopulation< DIM >::SendCellsToNeighbourProcesses().
|
private |
Whether or not to have cell radii updated from CellData defaults to false.
Definition at line 77 of file NodeBasedCellPopulation.hpp.
Referenced by NodeBasedCellPopulation< DIM >::GetUseVariableRadii(), NodeBasedCellPopulation< DIM >::OutputCellPopulationParameters(), NodeBasedCellPopulation< DIM >::serialize(), NodeBasedCellPopulation< DIM >::SetUseVariableRadii(), and NodeBasedCellPopulation< DIM >::Update().