59 while (pCell->GetCellId() >= mNormalRandomNumbers.size())
65 random_number = std::min(1.5, random_number);
66 random_number = std::max(0.5, random_number);
68 mNormalRandomNumbers.push_back(random_number);
72 double cell_target_area = this->mReferenceTargetArea;
74 double growth_duration = mGrowthDuration;
79 EXCEPTION(
"If SetGrowthDuration() has not been called, a subclass of AbstractPhaseBasedCellCycleModel must be used");
86 if (growth_duration == DBL_MAX)
96 if (pCell->GetStartOfApoptosisTime() - pCell->GetBirthTime() < growth_duration)
98 cell_target_area *= 0.5*(1 + (pCell->GetStartOfApoptosisTime() - pCell->GetBirthTime())/growth_duration);
104 cell_target_area *= 1.0 - 0.5/(pCell->GetApoptosisTime())*time_spent_apoptotic;
105 if (cell_target_area < 0)
107 cell_target_area = 0;
112 double cell_age = pCell->GetAge();
115 if (cell_age < growth_duration)
117 cell_target_area *= 0.5*(1 + cell_age/growth_duration);
128 if (pCell->ReadyToDivide())
130 cell_target_area = 0.5*this->mReferenceTargetArea;
136 pCell->GetCellData()->SetItem(
"target area", cell_target_area * mNormalRandomNumbers[pCell->GetCellId()]);