Class NitrogenDemand

java.lang.Object
net.simplace.sim.model.FWSimComponent
net.simplace.sim.components.models.lintul.NitrogenDemand
All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer

public class NitrogenDemand extends net.simplace.sim.model.FWSimComponent
The SimComponent NitrogenDemand calculates crop specific nitrogen demand as a function of crop development stage

The routines for this SimComponent are taken from Lintul 3 (Shibu et al. 2010). Nitrogen promotes growth and increases biomass production of plants. It is an essential part of all proteins, enzymes and metabolic processes involved in the synthesis and transfer of energy. Nitrogen is a part of chlorophyll which is responsible for photosynthesis. The rate of N uptake of crops is highly variable during crop development and between years and sites.

NitrogenDand calculates the N demands of the different crop organs (NDEML fpr leaves, NDEMS for stems, NDEMR for roots, and NDEMSO for the storage organs), the distribution of the absorbed N to the plant organs and the translocation of nitrogen from leaves, stem and roots to the storage organs.

Estimation of nitrogen demand

Daily nitrogen demand of leaves, stems and roots is calculated based on desirable maximum amount of nitrogen in the respective plant organ at a given day and the amount of nitorgen already present in the respective plant organ. For the nitrogen demand in leaves this is e.g.

\[ \begin{eqnarray} NdemandLeaves = (NMaxConcentrationLeaves \cdot WeightGreenLeaves) - AmountNitrogenLeaves \end{eqnarray} \]

where NdemandLeaves is the amount of N required for maximum growth of leaves (g N m^-2), `NMaxConcentrationLeaves`is the maximum N concentration in leaves at a given development stage (DVS), `WeightGreenLeaves`is the dry matter of leaves at a given day and `AmountNitrogenLeaves`is the actual amount of N in the leaves (g N m-2).

N.B. In Lintul-FAST the Ndemand of the plant organs was divided by the coefficient TimeCoefficientNUptakeMassflow, but this was not the case in Lintul4 and Lintul5

The sum of the NDemand of all organs is the potential amount of nitrogen to be taken up by the roots from the soil in non-legumes. For legumes, the potential N demand i reduced by a user defined percentage called cNAbsorptionReduction.

Distribution and translocation of absorbed N to the plant organs

The nitrogen taken up by the crop from the soil (including the N fixed by legumes) is distributed proportionally among the plant organs according to their share in the total N demand at a given day. After sowing and until a user defined development stage (GrainToCropDevStage), there is an additional user-defined daily nitrogen supply (GrainToCropDailyNitrogen in g N m^-2 d^-1) from the N reserves in the seeds (GrainToCropMaxNitrogen`in g N m^-2). `GrainToCropMaxNitrogen can be calculated by the user by multiplying the seed weight in g per m2 with the N concentration. After flowering, the daily N demand of the storage organs (rateofChangeNitrogenContentsStorageOrgans in g N m-2) is calculated. Beased on the N demand of storage organs the translocateable nitrogen in leaves, stems and roots is transferred proportionally to the storage organs according to their share in the total translocateable N as for example from leaves:

\[ \begin{eqnarray} rateNTranslocatedLeaves = rateofChangeNitrogenContentsStorageOrgans\cdot \frac{ATNLV}{ATN} \end{eqnarray} \]

where rateNTranslocatedLeaves is the translocated N from leaves to storage organs at a given day (g N m^-2 d^-1), ATNLV (in g N m^-2) is the translocateable amount of N in leaves and ATN (in g N m^-2) is the total amount of translocateable N in leaves, stems and roots.

However, the N demand of the storage organs and the resulting N translocation `rateofChangeNitrogenContentsStorageOrgans`is moderated by dividing the translocateable N by a time constant of translocation (TranslocationNTimeCoefficient, set at 10 days as default):

\[ \begin{eqnarray} NSUPSO = \frac{ATN}{TranslocationNTimeCoefficient} \end{eqnarray} \]

where NSUPSO is the maximum amount of translocateable N in g N m^-2 at a given day.

Calculation of nitrogen stress

Nitrogen is calculated based on the relation between the N concentration in photosynthetic active organs (leaves and stems) compared to the optimum N concentration at a given day. Thus, in a first step the optimum N concentration (NOPTMR in g g^-1) is calculated by adding up the optimum amounts of N in leaves and stems and dividing them by the actual dry matter. The optimum amounts of N in plant organs are calculated based on the optimal N concentrations in leaves and stems (NOPTLV and NOPTST) which are a user-defined fraction (NoptimalFraction) of the maximum N concentrations (NMAXLV`and `NMAXST in g g^-1). By default the NoptimalFraction is set to 1.0, so optimal and maximal concentrations are identical.

Then the actual N concentration in stems and leaves is calculated (NFGMR in g g^-1) and reduced by the concentration of residual N in stems and leaves (NRMR in g g^-1) at a given day. The Nitrogen Nutrition Index (NNI) is then calculated according to Shibu et al. (2003) as

\[ \begin{eqnarray} NitrogenNutritionIndex = \frac{NFGMR-NRMRi}{NOPTMR-NRMR} \end{eqnarray} \]

Nitrogen losses

This routine computes the N losses due to the death of leaves, roots and stems. The daily N losses in the three organs (rateNLossLeaves in g N m^-2) are calculated as the residual N concentrations in the three organs (e.g. NonTranslocateableResidualNConcentrationsLeaves in leaves in g g^-1) times their death rates (RateofChangeWeightDeadLeaves for leaves and DRRT for roots in g m^-2 d^-1).

Finally the amount of nitrogen in the three plant organs (e.g. r_rateofChangeNitrogenContentLeaves in g N m-2 d-1) at the end of a given day is updated as follows

\[ \begin{eqnarray} rateofChangeNitrogenContentLeaves = (rateNuptakeLeaves + dailyNitrogenFixed) - rateNTranslocatedLeaves - rateNLossLeaves \end{eqnarray} \]

where rateNuptakeLeaves`and `dailyNitrogenFixed (in g N m^-2 d^-1) are the proportion of fixed and soil derived N which goes to the leaves and rateNTranslocatedLeaves and aux_rateNLossLeaves (in g N m^-2 d^-1) are the daily losses of N from leaves due to translocation to the storage organs or due to leaf death.

References:

Author:
Gunther Krauss, Andreas Enders

Component Variables

Content TypeNameDescriptionData TypeUnitMin ValueMax ValueDefault Value
constantcANLVIInitial amount of N in the leaves at emergenceDOUBLEg/g0.00120.00.0135
constantcANRTIInitial amount of N in the roots emergenceDOUBLEg/g0.00120.00.0016
constantcANSTIInitial amount of N in the stems at emergenceDOUBLEg/g0.00120.00.006
constantcDELTTime step in daysDOUBLEd0.020.01.0
constantcDevelopmentStageNUptakeStopsDevelopment stage (DVS) at which N uptake from the soil stopsDOUBLE10.00120.01.0
constantcFRTTBFractions Table RootDOUBLEARRAY10.020.0-
constantcFractionMaxNConcentrationRootsNConcentrationLeavesCrop-specific factor to derive maximum N concentration in roots from tabulated maximum N concentration in leavesDOUBLE10.00120.00.37
constantcFractionMaxNConcentrationStemNConcentrationLeavesCrop-specific factor to derive maximum N concentration in stem from tabulated maximum N concentration in leavesDOUBLE10.00120.00.5
constantcGrainToCropDailyNitrogenDaily amount of nitrogen that is supplied from the seeds to the rootsDOUBLEg/m2--0.02
constantcGrainToCropDevStageDevStage up to which nitrogen is supplied from seeds to the cropDOUBLE10.02.00.0
constantcGrainToCropMaxNitrogenMaximal amount of nitrogen that is supplied from the seeds to the rootsDOUBLEg/m2--0.4
constantcNAbsorptionReductionReduction of the N absorptionDOUBLEARRAY10.020.0-
constantcNAbsorptionTableFactorAbsorption reduction factor as function of NNI (c.f. NAbsorptionReduction)DOUBLEARRAY1-- 0.0 0.0 0.0
constantcNAbsorptionTableNNINNI for absorption reduction factor (c.f. NAbsorptionReduction)DOUBLEARRAY1-- 0.0 0.2 1.0
constantcNMaxConcentrationLeavesTabulated maximum N concentration in leaves in relation to crop development stage (DVS)DOUBLEARRAYg/g0.020.0-
constantcNMaxConcentrationStorageOrgansCrop specific maximum N concentration in storage organsDOUBLEg/g0.00120.00.02
constantcNMaxTableConcentrationMaximum N concentration in leaves as function of DVS (c.f. NMaxConcentrationLeaves)DOUBLEARRAYg/g-- 0.06 0.05 0.04 0.03 0.014 0.002
constantcNMaxTableDVSDVS for maximum N concentration in leaves (c.f. NMaxConcentrationLeaves)DOUBLEARRAY1-- 0.0 0.4 0.7 1.0 2.0 2.1
constantcNonTranslocateableResidualNConcentrationsLeavesResidual (minimum) nitrogen in the leaves which is not translocatetable to storage organsDOUBLEg/g0.00120.00.004
constantcNonTranslocateableResidualNConcentrationsRootResidual (minimum) nitrogen in the roots which is not translocatetable to storage organsDOUBLEg/g0.00120.00.002
constantcNonTranslocateableResidualNConcentrationsStemResidual (minimum) nitrogen in the stem which is not translocatetable to storage organsDOUBLEg/g0.00120.00.0015
constantcNoptimalFractionFraction of maximum N concentration which is at the lower limit of optimum N concentration (below this N concentration N deficiency will impact RUE, SLA and LAIDOUBLE10.00120.01.0
constantcRootsPartitioningTableDVSDVS for fraction of total dry matter to roots (c.f. FRTTB)DOUBLEARRAY1---
constantcRootsPartitioningTableFractionFraction of total dry matter to roots as function of DVS (c.f. FRTTB)DOUBLEARRAY1---
constantcTimeCoefficientNUptakeMassflowCoefficient to mimic the time delay of N uptake due to massflow and diffusion (added by Asseng et al. 2002??, no longer used in Lintul5)DOUBLEd0.00120.03.0
constantcTranslocationNTimeCoefficientTime delay in translocation of nitrogen to storage organs from all other organsDOUBLEd0.00120.010.0
inputiCROPIdentifies whether croptype is a legume ('legumes') or not ('not specified')CHAR1--
inputiDevStageIndex for development stage of crop (DVS)DOUBLE10.03.00.0
inputiDoHarvestTRUE at harvest dayBOOLEAN1--false
inputiPlantNitrogenUptakeTotal Nitrogen uptake by the cropDOUBLEg/m20.04000.00.0
inputiRateofChangeWeightDeadLeavesChange of weight of the dead leaves at day iDOUBLEg/m20.04000.00.0
inputiTRANRFTranspiration Reduction FactorDOUBLE10.03.00.0
inputiWeightGreenLeavesTotal dry weight of green leaves at day iDOUBLEg/m20.04000.00.0
inputiWeightRootsTotal dry weight of roots at day iDOUBLEg/m20.04000.00.0
inputiWeightStemsTotal dry weight of green stems at day iDOUBLEg/m20.04000.00.0
inputiWeightStorageOrgansTotal dry weight of storage organs at day iDOUBLEg/m20.04000.00.0
inputiWithCropTRUE if crop is presentBOOLEAN1--false
statesAmountNitrogenFixedAmount in N Fixed from the atmosphere (only in case of legumes, refer to iCrop)DOUBLEg/m20.040000.00.0
statesAmountNitrogenLeavesN amount in leavesDOUBLEg/m2-20000.0400000.00.0
statesAmountNitrogenRootsN amount in RootsDOUBLEg/m2-20000.040000.00.0
statesAmountNitrogenStemsN amount in StemsDOUBLEg/m2-20000.040000.00.0
statesAmountNitrogenStorageOrgansN amount in StorageOrgansDOUBLEg/m20.040000.00.0
statesGrainToCropTotalNitrogenAccumulated amount of nitrogen, that is supplied from the seeds to the cropDOUBLEg/m2--0.0
outNitrogenAbsorbedAmount of nitrogen absorbed is the sum of N uptake from the soil (iPlantNitrogenUptake) and N fixed from the atmosphere (in the case of legumes)DOUBLEg/m20.0200000.00.0
outNitrogenDemandTotalTotal daily nitrogen demand of the cropDOUBLEg/m20.0200000.00.0
outNitrogenNutritionIndexNitrogenNutritionIndex (NNI), if NNI is below 1, then RUE, SLA and LAI are reducedDOUBLE10.01.01.0
outNitrogenStressIndexNitrogenStressIndex (inverse of NitrogenNutritionIndex)DOUBLE10.01.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

    • NitrogenDemand

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