Class Vernalisation
java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.sim.components.experimental.amei.Vernalisation
- All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer
public class Vernalisation
extends net.simplace.sim.model.FWSimComponent
Reduces daily temperature increment by vernalisation and photoresponse.
Vernalisation
Vernalisation days
The daily increment of vernalisation days is determined by daily average temperature iDAVTEMP
\[ \begin{eqnarray} VDI(iDAVTEMP) & = & \left\{ \begin{array}{l} 0 & \text{if} \quad iDAVTEMP \lt cTlowCritical\\ \frac{iDAVTEMP - cTlowCritical}{cTlow - cTlowCritical} & \text{if} \quad cTlowCritical \le iDAVTEMP \lt cTlow \\ 1 & \text{if} \quad cTlow \le iDAVTEMP \lt cThigh \\ \frac{cThighCritical - iDAVTEMP}{cThighCritical - cThigh} & \text{if} \quad cThigh \le iDAVTEMP \lt cThighCritical \\ 0 & \text{if} \quad cThighCritical \le iDAVTEMP\\ \end{array} \right. \end{eqnarray} \]And sVernalDays is incremented by VDI(iDAVTEMP).
Vernalisation factor
VernalisationFactor (VF) is determined by the sVernalDays (VD)
\[ \begin{eqnarray} VF(VD) & = & \left\{ \begin{array}{l} 0 & \text{if} \quad VD \lt cVernalDaysMin\\ \frac{VD - cVernalDaysMin}{cVernalDaysMax - cVernalDaysMin} & \text{if} \quad cVernalDaysMin \le VD \lt cVernalDaysMax \\ 1 & \text{if} \quad cVernalDaysMax \le VD \\ \end{array} \right. \end{eqnarray} \]Applying Vernalisation
Before anthesis:
\[ \begin{eqnarray} RTSUM & = & iTSumBaseAnt \cdot Min(PhotoPeriodeFactor, VernalisationFactor) \end{eqnarray} \]After anthesis:
\[ \begin{eqnarray} RTSUM & = & iTSumBaseMat \cdot Min(PhotoPeriodeFactor, VernalisationFactor) \end{eqnarray} \]cApplyPhotoresponse and cApplyVernalisation control whether photoresponse, vernalisation or both are applied. If the control variables are false, the coresponding factor is always 1, meaning that the effect is not applied.
The state sVernalDays has to be reset on each sowing. Therefore the input iDoSow has to be provided.
References
Goudriaan, H.H. Van Laar, 1994. Modelling Potential Crop Growth Processes, Kluwer Academic Publishers, Dordrecht (1994) 238 pp
Component Variables
Content Type | Name | Description | Data Type | Unit | Min Value | Max Value | Default Value |
---|---|---|---|---|---|---|---|
constant | cApplyVernalisation | Flag to activate vernalisation (True: crops requiring vernalisation for flower initialisation | BOOLEAN | 1 | - | - | true |
constant | cThigh | Upper temperature threshold for vernalisation; days with higher mean air temperature are not fully considered as a vernalisation day | DOUBLE | °C | -40.0 | 50.0 | 10.0 |
constant | cThighCritical | Upper temperature threshold for vernalisation; days with higher mean air temperature don't contribute at all for vernalisation day | DOUBLE | °C | -40.0 | 50.0 | 17.0 |
constant | cTlow | Lower temperature threshold for vernalisation, days with lower mean air temperature are not fully considered as a vernalisation day | DOUBLE | °C | -40.0 | 50.0 | 3.0 |
constant | cTlowCritical | Lower critical temperature threshold for vernalisation, days with lower mean air temperature don't contribute at all for vernalisation day | DOUBLE | °C | -40.0 | 50.0 | -4.0 |
constant | cVernalDaysMax | Crop specific maximum number of days required for vernalisation | INT | 1 | 0 | 400 | 70 |
constant | cVernalDaysMin | Crop specific minimum number of days required for vernalisation | INT | 1 | 0 | 100 | 10 |
input | iDAVTMP | Daily mean air temperature | DOUBLE | °C | 0.0 | 50.0 | - |
input | iDevStage | Development stage of the crop (1.0=anthesis, 2.0=physiological maturity) | DOUBLE | 1 | 0.0 | 3.0 | - |
input | iDevStageBaseShoot | Development stage for base shoot | DOUBLE | 1 | 0.0 | 10000.0 | 0.5 |
input | iDoSow | true if sowing day | BOOLEAN | 1 | - | - | false |
input | iPhotoPeriodFactor | PhotoPeriodFactor | DOUBLE | 1 | 0.0 | 1.0 | - |
input | iTSumBaseAnt | Daily effective temperature before anthesis | DOUBLE | °C | 0.0 | 10000.0 | - |
input | iTSumBaseMat | Daily effective temperature after anthesis | DOUBLE | °C | 0.0 | 10000.0 | - |
input | iTSumBaseShoot | Daily effective temperature after shooting - if given | DOUBLE | °C | 0.0 | 10000.0 | - |
state | sVernalDays | actual Vernal Days | DOUBLE | 1 | 0.0 | 400.0 | 0.0 |
out | DayLength | Day Length in minutes | INT | min | 0 | 1441 | 0 |
out | RTSUM | Daily effective temperature used to calculate the temperature sum and development stage at a given day | DOUBLE | °C | 0.0 | 50.0 | - |
out | VernalisationFactor | daily vernalisation factor | DOUBLE | 1 | 0.0 | 1.0 | 0.0 |
-
Nested Class Summary
Nested classes/interfaces inherited from class net.simplace.sim.model.FWSimComponent
net.simplace.sim.model.FWSimComponent.TEST_STATE
-
Field Summary
Fields inherited from class net.simplace.sim.model.FWSimComponent
iFieldMap, iFrequence, iInputMap, iJexlRule, iMasterComponentGroup, iName, iOrderNumber, isComponentGroup, iSimComponentElement, iSimModel, iVarMap
-
Constructor Summary
ConstructorDescriptionEmpty constructor used by class.forName()Vernalisation
(String aName, HashMap<String, net.simplace.sim.util.FWSimVariable<?>> aFieldMap, HashMap<String, String> aInputMap, org.jdom2.Element aSimComponentElement, net.simplace.sim.util.FWSimVarMap aVarMap, int aOrderNumber) Called by Clone method only -
Method Summary
Modifier and TypeMethodDescriptionprotected net.simplace.sim.model.FWSimComponent
clone
(net.simplace.sim.util.FWSimVarMap aVarMap) Create the FWSimVariables as interface for this SimComponentfillTestVariables
(int aParamIndex, net.simplace.sim.model.FWSimComponent.TEST_STATE aDefineOrCheck) called for single component test to check the components algorithm.protected void
init()
protected void
process()
protected void
reset()
Methods inherited from class net.simplace.sim.model.FWSimComponent
addVariable, bind, checkCondition, createSimComponent, createSimComponent, createSimComponent, createSimComponent, doProcess, getConstantVariables, getContentType, getCreateFormXML, getDescription, getEditFormXML, getFieldMap, getFrequence, getFrequenceRuleScript, getInputs, getInputVariables, getMasterComponentGroup, getName, getOrderNumber, getOutputVariables, getVariable, getVariableField, getVarMap, initialize, isConditionCheck, isVariableAvailable, performLinks, performLinks, readInputs, removeVariable, reset, runComponentTest, setVariablesDefault, toComponentLinkingXML, toDocXML, toGroupXML, toOutputDefinitionXML, toResourcesDataXML, toResourcesDefinitionXML, toString, toXML, writeVarInfos
-
Constructor Details
-
Vernalisation
public Vernalisation(String aName, HashMap<String, net.simplace.sim.util.FWSimVariable<?>> aFieldMap, HashMap<String, String> aInputMap, org.jdom2.Element aSimComponentElement, net.simplace.sim.util.FWSimVarMap aVarMap, int aOrderNumber) Called by Clone method only- Parameters:
aName
-aFieldMap
-aInputMap
-aSimComponentElement
-aVarMap
-aOrderNumber
-
-
Vernalisation
public Vernalisation()Empty constructor used by class.forName()
-
-
Method Details
-
createVariables
Create the FWSimVariables as interface for this SimComponent- Specified by:
createVariables
in interfacenet.simplace.sim.util.FWSimFieldContainer
- Specified by:
createVariables
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.createVariables()
-
init
protected void init()- Specified by:
init
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.init()
-
reset
protected void reset() -
process
protected void process()- Specified by:
process
in classnet.simplace.sim.model.FWSimComponent
-
fillTestVariables
public HashMap<String,net.simplace.sim.util.FWSimVariable<?>> fillTestVariables(int aParamIndex, net.simplace.sim.model.FWSimComponent.TEST_STATE aDefineOrCheck) called for single component test to check the components algorithm.- Specified by:
fillTestVariables
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
net.simplace.sim.util.FWSimFieldContainer#fillTestVariables(int aParamIndex, TEST_STATE aDefineOrCheck)
-
clone
protected net.simplace.sim.model.FWSimComponent clone(net.simplace.sim.util.FWSimVarMap aVarMap) - Specified by:
clone
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)
-