36 #include "SimpleTargetAreaModifier.hpp" 37 #include "AbstractPhaseBasedCellCycleModel.hpp" 38 #include "ApoptoticCellProperty.hpp" 40 template<
unsigned DIM>
47 template<
unsigned DIM>
52 template<
unsigned DIM>
61 if (dynamic_cast<AbstractPhaseBasedCellCycleModel*>(pCell->GetCellCycleModel()) ==
nullptr)
63 EXCEPTION(
"If SetGrowthDuration() has not been called, a subclass of AbstractPhaseBasedCellCycleModel must be used");
70 if (growth_duration == DBL_MAX)
80 if (pCell->GetStartOfApoptosisTime() - pCell->GetBirthTime() < growth_duration)
82 cell_target_area *= 0.5*(1 + (pCell->GetStartOfApoptosisTime() - pCell->GetBirthTime())/growth_duration);
88 cell_target_area *= 1.0 - 0.5/(pCell->GetApoptosisTime())*time_spent_apoptotic;
89 if (cell_target_area < 0)
96 double cell_age = pCell->GetAge();
99 if (cell_age < growth_duration)
101 cell_target_area *= 0.5*(1 + cell_age/growth_duration);
112 if (pCell->ReadyToDivide())
120 pCell->GetCellData()->SetItem(
"target area", cell_target_area);
123 template<
unsigned DIM>
129 template<
unsigned DIM>
132 assert(growthDuration >= 0.0);
136 template<
unsigned DIM>
139 *rParamsFile <<
"\t\t\t<GrowthDuration>" <<
mGrowthDuration <<
"</GrowthDuration>\n";
virtual void UpdateTargetAreaOfCell(const CellPtr pCell)
virtual void OutputSimulationModifierParameters(out_stream &rParamsFile)
double mReferenceTargetArea
double GetGrowthDuration()
void OutputSimulationModifierParameters(out_stream &rParamsFile)
#define EXCEPTION(message)
SimpleTargetAreaModifier()
static SimulationTime * Instance()
virtual double GetG1Duration() const
const double DOUBLE_UNSET
virtual ~SimpleTargetAreaModifier()
#define EXPORT_TEMPLATE_CLASS_SAME_DIMS(CLASS)
void SetGrowthDuration(double growthDuration)
double GetTransitCellG1Duration() const