/// <summary> /// This function increments thermal time accumulated in each phase /// and returns a non-zero value if the phase target is met today so /// the phenology class knows to progress to the next phase and how /// much tt to pass it on the first day. /// </summary> public override double DoTimeStep(double PropOfDayToUse) { base.DoTimeStep(PropOfDayToUse); // Get the Target TT double Target = CalcTarget(); if (DaysFromSowingToEndPhase > 0) { if (phenology.DaysAfterSowing >= DaysFromSowingToEndPhase) { PropOfDayUnused = 1.0; } else { PropOfDayUnused = 0.0; } } else if (TTinPhase > Target) { double LeftOverValue = TTinPhase - Target; if (_TTForToday > 0.0) { double PropOfValueUnused = LeftOverValue / ThermalTime.Value(); PropOfDayUnused = PropOfValueUnused * PropOfDayToUse; } else { PropOfDayUnused = 1.0; } TTinPhase = Target; } return(PropOfDayUnused); }
/// <summary>Return proportion of TT unused</summary> /// <param name="PropOfDayToUse">The property of day to use.</param> /// <returns></returns> public override double AddTT(double PropOfDayToUse) { TTinPhase += ThermalTime.Value() * PropOfDayToUse; double AmountUnusedTT = TTinPhase - CalcTarget(); if (AmountUnusedTT > 0) { return(AmountUnusedTT / ThermalTime.Value()); } return(0); }
/// <summary> /// This function increments thermal time accumulated in each phase /// and returns a non-zero value if the phase target is met today so /// the phenology class knows to progress to the next phase and how /// much tt to pass it on the first day. /// </summary> public override double DoTimeStep(double PropOfDayToUse) { base.DoTimeStep(PropOfDayToUse); // Get the Target TT double Target = CalcTarget(); structure.PrimaryBudNo = plant.SowingData.BudNumber; if (DaysFromSowingToEndPhase > 0) { if (phenology.DaysAfterSowing >= DaysFromSowingToEndPhase) { PropOfDayUnused = 1.0; } else { PropOfDayUnused = 0.0; } } else if (TTinPhase > Target) { double LeftOverValue = TTinPhase - Target; if (_TTForToday > 0.0) { double PropOfValueUnused = LeftOverValue / ThermalTime.Value(); PropOfDayUnused = PropOfValueUnused * PropOfDayToUse; } else { PropOfDayUnused = 1.0; } TTinPhase = Target; } if (PropOfDayUnused > 0.0) { double BudNumberBurst = plant.SowingData.BudNumber * FractionOfBudBurst.Value(); structure.PrimaryBudNo = BudNumberBurst; structure.TotalStemPopn = structure.MainStemPopn; } return(PropOfDayUnused); }
/// <summary>Do our timestep development</summary> /// <param name="PropOfDayToUse">The property of day to use.</param> /// <returns></returns> public override double DoTimeStep(double PropOfDayToUse) { _CumulativeValue += ThermalTime.Value(); TTinPhase += ThermalTime.Value(); return(0); }