Class N2OPotentialFromOrganicMatter

java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.sim.components.experimental.n2o.N2OPotentialFromOrganicMatter
All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer

public class N2OPotentialFromOrganicMatter extends net.simplace.sim.model.FWSimComponent
Calculates potential denitrification rate from soil organic carbon content

Calculation

Potential denitrification rate is calculated from interpolation table defined by cDenitrificationTableOrganicCarbon and cDenitrificationTablePotentialRate.

When using the default values , the potential rate increases linearly from 1 mg/(kg d) at 1% organic carbon to 20 mg/(kg d) at 6% organic carbon.

The potential nitrification rate is calculated for each layer up to the cDenitrificationSoilDepth, converted to g / (m^2 d) by multiplying with layer thickness and bulk density of layer and then summed up. The final output is the PotentialDenitrificationRate in g / (m^2 d).

Usage

The output PotentialDenitrificationRate can be linked to the SimCoponents NPKDemandSlimNP or NPKDemandSlimNitrogen parameter cPotentialDenitrificationRate.

Important notice

It's important to have accurate organic carbon values for the layers that are within the denitrification depth. If the initial thickness of layers is considerably bigger than the denitrification depth, then the organic carbon in the denitrification area might be higher than the value in the whole layer, as it might be distributed heterogeneously.

References

Joël Léonard. Nitrification, denitrification and N2O emissions in STICS. 2016. ￿hal-02305546 https://hal.science/hal-02305546/document

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

Component Variables

Content TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcBulkDensityBulk density per layerDOUBLEARRAYg/cm3---
constantcDenitrificationSoilDepthMaximum depth of denitrificationDOUBLEm0.03.00.2
constantcDenitrificationTableOrganicCarbonOrganicCarbon table to determine potential denitrification rateDOUBLEARRAY%-- 1.0 6.0
constantcDenitrificationTablePotentialRatePotential denitrification rates as function of OrganicCarbon [cDenitrificationTableOrganicCarbon]DOUBLEARRAYmg/kg-- 1.0 20.0
constantcOrganicCarbonSoil organic carbon percentage per layerDOUBLEARRAY%---
constantcSoilLayerDepthDepth of lower layer boundary for each layerDOUBLEARRAYm---
outPotentialDenitrificationRateMaximum denitrification rate at 20°CDOUBLEg m-2 day-10.0100.00.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

    Constructors
    Constructor
    Description
    Empty constructor used by class.forName()
  • Method Summary

    Modifier and Type
    Method
    Description
    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

    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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • N2OPotentialFromOrganicMatter

      public N2OPotentialFromOrganicMatter()
      Empty constructor used by class.forName()
  • Method Details

    • createVariables

      public HashMap<String,net.simplace.sim.util.FWSimVariable<?>> createVariables()
      Create the FWSimVariables as interface for this SimComponent
      Specified by:
      createVariables in interface net.simplace.sim.util.FWSimFieldContainer
      Specified by:
      createVariables in class net.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 class net.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 class net.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 class net.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 class net.simplace.sim.model.FWSimComponent
      See Also:
      • net.simplace.simulation.model.FWSimComponent#clone(net.simplace.simulation.util.FWSimVarMap)