![]() |
Chaste Commit::333233612e3dcc941d260418acd7b5ccdc30390e
|
#include <ImmersedBoundaryCellPopulation.hpp>
Public Member Functions | |
ImmersedBoundaryCellPopulation (ImmersedBoundaryMesh< DIM, DIM > &rMesh, std::vector< CellPtr > &rCells, bool deleteMesh=false, bool validate=true, const std::vector< unsigned > locationIndices=std::vector< unsigned >()) | |
ImmersedBoundaryCellPopulation (ImmersedBoundaryMesh< DIM, DIM > &rMesh) | |
virtual | ~ImmersedBoundaryCellPopulation () |
double | GetDampingConstant (unsigned nodeIndex) |
ImmersedBoundaryMesh< DIM, DIM > & | rGetMesh () |
const ImmersedBoundaryMesh< DIM, DIM > & | rGetMesh () const |
ImmersedBoundaryElement< DIM, DIM > * | GetElement (unsigned elementIndex) |
ImmersedBoundaryElement< DIM - 1, DIM > * | GetLamina (unsigned laminaIndex) |
unsigned | GetNumElements () |
unsigned | GetNumLaminas () |
unsigned | GetNumNodes () |
void | SetInteractionDistance (double newDistance) |
double | GetInteractionDistance () const |
void | SetReMeshFrequency (unsigned newFrequency) |
unsigned | GetReMeshFrequency () const |
void | SetThrowsStepSizeException (bool throws) |
bool | ThrowsStepSizeException () const |
double | GetIntrinsicSpacing () const |
void | SetCellRearrangementThreshold (double newThreshold) |
double | GetCellRearrangementThreshold () const |
c_vector< double, DIM > | GetLocationOfCellCentre (CellPtr pCell) |
Node< DIM > * | GetNode (unsigned index) |
std::set< unsigned > | GetNeighbouringLocationIndices (CellPtr pCell) |
unsigned | AddNode (Node< DIM > *pNewNode) |
void | UpdateNodeLocations (double dt) |
void | SetNode (unsigned index, ChastePoint< DIM > &rNewLocation) |
ImmersedBoundaryElement< DIM, DIM > * | GetElementCorrespondingToCell (CellPtr pCell) |
CellPtr | AddCell (CellPtr pNewCell, CellPtr pParentCell=CellPtr()) |
unsigned | RemoveDeadCells () |
bool | IsCellAssociatedWithADeletedLocation (CellPtr pCell) |
void | Update (bool hasHadBirthsOrDeaths=true) |
virtual void | OpenWritersFiles (OutputFileHandler &rOutputFileHandler) |
virtual void | AcceptPopulationWriter (boost::shared_ptr< AbstractCellPopulationWriter< DIM, DIM > > pPopulationWriter) |
virtual void | AcceptPopulationEventWriter (boost::shared_ptr< AbstractCellPopulationEventWriter< DIM, DIM > > pPopulationEventWriter) |
virtual void | AcceptPopulationCountWriter (boost::shared_ptr< AbstractCellPopulationCountWriter< DIM, DIM > > pPopulationCountWriter) |
virtual void | AcceptCellWriter (boost::shared_ptr< AbstractCellWriter< DIM, DIM > > pCellWriter, CellPtr pCell) |
double | GetVolumeOfCell (CellPtr pCell) |
void | OutputCellPopulationParameters (out_stream &rParamsFile) |
double | GetWidth (const unsigned &rDimension) |
std::set< unsigned > | GetNeighbouringNodeIndices (unsigned index) |
virtual TetrahedralMesh< DIM, DIM > * | GetTetrahedralMeshForPdeModifier () |
virtual bool | IsPdeNodeAssociatedWithNonApoptoticCell (unsigned pdeNodeIndex) |
virtual double | GetCellDataItemAtPdeNode (unsigned pdeNodeIndex, std::string &rVariableName, bool dirichletBoundaryConditionApplies=false, double dirichletBoundaryValue=0.0) |
boost::shared_ptr< AbstractImmersedBoundaryDivisionRule< DIM > > | GetImmersedBoundaryDivisionRule () |
void | SetImmersedBoundaryDivisionRule (boost::shared_ptr< AbstractImmersedBoundaryDivisionRule< DIM > > pImmersedBoundaryDivisionRule) |
bool | DoesPopulationHaveActiveSources () const |
bool | IsCellOnBoundary (CellPtr pCell) |
void | SetIfPopulationHasActiveSources (bool hasActiveSources) |
void | SetOutputNodeRegionToVtk (bool outputNodeRegionsToVtk) |
virtual void | CheckForStepSizeException (unsigned nodeIndex, c_vector< double, DIM > &rDisplacement, double dt) |
virtual double | GetDefaultTimeStep () |
![]() | |
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 | 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 () |
![]() | |
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 () |
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 () |
virtual CellPtr | GetCellUsingLocationIndex (unsigned index) |
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 () |
virtual std::set< std::pair< unsigned, unsigned > > | GetNeighbouringEdgeIndices (CellPtr pCell, unsigned pEdgeIndex) |
c_vector< double, SPACE_DIM > | GetCentroidOfCellPopulation () |
virtual void | UpdateCellProcessLocation () |
virtual 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 | AcceptPopulationEventWriter (boost::shared_ptr< AbstractCellPopulationEventWriter< ELEMENT_DIM, SPACE_DIM > > pPopulationEventWriter)=0 |
virtual void | AcceptCellWriter (boost::shared_ptr< AbstractCellWriter< ELEMENT_DIM, SPACE_DIM > > pCellWriter, CellPtr pCell)=0 |
std::vector< std::string > | GetDivisionsInformation () |
void | AddDivisionInformation (std::string divisionInformation) |
void | ClearDivisionsInformation () |
std::vector< std::string > | GetRemovalsInformation () |
void | AddRemovalInformation (std::string removalInformation) |
void | ClearRemovalsInformation () |
void | GenerateRemovalInformation (CellPtr pCell, std::string killerInfo) |
void | KillCell (CellPtr pCell, std::string killerInfo) |
void | StartApoptosisOnCell (CellPtr pCell, std::string killerInfo) |
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 () |
template<template< unsigned, unsigned > class T> | |
void | AddCellPopulationEventWriter () |
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) |
void | AddCellPopulationEventWriter (boost::shared_ptr< AbstractCellPopulationEventWriter< ELEMENT_DIM, SPACE_DIM > > pCellPopulationEventWriter) |
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 () |
![]() | |
virtual | ~Identifiable () |
std::string | GetIdentifier () const |
Private Member Functions | |
virtual void | WriteVtkResultsToFile (const std::string &rDirectory) |
template<class Archive > | |
void | serialize (Archive &archive, const unsigned int version) |
double | Delta1D (double dist, double spacing) |
double | CalculateIntrinsicCellSize () |
void | Validate () |
Private Attributes | |
bool | mDeleteMesh |
ImmersedBoundaryMesh< DIM, DIM > * | mpImmersedBoundaryMesh |
boost::shared_ptr< AbstractImmersedBoundaryDivisionRule< DIM > > | mpImmersedBoundaryDivisionRule |
double | mIntrinsicSpacing |
bool | mPopulationHasActiveSources |
bool | mOutputNodeRegionToVtk |
double | mInteractionDistance |
unsigned | mReMeshFrequency |
bool | mThrowStepSizeException |
double | mCellRearrangementThreshold |
Friends | |
class | TestImmersedBoundaryDivisionRules |
class | TestImmersedBoundaryCellPopulation |
class | boost::serialization::access |
A facade class encapsulating an immersed boundary cell population.
Contains a group of cells and maintains the associations between CellPtrs and elements in the ImmersedBoundaryMesh.
Definition at line 57 of file ImmersedBoundaryCellPopulation.hpp.
ImmersedBoundaryCellPopulation< DIM >::ImmersedBoundaryCellPopulation | ( | ImmersedBoundaryMesh< DIM, DIM > & | rMesh, |
std::vector< CellPtr > & | rCells, | ||
bool | deleteMesh = false , |
||
bool | validate = true , |
||
const std::vector< unsigned > | locationIndices = std::vector<unsigned>() |
||
) |
Create a new cell population facade from a mesh and collection of cells.
There must be precisely one CellPtr for each ImmersedBoundaryElement in the mesh.
rMesh | reference to an immersed boundary mesh. Each element in the mesh will correspond to a cell. |
rCells | reference to a vector of CellPtrs |
deleteMesh | set to true if you want the cell population to free the mesh memory on destruction (defaults to false) |
validate | whether to validate the cell population when it is created (defaults to true) |
locationIndices | an optional vector of location indices that correspond to real cells |
Definition at line 49 of file ImmersedBoundaryCellPopulation.cpp.
References AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::AddCellUsingLocationIndex(), ImmersedBoundaryCellPopulation< DIM >::CalculateIntrinsicCellSize(), AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mCells, ImmersedBoundaryCellPopulation< DIM >::mInteractionDistance, ImmersedBoundaryCellPopulation< DIM >::mpImmersedBoundaryDivisionRule, ImmersedBoundaryCellPopulation< DIM >::mpImmersedBoundaryMesh, AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mrMesh, ImmersedBoundaryMesh< ELEMENT_DIM, SPACE_DIM >::SetElementDivisionSpacing(), ImmersedBoundaryMesh< ELEMENT_DIM, SPACE_DIM >::SetNeighbourDist(), and ImmersedBoundaryCellPopulation< DIM >::Validate().
ImmersedBoundaryCellPopulation< DIM >::ImmersedBoundaryCellPopulation | ( | ImmersedBoundaryMesh< DIM, DIM > & | rMesh | ) |
Constructor for use by boost serialization ONLY!
rMesh | an immersed boundary mesh. |
Definition at line 93 of file ImmersedBoundaryCellPopulation.cpp.
References ImmersedBoundaryCellPopulation< DIM >::mpImmersedBoundaryMesh, and AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::mrMesh.
|
virtual |
Destructor, which frees any memory allocated by the constructor.
Definition at line 108 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden AcceptCellWriter() method.
pCellWriter | the population writer. |
pCell | the cell whose data are being written. |
Definition at line 626 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden AcceptPopulationCountWriter() method.
pPopulationCountWriter | the population count writer. |
Definition at line 619 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden AcceptPopulationWriter() method.
pPopulationEventWriter | the population event writer. |
Definition at line 612 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden AcceptPopulationWriter() method.
pPopulationWriter | the population writer. |
Definition at line 605 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden AddCell() method.
Add a new cell to the cell population.
pNewCell | the cell to add |
pParentCell | pointer to a parent cell (if required) |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 277 of file ImmersedBoundaryCellPopulation.cpp.
unsigned ImmersedBoundaryCellPopulation< DIM >::AddNode | ( | Node< DIM > * | pNewNode | ) |
Overridden AddNode() method. Add a new node to the cell population.
pNewNode | pointer to the new node |
Definition at line 242 of file ImmersedBoundaryCellPopulation.cpp.
|
private |
Helper method for the constructor. Calculate an intrinsic length scale based on the size of elements in the mesh.
Definition at line 117 of file ImmersedBoundaryCellPopulation.cpp.
Referenced by ImmersedBoundaryCellPopulation< DIM >::ImmersedBoundaryCellPopulation().
|
virtual |
Checks whether a given node displacement violates the movement threshold for this population. If so, a stepSizeException is generated that contains a warning/error message and a suggested smaller dt that should avoid the problem.
nodeIndex | Index of the node in question (allows us to check whether this is a ghost or particle) |
rDisplacement | Movement vector of the node at this time step |
dt | Current time step size |
Definition at line 578 of file ImmersedBoundaryCellPopulation.cpp.
|
private |
Helper method. Calculate the discrete delta approximation based on distance and grid spacing.
dist | distance between the two points |
spacing | the grid spacing |
Definition at line 517 of file ImmersedBoundaryCellPopulation.cpp.
bool ImmersedBoundaryCellPopulation< DIM >::DoesPopulationHaveActiveSources | ( | ) | const |
Definition at line 1083 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden GetCellDataItemAtPdeNode() method.
pdeNodeIndex | index of a node in a tetrahedral mesh for use with a PDE modifier |
rVariableName | the name of the cell data item to get |
dirichletBoundaryConditionApplies | where a Dirichlet boundary condition is used (optional; defaults to false) |
dirichletBoundaryValue | the value of the Dirichlet boundary condition, if used (optional; defaults to 0.0) |
This method can be called by PDE modifier classes.
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1018 of file ImmersedBoundaryCellPopulation.cpp.
References Node< SPACE_DIM >::rGetContainingElementIndices().
double ImmersedBoundaryCellPopulation< DIM >::GetCellRearrangementThreshold | ( | ) | const |
Definition at line 211 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden GetDampingConstant() method.
nodeIndex | the global index of this node |
Implements AbstractOffLatticeCellPopulation< DIM >.
Definition at line 132 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden GetDefaultTimeStep() method.
A hard-coded value of 0.002 is returned. However, note that the time step can be reset by calling SetDt() on the simulation object used to simulate the cell population.
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 1109 of file ImmersedBoundaryCellPopulation.cpp.
ImmersedBoundaryElement< DIM, DIM > * ImmersedBoundaryCellPopulation< DIM >::GetElement | ( | unsigned | elementIndex | ) |
Get a particular ImmersedBoundaryElement.
elementIndex | the global index of the ImmersedBoundaryElement |
Definition at line 150 of file ImmersedBoundaryCellPopulation.cpp.
Referenced by AbstractImmersedBoundaryForce< DIM >::AddNormalNoiseToNodes(), and CellPopulationElementWriter< ELEMENT_DIM, SPACE_DIM >::Visit().
ImmersedBoundaryElement< DIM, DIM > * ImmersedBoundaryCellPopulation< DIM >::GetElementCorrespondingToCell | ( | CellPtr | pCell | ) |
Get a pointer to the element corresponding to a given CellPtr.
pCell | the cell |
Definition at line 258 of file ImmersedBoundaryCellPopulation.cpp.
boost::shared_ptr< AbstractImmersedBoundaryDivisionRule< DIM > > ImmersedBoundaryCellPopulation< DIM >::GetImmersedBoundaryDivisionRule | ( | ) |
Definition at line 1070 of file ImmersedBoundaryCellPopulation.cpp.
double ImmersedBoundaryCellPopulation< DIM >::GetInteractionDistance | ( | ) | const |
Definition at line 187 of file ImmersedBoundaryCellPopulation.cpp.
Referenced by ImmersedBoundaryKinematicFeedbackForce< DIM >::AddImmersedBoundaryForceContribution(), ImmersedBoundaryLinearDifferentialAdhesionForce< DIM >::AddImmersedBoundaryForceContribution(), ImmersedBoundaryLinearInteractionForce< DIM >::AddImmersedBoundaryForceContribution(), and ImmersedBoundaryMorseInteractionForce< DIM >::AddImmersedBoundaryForceContribution().
double ImmersedBoundaryCellPopulation< DIM >::GetIntrinsicSpacing | ( | ) | const |
Definition at line 229 of file ImmersedBoundaryCellPopulation.cpp.
Referenced by ImmersedBoundaryKinematicFeedbackForce< DIM >::AddImmersedBoundaryForceContribution(), ImmersedBoundaryLinearDifferentialAdhesionForce< DIM >::AddImmersedBoundaryForceContribution(), ImmersedBoundaryLinearInteractionForce< DIM >::AddImmersedBoundaryForceContribution(), ImmersedBoundaryLinearMembraneForce< DIM >::AddImmersedBoundaryForceContribution(), ImmersedBoundaryMorseInteractionForce< DIM >::AddImmersedBoundaryForceContribution(), and ImmersedBoundaryMorseMembraneForce< DIM >::AddImmersedBoundaryForceContribution().
ImmersedBoundaryElement< DIM - 1, DIM > * ImmersedBoundaryCellPopulation< DIM >::GetLamina | ( | unsigned | laminaIndex | ) |
Get a particular ImmersedBoundaryElement representing a lamina. A lamina is a reduced-dimension element. For a 2d simulation, a lamina element is a line. For a 3d simulation, a lamina element is a surface.
laminaIndex | the global index of the lamina |
Definition at line 156 of file ImmersedBoundaryCellPopulation.cpp.
Referenced by AbstractImmersedBoundaryForce< DIM >::AddNormalNoiseToNodes().
|
virtual |
Overridden GetLocationOfCellCentre() method. Find the centre of mass of a given cell (assuming uniform density). Note that, as there is no guarantee of convexity, this may lie outside the ImmersedBoundaryElement corresponding to the cell.
pCell | a cell in the population |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 168 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden GetNeighbouringLocationIndices() method. Given a cell, returns the set of location indices corresponding to neighbouring cells. At least once per timestep, UpdateCellCentroids() should be called before this function.
pCell | a cell |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 235 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden GetNeighbouringNodeIndices() method.
index | the node index |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 831 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden GetNode() method.
index | global index of the specified node |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 174 of file ImmersedBoundaryCellPopulation.cpp.
unsigned ImmersedBoundaryCellPopulation< DIM >::GetNumElements | ( | ) |
Definition at line 265 of file ImmersedBoundaryCellPopulation.cpp.
Referenced by AbstractImmersedBoundaryForce< DIM >::AddNormalNoiseToNodes().
unsigned ImmersedBoundaryCellPopulation< DIM >::GetNumLaminas | ( | ) |
Definition at line 271 of file ImmersedBoundaryCellPopulation.cpp.
Referenced by AbstractImmersedBoundaryForce< DIM >::AddNormalNoiseToNodes().
|
virtual |
Overridden GetNumNodes() method.
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 162 of file ImmersedBoundaryCellPopulation.cpp.
Referenced by ImmersedBoundaryKinematicFeedbackForce< DIM >::AddImmersedBoundaryForceContribution().
unsigned ImmersedBoundaryCellPopulation< DIM >::GetReMeshFrequency | ( | ) | const |
Definition at line 199 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden GetTetrahedralMeshForPdeModifier() method.
This method is called by AbstractGrowingDomainPdeModifier.
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 838 of file ImmersedBoundaryCellPopulation.cpp.
References TetrahedralMesh< ELEMENT_DIM, SPACE_DIM >::ConstructFromMeshReader(), EXCEPTION, OutputFileHandler::FindFile(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNodeGlobalIndex(), AbstractElement< ELEMENT_DIM, SPACE_DIM >::GetNumNodes(), OutputFileHandler::GetOutputDirectoryFullPath(), PetscTools::IsSequential(), OutputFileHandler::OpenOutputFile(), FileFinder::Remove(), and AbstractMesh< ELEMENT_DIM, SPACE_DIM >::SetMeshHasChangedSinceLoading().
|
virtual |
Overridden GetVolumeOfCell() method.
pCell | boost shared pointer to a cell |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 633 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden GetWidth() method.
Calculate the 'width' of any dimension of the cell population by calling GetWidth() on the mesh.
rDimension | a dimension (0,1 or 2) |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 824 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden IsCellAssociatedWithADeletedLocation() method.
pCell | the cell |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 523 of file ImmersedBoundaryCellPopulation.cpp.
bool ImmersedBoundaryCellPopulation< DIM >::IsCellOnBoundary | ( | CellPtr | pCell | ) |
pCell | pointer to a cell |
Definition at line 1089 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden IsPdeNodeAssociatedWithNonApoptoticCell() method.
pdeNodeIndex | index of a node in a tetrahedral mesh for use with a PDE modifier |
Reimplemented from AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 985 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden OpenWritersFiles() method. Open all files in mCellPopulationWriters and mCellWriters for writing (not appending).
rOutputFileHandler | handler for the directory in which to open this file. |
Reimplemented from AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 796 of file ImmersedBoundaryCellPopulation.cpp.
References AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >::OpenWritersFiles().
|
virtual |
Overridden OutputCellPopulationParameters() method.
rParamsFile | the file stream to which the parameters are output |
Reimplemented from AbstractOffLatticeCellPopulation< DIM >.
Definition at line 811 of file ImmersedBoundaryCellPopulation.cpp.
References AbstractOffLatticeCellPopulation< ELEMENT_DIM, SPACE_DIM >::OutputCellPopulationParameters().
|
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 302 of file ImmersedBoundaryCellPopulation.cpp.
ImmersedBoundaryMesh< DIM, DIM > & ImmersedBoundaryCellPopulation< DIM >::rGetMesh | ( | ) |
Definition at line 138 of file ImmersedBoundaryCellPopulation.cpp.
Referenced by ImmersedBoundaryKinematicFeedbackForce< DIM >::AddImmersedBoundaryForceContribution(), ImmersedBoundaryLinearDifferentialAdhesionForce< DIM >::AddImmersedBoundaryForceContribution(), ImmersedBoundaryLinearInteractionForce< DIM >::AddImmersedBoundaryForceContribution(), ImmersedBoundaryLinearMembraneForce< DIM >::AddImmersedBoundaryForceContribution(), ImmersedBoundaryMorseInteractionForce< DIM >::AddImmersedBoundaryForceContribution(), ImmersedBoundaryMorseMembraneForce< DIM >::AddImmersedBoundaryForceContribution(), ShortAxisImmersedBoundaryDivisionRule< SPACE_DIM >::CalculateCellDivisionVector(), ImmersedBoundaryLinearMembraneForce< DIM >::CalculateForcesOnElement(), ImmersedBoundaryMorseMembraneForce< DIM >::CalculateForcesOnElement(), ImmersedBoundaryKinematicFeedbackForce< DIM >::UpdatePreviousLocations(), CellPopulationElementWriter< ELEMENT_DIM, SPACE_DIM >::Visit(), and HeterotypicBoundaryLengthWriter< ELEMENT_DIM, SPACE_DIM >::Visit().
const ImmersedBoundaryMesh< DIM, DIM > & ImmersedBoundaryCellPopulation< DIM >::rGetMesh | ( | ) | const |
Definition at line 144 of file ImmersedBoundaryCellPopulation.cpp.
|
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.
archive | the archive |
version | the current version of this class |
Definition at line 134 of file ImmersedBoundaryCellPopulation.hpp.
References ImmersedBoundaryCellPopulation< DIM >::mCellRearrangementThreshold, ImmersedBoundaryCellPopulation< DIM >::mInteractionDistance, ImmersedBoundaryCellPopulation< DIM >::mpImmersedBoundaryDivisionRule, ImmersedBoundaryCellPopulation< DIM >::mPopulationHasActiveSources, ImmersedBoundaryCellPopulation< DIM >::mReMeshFrequency, and ImmersedBoundaryCellPopulation< DIM >::mThrowStepSizeException.
void ImmersedBoundaryCellPopulation< DIM >::SetCellRearrangementThreshold | ( | double | newThreshold | ) |
Set the maximum distance two nodes should be allowed to move apart from each other in a single step.
newThreshold | the new cell rearrangement threshold |
Definition at line 205 of file ImmersedBoundaryCellPopulation.cpp.
void ImmersedBoundaryCellPopulation< DIM >::SetIfPopulationHasActiveSources | ( | bool | hasActiveSources | ) |
Set whether the population has active sources
hasActiveSources | whether the population has active sources |
Definition at line 1095 of file ImmersedBoundaryCellPopulation.cpp.
void ImmersedBoundaryCellPopulation< DIM >::SetImmersedBoundaryDivisionRule | ( | boost::shared_ptr< AbstractImmersedBoundaryDivisionRule< DIM > > | pImmersedBoundaryDivisionRule | ) |
Set the division rule for this population.
pImmersedBoundaryDivisionRule | pointer to the new division rule |
Definition at line 1076 of file ImmersedBoundaryCellPopulation.cpp.
void ImmersedBoundaryCellPopulation< DIM >::SetInteractionDistance | ( | double | newDistance | ) |
Sets the maximum distance over which cell boundary nodes will interact via forces.
newDistance | the new cell-cell interaction distance. |
Definition at line 180 of file ImmersedBoundaryCellPopulation.cpp.
void ImmersedBoundaryCellPopulation< DIM >::SetNode | ( | unsigned | index, |
ChastePoint< DIM > & | rNewLocation | ||
) |
Overridden SetNode() method. Move the node with a given index to a new point in space.
index | the index of the node to be moved |
rNewLocation | the new target location of the node |
Definition at line 252 of file ImmersedBoundaryCellPopulation.cpp.
void ImmersedBoundaryCellPopulation< DIM >::SetOutputNodeRegionToVtk | ( | bool | outputNodeRegionsToVtk | ) |
Set whether to output node regions to vtk.
outputNodeRegionsToVtk | whether to output node regions to vtk |
Definition at line 1102 of file ImmersedBoundaryCellPopulation.cpp.
void ImmersedBoundaryCellPopulation< DIM >::SetReMeshFrequency | ( | unsigned | newFrequency | ) |
Sets the number of timesteps between each remesh. Remeshing can improve solution quality and prevent divergence, but is an expensive operation.
newFrequency | the new ReMesh frequency. |
Definition at line 193 of file ImmersedBoundaryCellPopulation.cpp.
void ImmersedBoundaryCellPopulation< DIM >::SetThrowsStepSizeException | ( | bool | throws | ) |
Sets whether an exception will be thrown if nodes move too far within a single timestep.
throws | whether an exception should be thrown |
Definition at line 217 of file ImmersedBoundaryCellPopulation.cpp.
bool ImmersedBoundaryCellPopulation< DIM >::ThrowsStepSizeException | ( | ) | const |
Definition at line 223 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Remove the ImmersedBoundaryElements which have been marked as deleted, perform any cell rearrangements if required, and update the correspondence with CellPtrs.
hasHadBirthsOrDeaths | - a bool saying whether cell population has had Births Or Deaths |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 529 of file ImmersedBoundaryCellPopulation.cpp.
|
virtual |
Overridden UpdateNodeLocations() method.
dt | the time step |
Reimplemented from AbstractOffLatticeCellPopulation< DIM >.
Definition at line 332 of file ImmersedBoundaryCellPopulation.cpp.
References EXCEPTION, SimulationTime::GetTimeStepsElapsed(), SimulationTime::Instance(), and NEVER_REACHED.
|
privatevirtual |
Check the consistency of internal data structures. Each ImmersedBoundaryElement must have a CellPtr associated with it.
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 549 of file ImmersedBoundaryCellPopulation.cpp.
References EXCEPTION, SimulationTime::Instance(), and NEVER_REACHED.
Referenced by ImmersedBoundaryCellPopulation< DIM >::ImmersedBoundaryCellPopulation().
|
privatevirtual |
Overridden WriteVtkResultsToFile() method.
rDirectory | pathname of the output directory, relative to where Chaste output is stored |
Implements AbstractCellPopulation< ELEMENT_DIM, SPACE_DIM >.
Definition at line 645 of file ImmersedBoundaryCellPopulation.cpp.
References ImmersedBoundaryMeshWriter< ELEMENT_DIM, SPACE_DIM >::AddCellData(), ImmersedBoundaryMeshWriter< ELEMENT_DIM, SPACE_DIM >::AddPointData(), DOUBLE_UNSET, ImmersedBoundaryMeshWriter< ELEMENT_DIM, SPACE_DIM >::FindElementOverlaps(), SimulationTime::GetTimeStepsElapsed(), SimulationTime::Instance(), ImmersedBoundaryMeshWriter< ELEMENT_DIM, SPACE_DIM >::rGetElementParts(), and ImmersedBoundaryMeshWriter< ELEMENT_DIM, SPACE_DIM >::WriteVtkUsingMesh().
|
friend |
Definition at line 120 of file ImmersedBoundaryCellPopulation.hpp.
|
friend |
To allow tests to directly access UpdateNodeLocation().
Definition at line 64 of file ImmersedBoundaryCellPopulation.hpp.
|
friend |
The test below uses the private constructor to simplify testing.
Definition at line 61 of file ImmersedBoundaryCellPopulation.hpp.
|
private |
Distance above which a vertex movement will trigger a step size exception.
Definition at line 110 of file ImmersedBoundaryCellPopulation.hpp.
Referenced by ImmersedBoundaryCellPopulation< DIM >::serialize().
|
private |
Whether to delete the mesh when we are destroyed. Needed if this cell population has been de-serialized.
Definition at line 70 of file ImmersedBoundaryCellPopulation.hpp.
|
private |
The distance over which cell-cell interactions occur.
Definition at line 98 of file ImmersedBoundaryCellPopulation.hpp.
Referenced by ImmersedBoundaryCellPopulation< DIM >::ImmersedBoundaryCellPopulation(), and ImmersedBoundaryCellPopulation< DIM >::serialize().
|
private |
The intrinsic node spacing, relative to which various parameters must be calculated.
Definition at line 89 of file ImmersedBoundaryCellPopulation.hpp.
|
private |
Whether to output node regions to VTK.
Definition at line 95 of file ImmersedBoundaryCellPopulation.hpp.
|
private |
A pointer to a division rule that is used to generate the axis when dividing cells. This is a specialisation for immersed boundary simulations.
Definition at line 83 of file ImmersedBoundaryCellPopulation.hpp.
Referenced by ImmersedBoundaryCellPopulation< DIM >::ImmersedBoundaryCellPopulation(), and ImmersedBoundaryCellPopulation< DIM >::serialize().
|
private |
A static cast of the AbstractMesh from AbstractCellPopulation for use in this class.
Definition at line 76 of file ImmersedBoundaryCellPopulation.hpp.
Referenced by ImmersedBoundaryCellPopulation< DIM >::ImmersedBoundaryCellPopulation(), and ImmersedBoundaryCellPopulation< DIM >::ImmersedBoundaryCellPopulation().
|
private |
Whether the simulation has active fluid sources.
Definition at line 92 of file ImmersedBoundaryCellPopulation.hpp.
Referenced by ImmersedBoundaryCellPopulation< DIM >::serialize().
|
private |
Call ReMesh every ReMeshFrequency number of time steps.
Definition at line 101 of file ImmersedBoundaryCellPopulation.hpp.
Referenced by ImmersedBoundaryCellPopulation< DIM >::serialize().
|
private |
Used to ensure step size exception is only thrown once.
Definition at line 104 of file ImmersedBoundaryCellPopulation.hpp.
Referenced by ImmersedBoundaryCellPopulation< DIM >::serialize().