Class NFixationRestrictionFactor

java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.sim.components.soil.slim.NFixationRestrictionFactor
All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer

public class NFixationRestrictionFactor extends net.simplace.sim.model.FWSimComponent

Symbiotic N fixation

N fixation is controlled by cNFIXF, the fraction of daily N uptake by fixation. If set to 0 (default), no fixation occurs. If set to 1, then all N demand is fullfilled by N fixation.

The N fixation can be influenced by actual development stage, N and water content by setting the cSymbioticNFixationRestrictionFactor. 0 means no influence of restrictions, 1 means full influence of restrictions.

* \[ r = min(r_{soilN},r_{water},r_{development}) \] \[ ActualSymbioticNFixationRestrictionFactor = r \cdot cSymbioticNFixationRestrictionFactor + (1-cSymbioticNFixationRestrictionFactor) \]

The fixation restriction factor can be used as input to SimComponents like NPKDemand and will be multiplied with the N fixation factor (NFIXF).

Notice that NPKDemandSlimNP and NPKDemandSlimNitrogen have the fixation reduction already implemented.

Author:
Gunther Krauss

Component Variables

Content TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcSoilLayerDepth-DOUBLEARRAYm---
constantcSoilWaterFieldCapacity-DOUBLEARRAYm3/m3---
constantcSoilWaterWiltingPoint-DOUBLEARRAYm3/m3---
constantcSymbioticNFixationRestrictionFactorinfluence of development, soil water and soil N on fixation factor (0=no restriction, 1=full restriction, default .5)DOUBLE10.01.00.5
inputiDVSactual development stage of crop (from 0 to 2)DOUBLE1--0.0
inputiMD95Number of deepest soil layer containing roots (provided by other SimComponents e.g. SlimRoots)INT10100000
inputiSoilAvailNitrateNitrate in mobile+retained water fractions (without fixed nitrate) in layer iDOUBLEARRAYg/m2---
inputiTotalWaterTotal water content in each soil layer (mm)DOUBLEARRAYmm---
outActualSymbioticNFixationRestrictionFactoractual factor to multiply the ratio of crop N uptake by symbiotic fixation, depending possibly on development, soil water and soil N. DOUBLE10.01.01.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
    called from class.forName()
    NFixationRestrictionFactor(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)
     
    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.
    final void
    Set the soil water and nitrogen content for all layers.
    protected void
    Calculates one step (i.e. one day)
    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
  • Constructor Details

    • NFixationRestrictionFactor

      public NFixationRestrictionFactor(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 -
    • NFixationRestrictionFactor

      public NFixationRestrictionFactor()
      called from 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

      public final void init()
      Set the soil water and nitrogen content for all layers.
      Specified by:
      init in class net.simplace.sim.model.FWSimComponent
    • reInitialize

      protected void reInitialize()
    • process

      protected void process()
      Calculates one step (i.e. one day)
      Specified by:
      process in class net.simplace.sim.model.FWSimComponent
    • 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:
      • FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)