Class SimpleAutomaticIrrigation
- All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer
This SimComponent requires input about daily available mobile water (WM) and retained water (WR) in each soil layer with the relevant soil depth from other SimComponents like SlimWater or ImprovedSoilWater. The depth of the soil moisture control section for triggering irrigation time and volume is defined by the variable cIrrigationTriggerDepth.
In a first step, the sum of available mobile soil water (iWM) and retained water (iWR) within the soil moisture control section is calculated (CumulativeAvailableWater) and compared to the difference between cSoilWaterFieldCapacity and cSoilWaterWiltingPoint for layers above cIrrigationTriggerDepth (cumulativeWRH).
If the ratio between CumulativeAvailableWater and cumulativeWRH is lower than cIrrigationTriggerFactor, then irrigation is triggered. The irrigation volume applied AppliedIrrigationDepth is calculated as the difference between available water capacity and actual available water over the whole soil depth. The calculated AppliedIrrigationDepth is added to the incoming iRAIN and the sum is output as RainAndIrrigation.
Thus, after each irrigation event the soil profile should be at field capacity if no run-off occurs. The module also determines whether surface run-off should be calculated (CalculateRunoff) if iRAIN exceeds cMaxRainWithoutRunoff (amount of rain below which no surface run-off can occur).
- Author:
- gk
Component Variables
Content Type | Name | Description | Data Type | Unit | Min Value | Max Value | Default Value |
---|---|---|---|---|---|---|---|
constant | cIrrigationTriggerDepth | depth to sum plant available water to, to determine if irrigation is required | DOUBLE | m | - | - | 0.0 |
constant | cIrrigationTriggerFactor | fraction of total plant available water in a given depth of soil below which irrigation is applied | DOUBLE | 1 | - | - | 0.0 |
constant | cMaxRainWithoutRunoff | maximum precipitation at which no runoff is calculated | DOUBLE | mm/d | - | - | 0.0 |
constant | cSoilLayerDepth | depth of soil layers | DOUBLEARRAY | m | - | - | - |
constant | cSoilWaterFieldCapacity | field capacity per layer | DOUBLEARRAY | m3/m3 | - | - | - |
constant | cSoilWaterWiltingPoint | wilting point per layer | DOUBLEARRAY | m3/m3 | - | - | - |
constant | cUseLegacyCalculationOfMaxWR | If true, then the maximum of WR will be the difference of field capacity and wilting point. If false, then it's the difference of field capacity and half wilting point. | BOOLEAN | - | - | true | |
input | iRAIN | precipitation | DOUBLE | mm/d | - | - | 0.0 |
input | iWM | mobile water per layer | DOUBLEARRAY | mm | - | - | - |
input | iWR | retained water per layer | DOUBLEARRAY | mm | - | - | - |
out | AppliedIrrDepth | daily applied depth of irrigation | DOUBLE | mm/d | - | - | 0.0 |
out | CalculateRunoff | - | BOOLEAN | - | - | true | |
out | CumulativeAppliedIrrDepth | cumulative applied depth of irrigation | DOUBLE | mm | - | - | 0.0 |
out | RainAndIrrigation | precipitation + irrigation | DOUBLE | mm/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 inherited from class net.simplace.sim.model.FWSimComponent
iFieldMap, iFrequence, iInputMap, iJexlRule, iMasterComponentGroup, iName, iOrderNumber, isComponentGroup, iSimComponentElement, iSimModel, iVarMap
-
Constructor Summary
ConstructorDescriptionEmpty constructor used by class.forName()SimpleAutomaticIrrigation
(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) creates a clone from this SimComponent for use in other threadsfillTestVariables
(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()
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
-
SimpleAutomaticIrrigation
public SimpleAutomaticIrrigation(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
-
-
SimpleAutomaticIrrigation
public SimpleAutomaticIrrigation()Empty constructor used by 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:
-
FWSimComponent.createVariables()
-
init
protected void init()- Specified by:
init
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.init()
-
process
protected void process()- Specified by:
process
in classnet.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 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) creates a clone from this SimComponent for use in other threads- Specified by:
clone
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
FWSimComponent.clone(net.simplace.sim.util.FWSimVarMap)
-