Class PlantHeightByTemperature
- All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer
The model calculates plant height increment by using daily mean temperature. It uses the ODE of the logistic function
\[ \frac{dH}{dt} = r \cdot \left (T(t)-T_b\right )\cdot H(t)\cdot \left (1 - \frac{H(t)}{H_{max}}\right ) \]For daily calculation of the height \(H_d\) this turns down to the formula
\[ H_{d+1} = F_{stress}\cdot r\cdot \left (T_{d}-T_b \right )\cdot H_d\cdot \left (1 - \frac{H_d}{H_{max}} \right ) + H_d \]where \(H_d\) is the crop height at day \(d\), \(H_{max}\) the maximal crop height, \(T_d\) the daily mean temperature and \(T_b\) the base temperature. \(F_{stress}\) is a factor between 0 and 1 that reduces the daily potential growth due to stresses.
The height growths stops, when the temperature sum \(\sum_{d=1}^{D}(T_d - T_b)\) is bigger than the maximum temperature sum \(TS_{max}\).
References
Berghuijs, H. N. C. et al, Identification of species traits enhancing yield in wheat-faba bean intercropping: development and sensitivity analysis of a minimalist mixture model, Plant Soil, 2020, https://doi.org/10.1007/s11104-020-04668-0
- Author:
- Gunther Krauss, guntherkrauss@uni-bonn.de
Component Variables
Content Type | Name | Description | Data Type | Unit | Min Value | Max Value | Default Value |
---|---|---|---|---|---|---|---|
constant | cBaseTemperature | base temperature | DOUBLE | °C | -10.0 | 20.0 | 0.0 |
constant | cInitialHeight | initial height | DOUBLE | m | 0.0 | 100.0 | 0.0 |
constant | cMaxHeight | maximal height | DOUBLE | m | 0.0 | 100.0 | 0.0 |
constant | cRelativeGrowthRate | relative growth rate per day and degree Celsius | DOUBLE | (°C d)-1 | 0.0 | 1.0 | 0.00567 |
constant | cTsumMaxHeight | temperature sum where the height growth stops | DOUBLE | °C d | 0.0 | 10000.0 | 800.0 |
input | iDoHarvest | I true, harvesting occurs (height is set to 0). | BOOLEAN | 1 | - | - | false |
input | iDoSow | If true, sowing occurs (height is set to initial height.) | BOOLEAN | 1 | - | - | false |
input | iStressFactor | Stress factor that may reduce daily height increment. Default of 1 means no reduction. | DOUBLE | 1 | 0.0 | 1.0 | 1.0 |
input | iTMax | Daily maximum temperature | DOUBLE | °C | -50.0 | 100.0 | 0.0 |
input | iTMin | Daily minimum temperature | DOUBLE | °C | -50.0 | 100.0 | 0.0 |
state | sHeight | Plant height | DOUBLE | m | 0.0 | 50.0 | 0.0 |
state | sTsum | Actual temperature sum | DOUBLE | °C d | 0.0 | 50.0 | 0.0 |
rate | rHeightRate | Daily increment of height | DOUBLE | m/d | 0.0 | 10000.0 | 0.0 |
rate | rTsumRate | Daily increment of temperature sum | DOUBLE | °C | 0.0 | 60.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
-
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()
Initializes the fields by getting input and output FWSimVariables from VarMapprotected void
process()
Process the algorithm and write the results back to VarMapMethods 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
-
PlantHeightByTemperature
public PlantHeightByTemperature()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:
-
net.simplace.simulation.model.FWSimComponent#createVariables()
-
init
protected void init()Initializes the fields by getting input and output FWSimVariables from VarMap- Specified by:
init
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
net.simplace.simulation.model.FWSimComponent#init()
-
process
protected void process()Process the algorithm and write the results back to VarMap- Specified by:
process
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
net.simplace.simulation.model.FWSimComponent#process()
-
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:
-
net.simplace.simulation.model.FWSimComponent#clone(net.simplace.simulation.util.FWSimVarMap)
-