GenericPhase
The GenericPhase is a phenological phase used within a plant’s developmental sequence. It simulates a growth phase that progresses in proportion to accumulated thermal time and completes once a specified target thermal time (in °Cd) is reached.
Overview
The GenericPhase advances development using daily thermal time accumulation. The phase begins at a defined start stage and is considered complete once the cumulative thermal time equals or exceeds a specified target value.
- Daily progression is configured from property
Progression(in general it is daily thermal time, e.g.[Phenology].ThermalTime). - The target thermal time is configured via the property
Target(in °Cd). - The progress through this phase is tracked by the
FractionCompleteproperty, which returns a value between 0 and 1. - The phase transitions to the next stage once
FractionCompletereaches 1.
If the previous phase finishes mid-day (i.e., progress overshoots the target), the unused fraction of the day’s progress is passed to this phase. This ensures continuity in phenological development across phase boundaries.
Model Structure
This section describes how this model is positioned within the APSIM framework. It outlines the broader structural and computational components that define its role and interactions in the simulation system.
This model inherits structural and functional behaviour from the following core APSIM components:
Connections to Other Components
This section describes how the model interacts with other components in the APSIM Next Generation framework.
These connections allow the model to exchange information—such as environmental conditions, developmental stage, or physiological responses—with other parts of the simulation system. For a general overview of how model components are connected in APSIM, see the Connections Overview.
| Component | Model | Connection Type | Description |
|---|---|---|---|
| Target | IFunction | Child, By Name | Defines the target thermal time (°Cd) required to complete this phase. |
| Progression | IFunction | Child, By Name | Calculates daily progression through the phase (typically daily thermal time). |
| Clock | IClock | Link | Provides current simulation date for tracking phase duration. |
Model Variables
This section lists the key variables that describe or control the behaviour of this component. Some variables can be adjusted by the user to modify how the model behaves (configurable), while others are calculated internally and can be viewed as model outputs (reportable). For a general explanation of variable types and how they are used within the APSIM Next Generation framework, see the Model Variables Overview.
Configurable and Reportable Properties
| Property | Type | Description |
|---|---|---|
Start |
string | Phenological stage at which this phase begins. |
End |
string | Phenological stage that marks completion of the phase. |
IsEmerged |
bool | Boolean flag indicating whether the crop has emerged above the soil surface (i.e., this phase is happening above ground). Default is true. |
Read-Only Reportable Properties
| Property | Type | Description |
|---|---|---|
Target |
double | Thermal time target (°Cd) required to end this phase. |
FractionComplete |
double | Fraction (0–1) indicating how much of the phase is complete. |
ProgressionForTimeStep |
double | The amount of progression made during the current time step (e.g., day). |
ProgressThroughPhase |
double | Accumulated units of progress through this phase between zero and target. |
DateToProgress |
string | Optional date string for external control of phase completion. If set by external model, phase will wait for the specified date to progress. |
Events
This section describes the events associated with this component. Events are signals or notifications that indicate when a particular process occurs within the simulation, or when a component needs to respond to a change in another part of the system. Some events are listened for by this component to trigger its processes, while others are raised to inform other components about changes. For a general overview of how APSIM Next Generation uses events to coordinate processes between components, see the Events Overview.
Events Listened For
These are signals or notifications that the function listens for from other parts of the simulation:
| Event | Purpose |
|---|---|
| Commencing | Reset progress at the start of simulations |
Events Raised to
No events are raised by this function.
Processes and Algorithms
This section describes the scientific processes and algorithms represented by this component. Each process corresponds to a biological, physical, or chemical mechanism simulated during a model time step. Where appropriate, equations or conceptual summaries are provided to explain how the process operates within the APSIM Next Generation framework.
Daily Time Step Calculation
The DoTimeStep method is the core algorithm that advances the phase on each simulation time step:
Date-based progression check: If
DateToProgressis set (by an external model), the phase waits until that date before completing, ignoring thermal time accumulation.Normal thermal time progression:
- Calculate daily progression by multiplying the Progression value by the proportion of day to use
- Add this daily progression to the accumulated progress through the phase
- If accumulated progress exceeds the target:
- The phase is marked complete
- Calculate how much of the day was unused based on the overshoot
- Cap the progress at the target value
- Pass the unused portion to the next phase
Fraction complete calculation: Divide the accumulated progress by the target to get completion percentage (0-1)
User Interface
GenericPhase can be added as a child of a Phenology node in the model tree. Right-click the Phenology node, select “Add Model…”, and search for GenericPhase in the Filter Box.
The phase requires two child functions to be configured: - Target: An IFunction defining the thermal time requirement - Progression: An IFunction defining daily progression (typically thermal time)
See Also
- Source code: GenericPhase.cs on GitHub