Class SlimWater3_hw
- 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected net.simplace.sim.model.FWSimComponentclone(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 voidinit()protected voidprocess()protected voidMethods 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
-
SlimWater3_hw
protected SlimWater3_hw(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-
-
SlimWater3_hw
public SlimWater3_hw()called from class.forName()
-
-
Method Details
-
createVariables
- Specified by:
createVariablesin interfacenet.simplace.sim.util.FWSimFieldContainer- Specified by:
createVariablesin classnet.simplace.sim.model.FWSimComponent- See Also:
-
net.simplace.simulation.model.FWSimComponent#createVariables()
-
init
protected void init()- Specified by:
initin classnet.simplace.sim.model.FWSimComponent- See Also:
-
net.simplace.simulation.model.FWSimComponent#init()
-
reInitialize
protected void reInitialize() -
process
protected void process()- Specified by:
processin 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:
fillTestVariablesin 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:
clonein classnet.simplace.sim.model.FWSimComponent- See Also:
-
net.simplace.simulation.model.FWSimComponent#clone(net.simplace.simulation.util.FWSimVarMap)
-