36 #include "TargetAreaLinearGrowthModifier.hpp" 37 #include "ApoptoticCellProperty.hpp" 38 #include "DifferentiatedCellProliferativeType.hpp" 39 #include "AbstractPhaseBasedCellCycleModel.hpp" 41 template<
unsigned DIM>
49 template<
unsigned DIM>
54 template<
unsigned DIM>
65 cell_target_area = cell_target_area - 0.5*cell_target_area/(pCell->GetApoptosisTime())*time_spent_apoptotic;
68 if (cell_target_area < 0)
76 if (!cell_is_differentiated)
87 if (dynamic_cast<AbstractPhaseBasedCellCycleModel*>(pCell->GetCellCycleModel()) ==
nullptr)
89 EXCEPTION(
"If SetAgeToStartGrowing() has not been called, a subclass of AbstractPhaseBasedCellCycleModel must be used");
100 growth_rate = cell_target_area/g2_duration;
104 EXCEPTION(
"If SetAgeToStartGrowing() has been called, then SetGrowthRate() must also be called");
107 double time_spent_growing = pCell->GetAge() - growth_start_time;
110 if (time_spent_growing > 0)
112 cell_target_area += time_spent_growing*growth_rate;
122 if (pCell->ReadyToDivide())
130 pCell->GetCellData()->SetItem(
"target area", cell_target_area);
133 template<
unsigned DIM>
139 template<
unsigned DIM>
142 assert(ageToStartGrowing >= 0.0);
146 template<
unsigned DIM>
152 template<
unsigned DIM>
155 assert(growthRate >= 0.0);
159 template<
unsigned DIM>
162 *rParamsFile <<
"\t\t\t<AgeToStartGrowing>" <<
mAgeToStartGrowing <<
"</AgeToStartGrowing>\n";
163 *rParamsFile <<
"\t\t\t<GrowthRate>" <<
mGrowthRate <<
"</GrowthRate>\n";
virtual void OutputSimulationModifierParameters(out_stream &rParamsFile)
double mReferenceTargetArea
void SetGrowthRate(double growthRate)
double GetAgeToStartGrowing()
#define EXCEPTION(message)
void OutputSimulationModifierParameters(out_stream &rParamsFile)
static SimulationTime * Instance()
void SetAgeToStartGrowing(double ageToStartGrowing)
virtual double GetG1Duration() const
const double DOUBLE_UNSET
#define EXPORT_TEMPLATE_CLASS_SAME_DIMS(CLASS)
TargetAreaLinearGrowthModifier()
virtual double GetSDuration() const
void UpdateTargetAreaOfCell(const CellPtr pCell)
double mAgeToStartGrowing
virtual double GetMDuration() const
virtual double GetG2Duration() const
virtual ~TargetAreaLinearGrowthModifier()