Klasse PlantHeightByTemperature

java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.sim.components.experimental.PlantHeightByTemperature
Alle implementierten Schnittstellen:
net.simplace.sim.util.FWSimFieldContainer

public class PlantHeightByTemperature extends net.simplace.sim.model.FWSimComponent
Calculates plant height from temperature

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

Autor:
Gunther Krauss, guntherkrauss@uni-bonn.de

Component Variables

Content TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcBaseTemperaturebase temperatureDOUBLE°C-10.020.00.0
constantcInitialHeightinitial heightDOUBLEm0.0100.00.0
constantcMaxHeightmaximal heightDOUBLEm0.0100.00.0
constantcRelativeGrowthRaterelative growth rate per day and degree CelsiusDOUBLE(°C d)-10.01.00.00567
constantcTsumMaxHeighttemperature sum where the height growth stopsDOUBLE°C d0.010000.0800.0
inputiDoHarvestI true, harvesting occurs (height is set to 0).BOOLEAN1--false
inputiDoSowIf true, sowing occurs (height is set to initial height.)BOOLEAN1--false
inputiStressFactorStress factor that may reduce daily height increment. Default of 1 means no reduction.DOUBLE10.01.01.0
inputiTMaxDaily maximum temperatureDOUBLE°C-50.0100.00.0
inputiTMinDaily minimum temperatureDOUBLE°C-50.0100.00.0
statesHeightPlant heightDOUBLEm0.050.00.0
statesTsumActual temperature sumDOUBLE°C d0.050.00.0
raterHeightRateDaily increment of heightDOUBLEm/d0.010000.00.0
raterTsumRateDaily increment of temperature sumDOUBLE°C0.060.00.0
  • Verschachtelte Klassen - Übersicht

    Von Klasse geerbte verschachtelte Klassen/Schnittstellen net.simplace.sim.model.FWSimComponent

    net.simplace.sim.model.FWSimComponent.TEST_STATE
  • Feldübersicht

    Von Klasse geerbte Felder net.simplace.sim.model.FWSimComponent

    iFieldMap, iFrequence, iInputMap, iJexlRule, iMasterComponentGroup, iName, iOrderNumber, isComponentGroup, iSimComponentElement, iSimModel, iVarMap
  • Konstruktorübersicht

    Konstruktoren
    Konstruktor
    Beschreibung
    Empty constructor used by class.forName()
  • Methodenübersicht

    Modifizierer und Typ
    Methode
    Beschreibung
    protected net.simplace.sim.model.FWSimComponent
    clone(net.simplace.sim.util.FWSimVarMap aVarMap)
     
    HashMap<String,net.simplace.sim.util.FWSimVariable<?>>
    Create the FWSimVariables as interface for this SimComponent
    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.
    protected void
    Initializes the fields by getting input and output FWSimVariables from VarMap
    protected void
    Process the algorithm and write the results back to VarMap

    Von Klasse geerbte Methoden 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

    Von Klasse geerbte Methoden java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Konstruktordetails

    • PlantHeightByTemperature

      public PlantHeightByTemperature()
      Empty constructor used by class.forName()
  • Methodendetails

    • createVariables

      public HashMap<String,net.simplace.sim.util.FWSimVariable<?>> createVariables()
      Create the FWSimVariables as interface for this SimComponent
      Angegeben von:
      createVariables in Schnittstelle net.simplace.sim.util.FWSimFieldContainer
      Angegeben von:
      createVariables in Klasse net.simplace.sim.model.FWSimComponent
      Siehe auch:
      • Ungültige Referenz
        net.simplace.simulation.model.FWSimComponent#createVariables()
    • init

      protected void init()
      Initializes the fields by getting input and output FWSimVariables from VarMap
      Angegeben von:
      init in Klasse net.simplace.sim.model.FWSimComponent
      Siehe auch:
      • Ungültige Referenz
        net.simplace.simulation.model.FWSimComponent#init()
    • process

      protected void process()
      Process the algorithm and write the results back to VarMap
      Angegeben von:
      process in Klasse net.simplace.sim.model.FWSimComponent
      Siehe auch:
      • Ungültige Referenz
        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.
      Angegeben von:
      fillTestVariables in Klasse net.simplace.sim.model.FWSimComponent
      Siehe auch:
      • Ungültige Referenz
        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)
      Angegeben von:
      clone in Klasse net.simplace.sim.model.FWSimComponent
      Siehe auch:
      • Ungültige Referenz
        net.simplace.simulation.model.FWSimComponent#clone(net.simplace.simulation.util.FWSimVarMap)