Class AMPSomAuxiliary

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

public class AMPSomAuxiliary extends net.simplace.sim.model.FWSimComponent
Auxiliary component that acts as a bridge between AMPSom and other SimComponents like SlimRoots, SlimWater and SoilCN

The component provides to AMPSom

  • root exudates per layer
  • vertical flow of dissolved organic matter (DOM)
  • C and N from litter that enters the dissolved and particle organic matter pools in upper layers

by using

  • daily increment of root biomass from Biomass component (e.g. Lintul5)
  • root weight per layer from a root model (e.g. SlimRoots)
  • water content and percolating water from a soil water model (e.g. SlimWater, Hillflow1D)
  • daily change rates of metabolic an lignocellulotic and cellulotic C and N of the litter from a litter decomposition model (e.g. SoilCN)

Root Exudates

Root exudates are calculated as a fraction of the daily root biomass increment. C and N content of exudates are calculated by ratios provided by the user. The exudates are distributed to the layers proportionally to the root biomass per layer.

\[ ExudatesPerLayer_i = iRWRT \cdot cExudateFraction \cdot \frac{iRootBiomassPerLayer_i}{\sum_{j=n}^{NL} iRootBiomassPerLayer_j}\\ ExudatesCPerLayer_i = \frac{ExudatesPerLayer_i }{cBMCRatio} \\ ExudatesNPerLayer_i = \frac{ExudatesCPerLayer_i}{cCNRatio} \]

C and N from Litter

The inputs from SoilCN are converted from kg/ha to g/m^2 and assigned to the different litter pools

  • CDomRateFromLitter = iSoilCNExtract1 + iSoilCNExtract2
  • NDomRateFromLitter = iSoilCNLmtsu
  • CPomRateFromLitter = iSoilCNCellose1 + iSoilCNCellose2 + iSoilCNLigncellose2 + iSoilCNLigncellose3
  • NPomRateFromLitter = iSoilCNLstsu + Llisu

Vertical movement of dissolved organic matter

There is a simplistic approach to calculate the vertical movement of dissolved organic matter from a layer to the adjacent ones. It considers the concentration in a layer and the water that moves in / out from that layer. Positive water flow values mean that water is flowing from a layer to its lower neighbour. Negative water flow means that water from the lower neighbour is flowing into the layer.

Concentrations per layer are calculated from previous day's water and dissolved organic matter content. Then the concentration is multiplied with the vertical water change rates and the amount is added / subtracted to/from the layer the water flows in / out.

With higher amount of rainfall, there will be more water flowing from one layer to the next one than the capacity of the layer. This may wash out the dissolved C and N completely. However, the user can set the cVerticalFlowFraction to limit the amount of dissolved organic matter that goes from one layer to the next.

Author:
Gunther Krauss

Component Variables

Content TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcBMCRatioRatio of biomass to CDOUBLE1--2.0
constantcCNRatioRatio of C to NDOUBLE1--15.0
constantcExudateFractionFraction of daily root biomass increment that is exudatedDOUBLE1--0.0
constantcVerticalFlowFractionFraction of dissolved organic matters that leaves with percolating waterDOUBLE1--1.0
inputiC12ConcentrationBottomLayerDissolved C12 concentration of bottom layerDOUBLEg/l---
inputiC12DomC12 dissolved organic matter poolDOUBLEARRAYg/m2---
inputiC12DomInflowC12 inflow with precipitationDOUBLEg/(m2 d)---
inputiC14ConcentrationBottomLayerDissolved C14 concentration of bottom layerDOUBLEg/l---
inputiC14DomC14 dissolved organic matter poolDOUBLEARRAYg/m2---
inputiC14DomInflowC14 inflow with precipitationDOUBLEg/(m2 d)---
inputiNConcentrationBottomLayerDissolved organic N concentration of bottom layerDOUBLEg/l---
inputiNDomN dissolved organic matter poolDOUBLEARRAYg/m2---
inputiNDomInflowOrganic N inflow with precipitationDOUBLEg/(m2 d)---
inputiPercolatingWaterPerLayerPercolating water per layerDOUBLEARRAYmm/d---
inputiRWRTDaily increment of root biomassDOUBLEg/(m2 d)---
inputiResidualWaterContentPerLayerResidual water content per layerDOUBLEARRAYmm---
inputiRootBiomassPerLayerRoot biomass per layerDOUBLEARRAYg/m2---
inputiSoilCNCellose1C flow from surface cellulose pool to microbial biomassDOUBLEkg/(ha d)-2000.02000.00.0
inputiSoilCNCellose2C flow from surface cellulose pool to microbial biomassDOUBLEkg/(ha d)-2000.02000.00.0
inputiSoilCNExtract1Flows of carbon from metabolic pools to active poolsDOUBLEkg/(ha d)-2000.02000.00.0
inputiSoilCNExtract2Flows of carbon from metabolic pools to active poolsDOUBLEkg/(ha d)-2000.02000.00.0
inputiSoilCNLigncellose2C flow from surface lignocellulosic pool to microbial biomassDOUBLEkg/(ha d)-2000.02000.00.0
inputiSoilCNLigncellose3C flow from surface lignocellulosic pool to microbial biomassDOUBLEkg/(ha d)-2000.02000.00.0
inputiSoilCNLlisuNet efflux of nitrogen from structural ligno-cellulose (leafDOUBLEkg/(ha d)-20.020.00.0
inputiSoilCNLmtsuNet efflux of nitrogen from metabolic surfaceDOUBLEkg/(ha d)-20.020.00.0
inputiSoilCNLstsuNet efflux of nitrogen from structural cellulose (leaf and faecesDOUBLEkg/(ha d)--0.0
inputiTotalWaterContentPerLayerTotal water content per layerDOUBLEARRAYmm---
outC12DomFlowPerLayerVertical movement of dissolved C12DOUBLEARRAYg/(m2 d)---
outC14DomFlowPerLayerVertical movement of dissolved C14DOUBLEARRAYg/(m2 d)---
outCDomRateFromLitterC from litter that enters DOM pools in upper layersDOUBLEg/(m2 d)--0.0
outCPomRateFromLitterC from litter that enters POM pools in upper layersDOUBLEg/(m2 d)--0.0
outExudatesCPerLayerroot exudate C per layerDOUBLEARRAYg/(m2 d)---
outExudatesNPerLayerroot exudate N per layerDOUBLEARRAYg/(m2 d)---
outExudatesPerLayerroot exudate biomass per layerDOUBLEARRAYg/(m2 d)---
outNDomFlowPerLayerVertical movement of dissolved organic NDOUBLEARRAYg/(m2 d)---
outNDomRateFromLitterN from litter that enters DOM pools in upper layersDOUBLEg/(m2 d)--0.0
outNPomRateFromLitterN from litter that enters POM pools in upper layersDOUBLEg/(m2 d)--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
    Modifier and Type
    Field
    Description
    protected final double
     

    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()
    AMPSomAuxiliary(String aName, HashMap<String,net.simplace.sim.util.FWSimVariable<?>> aFieldMap, HashMap<String,String> aInputMap, org.jdom2.Element aSimComponentElement, net.simplace.sim.util.FWSimVarMap aVarMap, int aOrderNumber)
     
  • Method Summary

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

    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
  • Field Details

  • Constructor Details

    • AMPSomAuxiliary

      public AMPSomAuxiliary(String aName, HashMap<String,net.simplace.sim.util.FWSimVariable<?>> aFieldMap, HashMap<String,String> aInputMap, org.jdom2.Element aSimComponentElement, net.simplace.sim.util.FWSimVarMap aVarMap, int aOrderNumber)
      Parameters:
      aName -
      aFieldMap -
      aInputMap -
      aSimComponentElement -
      aVarMap -
      aOrderNumber -
    • AMPSomAuxiliary

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

    • createVariables

      public HashMap<String,net.simplace.sim.util.FWSimVariable<?>> createVariables()
      Specified by:
      createVariables in interface net.simplace.sim.util.FWSimFieldContainer
      Specified by:
      createVariables in class net.simplace.sim.model.FWSimComponent
      See Also:
      • FWSimComponent.createVariables()
    • init

      protected void init()
      Specified by:
      init in class net.simplace.sim.model.FWSimComponent
      See Also:
      • FWSimComponent.init()
    • process

      protected void process()
      Specified by:
      process in class net.simplace.sim.model.FWSimComponent
      See Also:
      • 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)
      creates a clone from this SimComponent for use in other threads
      Specified by:
      clone in class net.simplace.sim.model.FWSimComponent
      See Also:
      • FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)