Class SlimWater3Modified
- All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer
SlimWater
and ImprovedSoilWater
as a SimComponent for transient simulations of the
soil water balance of a multiple layer soil profile.
For further details refer to the documentation of SlimWater.java
The changes made in ImprovedSoilWater are exclusively related to the crop available water in the soil and the
water uptake process by the crop.
1. Crop available water
Whereas in SlimWater the proportion of extractable retained soil water (SAWR) is estimated as a quarter of the retained soil water
ImprovedSoilWater estimates the proportion of the extractable soil water as a function of the development stage of the crop (DVS),
a depletion factor (NominalDepletionEarly and NominaldepletionLate) and the crop water demand (EVAPO). The procedure distinguishes between
a sensitive crop development stage (WaterSensitiveDVS), where the nominal depletion factor is high and a less sensitive development stage
where the nominal depletion factor is lower. The final soil water depletion factor is then calculated as
If DVS < StartWaterSensitiveDVS or DVS >= EndWaterSensitiveDVS, then according to Allen et al. 1996 (page 163, Footnote 2)
(However, in Allen et al. 1996 ETc is used and not ET0!!!)
WIKI_END
\[
\begin{eqnarray}
Depletion = NominalDepletionEarly + 0.04*(5.00 - EVAPO)
\end{eqnarray}
\]
If DVS is >= StartWaterSensitiveDVS and < EndWaterSensitiveDVS, then
\[ \begin{eqnarray} Depletion = NominalDepletionLate + 0.04*(5.00 - EVAPO) \end{eqnarray} \]Based on the depletion factor (Depletion) the proportion of the extractable water (EXT) in the retained soil water (WR in mm) in each soil layer is calculated as
\[ \begin{eqnarray} EXT[i] &=& \frac {EVAPO}{(1-Depletion) \cdot TWRH} \end{eqnarray} \]where TWRH is the total amount of retainable water stored in the entire soil profile at field capacity (usually called "Available Water Capacity") and EVAPO is the reference evpotranspiration (both in mm).
N.B.: The calculation of the extraction factor for each layer is related to the total retainable water in the entire profile depth. As the profile depth is variable there could be a serious underestimation of EXT when increasing soil profile depth at early DVS when roots are still small. Therefore, the calculation of EXT at early DVS should not depend on TWRH
The amount of soil available water SAWR in the retained water fraction of each layer is then
\[ \begin{eqnarray} SAWR[i] &=& WR[i] \cdot EXT[i] \end{eqnarray} \]-
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
ModifierConstructorDescriptioncalled from class.forName()protected
SlimWater3Modified
(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 TypeMethodDescriptionprotected net.simplace.sim.model.FWSimComponent
clone
(net.simplace.sim.util.FWSimVarMap aVarMap) fillTestVariables
(int aParamIndex, net.simplace.sim.model.FWSimComponent.TEST_STATE aDefineOrCheck) called for single component test to check the components algorithm.protected void
init()
protected void
process()
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
-
Constructor Details
-
SlimWater3Modified
protected SlimWater3Modified(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
-
-
SlimWater3Modified
public SlimWater3Modified()called from class.forName()
-
-
Method Details
-
createVariables
- Specified by:
createVariables
in interfacenet.simplace.sim.util.FWSimFieldContainer
- Specified by:
createVariables
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
net.simplace.simulation.model.FWSimComponent#createVariables()
-
init
protected void init()- Specified by:
init
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
net.simplace.simulation.model.FWSimComponent#init()
-
reInitialize
protected void reInitialize() -
process
protected void process()- Specified by:
process
in classnet.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 classnet.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 classnet.simplace.sim.model.FWSimComponent
- See Also:
-
net.simplace.simulation.model.FWSimComponent#clone(net.simplace.simulation.util.FWSimVarMap)
-