Klasse Co2InfluenceOnTranspirationHourly

java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.usermodules.heidi.modules.Co2InfluenceOnTranspirationHourly
Alle implementierten Schnittstellen:
net.simplace.sim.util.FWSimFieldContainer

public class Co2InfluenceOnTranspirationHourly extends net.simplace.sim.model.FWSimComponent
Reduces the ActualTranspiration due to increasing \(CO_2\) concentration in the atmosphere

\(CO_2\) calculation

The actual \(CO_2\) concentration in the atmosphere is calculated by a linear function based on the \(CO_2\) concentration (cStartValue) in the start year (cStartYear) and the slope (cSlope).

\[ \begin{equation} CO_2(Year) = Slope \cdot (Year-StartYear) + StartValue \label{co2} \end{equation} \]

Transpiration reduction

Transpiration is reduced by a factor \(f(CO_2)\) that depends linearly on the actual \(CO_2\) concentration by:

\[ \begin{eqnarray} f(CO_2) Ungültige Eingabe: "&" = Ungültige Eingabe: "&" Transpiration\_m \cdot CO_2 + Transpiration\_b \label{fco2}\\ ReducedActualTranspiration Ungültige Eingabe: "&" = Ungültige Eingabe: "&" ActualTranspiration \cdot f(CO_2(year)) \label{redtrans} \end{eqnarray} \]

where \Transpiration\_m\ and \Transpiration\_b\ are the slope and the intercept of the linear function being set to 1.1. and -0.0003 respectively by default. The reduced actual transpiration is calculated by multiplying the actual transpiration as determined by crop water demand and soil water supply with the reduction factor \(f(CO_2)\). This value of reduced actual transpiration is then compared with the potential crop transpiration PTRAN to calculate crop water stress (TRANRF) (e.g. in the SimComponent lintul.LintulWaterStress and the impact on crop growth rate.

Remarks

If you want to switch of the \(CO_2\) effect on transpiration (e.g. if you use want to use the same solution with projects to calculate with and without \(CO_2\) effect), then you can parameterize the component, so that the factor is always 1:

  • set cTranspiration_m to 0
  • set cTranspiration_b to 1

For clarity reasons however, it is recommended to use different solutions and to remove the SimComponent from the solution, if you don't want to calculate \(CO_2\) effect on transpiration.

References

Calculations due to LintulFAST. Further reference needed!

Autor:
Gunther Krauss, Andreas Enders

Component Variables

Content TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcSlopeSlope of the linear function calculating the \(CO_2\) concentration in the atmosphere \(\eqref{co2}\)DOUBLEppm/a0.020.03.5
constantcStartValueStart \(CO_2\) value of the linear function calculating the \(CO_2\) concentration \(\eqref{co2}\)DOUBLEppm220.0400.0350.0
constantcStartYearStart year of the linear function calculating the \(CO_2\) concentration \(\eqref{co2}\)INTa193020201990
constantcTranspiration_bIntercept of the linear function calculating the reduction factor \(\eqref{fco2}\)DOUBLE10.020.01.1
constantcTranspiration_mSlope of the linear function calculating the reduction factor \(\eqref{fco2}\)DOUBLEppm-10.020.0-3.0E-4
inputiPotentialTranspirationHour(Unreduced) potential transpirationDOUBLEARRAYmm/d0.020.0 null null null null null null null null null null null null null null null null null null null null null null null null
outPotentialTranspirationHourCO2Reduced potential transpiration by \(CO_2\) \(\eqref{redtrans}\)DOUBLEARRAYmm/d0.020.0 null null null null null null null null null null null null null null null null null null null null null null null null
  • 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)
    /** creates a clone from this SimComponent for use in other threads
    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

    • Co2InfluenceOnTranspirationHourly

      public Co2InfluenceOnTranspirationHourly()
      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)
      /** creates a clone from this SimComponent for use in other threads
      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)