Klasse Co2InfluenceOnLUE

java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.sim.components.crop.co2.Co2InfluenceOnLUE
Alle implementierten Schnittstellen:
net.simplace.sim.util.FWSimFieldContainer

public class Co2InfluenceOnLUE extends net.simplace.sim.model.FWSimComponent
Calculates LUE in dependence of \(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} \]

LUE curve

The light use efficiency LUE is calculated in dependence of \(CO_2\) by the formula:

\[ \begin{eqnarray} LUE(CO_2) Ungültige Eingabe: "&" = Ungültige Eingabe: "&" \lambda \frac{CO_2}{CO_2 +b_1 e^{-b_2 CO_2}} \label{lue} \\ lambda Ungültige Eingabe: "&" = Ungültige Eingabe: "&" 100 g MJ^{-1} \end{eqnarray} \]

where b1 and b2 are unitless coefficients which determine the shape of the curve and are 6928 and -0.0014 respectively by default.

LUE calculation

Finally the LUE-curve is stretched by a factor f so that it meets the reference LUE (cReferenceLueValue) value at a reference \(CO_2\) concentration (cReferenceCo2Value).

\[ \begin{eqnarray} f Ungültige Eingabe: "&" = Ungültige Eingabe: "&" \frac{ReferenceLueValue}{LUE(ReferenceCO_2Value)} \label{factor} \\ LUE Ungültige Eingabe: "&" = Ungültige Eingabe: "&" LUE(CO_2(Year)) \cdot f \label{finallue} \end{eqnarray} \]

Remarks

If you want to switch of the \(CO_2\) effect (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 calculated LUE corresponds the given one:

  • set cSlope to 0
  • set cStartValue and cReferenceCo2Value to the same value
  • set cReferenceLUEValue to the desired value

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.

Reference:

Stockle, C.O., Williams, J.R., Rosenberg, N.J., Jones, C.A., 1992. A method for estimating the direct and climatic effects of rising atmospheric carbon dioxide on growth and yield of crops, Agr. Sys. 38 (3), 225–-238. See http://dx.doi.org/10.1016/0308-521X(92)90067-X

Autor:
Gunther Krauss, Andreas Enders

Component Variables

Content TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcReferenceCo2ValueUsed to rescale the curve to meet the reference point \(\eqref{factor}\).DOUBLEppm0.02000.0350.0
constantcReferenceLueValueUsed to rescale the curve to meet the reference point \(\eqref{factor}\).DOUBLEg/MJ0.010.03.0
constantcSlopeSlope to calculate CO2 amount of given year by linear function in \(\eqref{co2}\).DOUBLEppm/a-1000.01000.03.5
constantcStartValueReference CO2 amount of the StartYear, starting point of the line \(\eqref{co2}\)DOUBLEppm0.02000.0350.0
constantcStartYearReference year, starting point of the line \(\eqref{co2}\)INTa0100001990
constantc_b1Parameter \(b_1\) to dertemine the shape of curve \(\eqref{lue}\)DOUBLE10.01000000.06928.0
constantc_b2Parameter \(b_2\) to determine the shape of curve \(\eqref{lue}\)DOUBLE1-10.010.0-0.0014
outLUELight use efficiency dependend on \(CO_2\) \(\eqref{finallue}\)DOUBLEg/MJ0.020.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

    • Co2InfluenceOnLUE

      public Co2InfluenceOnLUE()
      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:
      • 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:
      • 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:
      • 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:
      • FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)