Class RunoffCurveNumber_SW
- All Implemented Interfaces:
net.simplace.sim.util.FWSimFieldContainer
Calculates runoff according to the SCS Runoff Curve Number method,
- with optional slope correction to the SWAT2009 model,
- with the retention parameter varying
- either with soil profile water content according to the SWAT2009 model,
- or with depth-weighted soil profile water content according to the EPIC model,
- and with optional retention parameter adjustment in case of frozen soil.
Note: this component can deal with variable layer thicknesses.
Note 2: The frozen soil correction starts if the 2nd soil layer is below 0°C. If layers are thick this may be too deep. This might need further development: take layer 1, or the average of the first 2 layers etc.
References: Cronshey, R., 1986. Urban hydrology for small watersheds (No. TR-55). US Dept. of Agriculture, Soil Conservation Service, Engineering Division. Neitsch, S.L., Arnold, J.G., Kiniry, J.R., Williams, J.R., 2011. Soil & Water Assessment Tool, Theoretical Documentation, Version 2009 (No. TR-406). Sharpley, A.N., Williams, J.R., 1990. EPIC - Erosion/Productivity Impact Calculator (U.S. Department of Agriculture Technical Bulletin No. 1768).
- Author:
- Roelof Oomen
Component Variables
Content Type | Name | Description | Data Type | Unit | Min Value | Max Value | Default Value |
---|---|---|---|---|---|---|---|
constant | cSlope | Slope (leave out to disable slope correction) | DOUBLE | % | 0.0 | 100.0 | - |
constant | cSoilLayerDepth | Depth of the bottom of each soil layer after soil layer transformation | DOUBLEARRAY | m | - | - | - |
constant | cSoilWaterFieldCapacity | Volumetric soil water content of each layer at field capacity | DOUBLEARRAY | m3/m3 | - | - | - |
constant | cSoilWaterSaturation | Volumetric soil water content of each layer at saturation (pF0 or 0.0 KPa) | DOUBLEARRAY | m3/m3 | - | - | - |
constant | cSoilWaterWiltingPoint | Volumetric soil water content of each layer at permanent wilting point | DOUBLEARRAY | m3/m3 | - | - | - |
constant | cWeighted | Use depth weighted soil soil water. | BOOLEAN | 1 | - | - | false |
input | iCN2 | Curve Number for average moisture | DOUBLE | 1 | 30.0 | 100.0 | - |
input | iRain | Rainfall | DOUBLE | mm | 0.0 | 1000.0 | - |
input | iSoilTemperature | Soil temperature per layer for adjusting runoff for frozen ground. Can be left blank. | DOUBLEARRAY | °C | -40.0 | 80.0 | - |
input | iTotalWaterContentPerLayer | Total water content in each soil layer (mm) | DOUBLEARRAY | mm | 0.0 | - | - |
out | CN | Curve number after slope, soil moisture, and frozen soil adjustment | DOUBLE | 1 | 0.0 | 100.0 | - |
out | RainAdj | Adjusted rain (i.e. minus runoff) | DOUBLE | mm | 0.0 | 1000.0 | - |
out | Runoff | Runoff | DOUBLE | mm | 0.0 | 10000.0 | - |
out | S | Retention parameter | DOUBLE | 1 | 0.0 | 1000.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
-
Method Summary
Modifier and TypeMethodDescriptionprotected net.simplace.sim.model.FWSimComponent
clone
(net.simplace.sim.util.FWSimVarMap aVarMap) Create the FWSimVariables as interface for this SimComponentfillTestVariables
(int aParamIndex, net.simplace.sim.model.FWSimComponent.TEST_STATE aDefineOrCheck) called for single component test to check the components algorithm.protected void
init()
Initialises the fields by getting input and output FWSimVariables from VarMapprotected void
process()
Process the algorithm and write the results back to VarMapMethods 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
-
RunoffCurveNumber_SW
public RunoffCurveNumber_SW()Empty constructor used by class.forName()
-
-
Method Details
-
createVariables
Create the FWSimVariables as interface for this SimComponent- 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()Initialises the fields by getting input and output FWSimVariables from VarMap- Specified by:
init
in classnet.simplace.sim.model.FWSimComponent
- See Also:
-
net.simplace.simulation.model.FWSimComponent#init()
-
process
protected void process()Process the algorithm and write the results back to VarMap- 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)
-