Package hec.rss.model
Class DiversionRule
java.lang.Object
java.util.Observable
hec.lang.NamedType
hec.rss.model.RssTSLocationObject
hec.rss.model.Rule
hec.rss.model.DiversionRule
- All Implemented Interfaces:
AsciiSerializable,FieldAccessor,TSLocation,RssModelVariableConstants,RssReturnStatusConstants,RssTSLocation,Serializable,Cloneable,Comparable,Observer,rma.lang.Modifiable
Provides a more flexible diversion flow rule, similar the the ReleaseFunctionOpRule
for reservoir releases. Uses the IndependentVariable. The DiversionRule
is edited in the DiversionRulePanel.
- See Also:
-
Field Summary
FieldsFields inherited from class hec.rss.model.Rule
_multiplier, _opController, _ruleType, _timeOfDayMultiplier, _useDayOfWeekMultiplier, _usePeriodAverageLimit, _useTimeOfDayMultiplierFields inherited from class hec.lang.NamedType
_description, _ignoreModifiedEvents, _index, _isValid, _modified, _name, defaultDescription, defaultName, DESCRIPTION_CHANGED, NAME_CHANGED, RENAME_EVENTFields inherited from interface hec.rss.model.RssModelVariableConstants
CUMLOC_OUTPUT_DATA, GRPID_DIVERSION, GRPID_JUNCTION, GRPID_REACH, GRPID_RESERVOIR, HINDCAST_IDS, HOLDOUT_OUTPUT_DATA, INPUT_DATA, OUTPUT_DATA, PULSE_OUTPUT_DATA, UNREG_OUTPUT_DATA, VID_ADJPARAM_FLOW, VID_CAPACITY_FACTOR, VID_CTRLOUT_HINDFLW, VID_CTRLOUT_RELEASE, VID_DAM_LEAK, VID_DAM_RELEASE, VID_DIV_FLOW, VID_DIV_FLOW_ROUTED, VID_DIV_HINDFLW, VID_DIV_RELEASE, VID_DIVOUT_FLOW, VID_DIVOUT_FLOW_ROUTED, VID_ENERGYREQUIRED_TSINPUT, VID_FIRST, VID_FOREBAY_ELEV, VID_FOREBAY_HEADLOSS, VID_GATE_OPENING, VID_GATE_PERCENTOPEN, VID_JUNC_ELEV, VID_JUNC_FLOW_CUMLOC, VID_JUNC_FLOW_DIV, VID_JUNC_FLOW_HOLD, VID_JUNC_FLOW_IN, VID_JUNC_FLOW_LIMIT, VID_JUNC_FLOW_LOCAL, VID_JUNC_FLOW_PULSE, VID_JUNC_FLOW_REG, VID_JUNC_FLOW_UNREG, VID_JUNC_FLOW_VIOL, VID_JUNC_HINDFLOW, VID_JUNC_INFLOW, VID_JUNC_INFLOW_LOCAL_TOTAL, VID_JUNC_STAGE, VID_JUNC_STAGE_LIMIT, VID_JUNC_STAGE_REG, VID_JUNC_STAGE_UNREG, VID_JUNC_STAGE_VIOL, VID_LAST, VID_NODE_FLOW, VID_NODE_HINDFLW, VID_NODE_HINDSTG, VID_NODE_KNOWNFLOW, VID_NODE_STAGE, VID_OPCTRL_CONSTRAINTID, VID_OPCTRL_DECISION, VID_OPCTRL_MAXLIMIT, VID_OPCTRL_MINLIMIT, VID_OPCTRL_RULEID, VID_OPCTRL_ZONEID, VID_OPRULE_FLOW_SPACE, VID_OPRULE_MAX, VID_OPRULE_MAX_STAGE, VID_OPRULE_MIN, VID_OPRULE_MIN_STAGE, VID_OPRULE_PRIORITY, VID_OPRULE_ROUTE_LAG, VID_OPRULE_ROUTE_MAXOFFSET, VID_OPRULE_ROUTE_MINOFFSET, VID_OPRULE_SPEC, VID_OPRULE_STOR_BAL, VID_OPRULE_STOR_BAL_INDEX, VID_OPRULE_VIOL_ELEV, VID_OPRULE_VIOL_FLOW, VID_OPRULE_VIOL_STAGE, VID_OPRULE_VIOL_STOR, VID_OPRULE_WQCD_ELEV, VID_OPRULEFL_CUMLOC, VID_OPRULETS_TSINPUT, VID_OPSET_ACTIVEZONE, VID_OPSET_GC_ELEV, VID_OPSET_GC_STOR, VID_OPSET_KNOWNZONEELEV, VID_OPSET_PROJECTEDELEV, VID_OPSET_ZONEELEV, VID_OPSET_ZONESTOR, VID_OUTGRP_RELEASE, VID_POOL_AREA, VID_POOL_ELEV, VID_POOL_ELEV_EST, VID_POOL_ELEVROC, VID_POOL_EVAP, VID_POOL_FLOWINTOSTOR, VID_POOL_HINDELEV, VID_POOL_HINDSTOR, VID_POOL_HOLDOUT, VID_POOL_INFLOW, VID_POOL_INPUTEVAP, VID_POOL_NETINFLOW, VID_POOL_OUTFLOW, VID_POOL_OUTFLOW_EST, VID_POOL_SEEP, VID_POOL_STOR, VID_PULSE_BACKQ, VID_PULSE_PULSEQ, VID_PUMP_FLOWAVG, VID_PUMP_VOL, VID_PUMPRULE_FLOWAVG, VID_PUMPRULE_FLOWAVG_CAP, VID_PUMPRULE_FLOWINST, VID_PUMPRULE_FLOWINST_CAP, VID_PUMPRULE_HOURS, VID_PUMPRULE_HOURS_CAP, VID_PUMPRULE_NUMPUMP, VID_PUMPRULE_NUMPUMP_CAP, VID_PUMPRULE_UNITHOURS, VID_PUMPRULE_UNITHOURS_CAP, VID_PUMPRULE_VOL, VID_PUMPRULE_VOL_CAP, VID_PWR_CAPABILITY, VID_PWR_EFF, VID_PWR_ENGYGEN, VID_PWR_ENGYPATTERN, VID_PWR_ENGYPERGEN, VID_PWR_ENGYPERREQD, VID_PWR_ENGYREQD, VID_PWR_ENGYVIOL, VID_PWR_FLWPWR, VID_PWR_HDPWR, VID_PWR_HYDLSS, VID_PWR_MAXCAPACITY, VID_PWR_PER_BALGEN, VID_PWR_PER_GCGEN, VID_PWR_PER_MINPUMPGEN, VID_PWR_PER_MINRELGEN, VID_PWR_PER_POWGEN, VID_PWR_PER_PUMPGEN, VID_PWR_PLNTFAC, VID_PWR_PWRCAP, VID_PWR_REQUIRED, VID_PWR_SPILL, VID_PWR_VIOL, VID_RCH_SEEP, VID_REACH_FLOW_CUMLOC, VID_REACH_FLOW_IN, VID_REACH_FLOW_REG, VID_REACH_FLOW_UNREG, VID_RES_GCRELEASE, VID_RES_HOLDOUT, VID_RES_RELEASE, VID_SPILL_FLOW, VID_SPILL_HINDFLOW, VID_STATE_VAR, VID_STATE_VAR_HIND, VID_TAIL_ELEV, VID_UNCTOUT_FLOW, VID_UNCTOUT_HINDFLW, VID_WA_ACCOUNT_DEMAND, VID_WA_ACCOUNT_INFLOW, VID_WA_CHARGES, VID_WA_CREDIT, VID_WA_CURRENT_MAX_VOLUME, VID_WA_CURRENT_VOLUME, VID_WA_HINDSTOR, VID_WA_LOSSES, VID_WA_PUMPBACK, VID_WA_RULE_DEMAND, VID_WA_SURPLUS, VID_WA_TRANSFERS, WQID_OFFSETFields inherited from interface hec.rss.model.RssReturnStatusConstants
RTN_CANCELED, RTN_NOPROBLEM, RTN_OPCHANGE, RTN_PROBLEM -
Constructor Summary
ConstructorsConstructorDescriptionDiversionRule(Controller control) Deprecated.DiversionRule(OpController control) DiversionRule(String name) -
Method Summary
Modifier and TypeMethodDescriptionclone()clone methodgetActiveTSRecordProxies(Vector vec, int iotype) add the time series record proxies associated current computevoidgetElementDependencies(List elemList) adds elements upon which the current rule depends to the given list.getFieldObject(Field fld) This method allows access to java.lang.reflect.Field objects within the implementing class.intdoublegetLimitValue(RunTimeStep rts) voidgetReferencedStateVariables(List svlist) adds StateVariables refereced by this rule to the given listReturn flow values with seasonal variationrule is a function of date or date/timedoublegetValue(AdjustableParameter adjparam, RunTimeStep runtime, double val) This method should be overridenbooleanbooleanbooleanprep for computebooleansetFieldObject(Field fld, Object fobj) This allows access to fields withing the implementing object to set there data.voidsetFlowLocation(String flowName) voidsetFlowLocationIndex(int id) voidDiversion flow a function of some parameter value.voidDiversion flow a function of some parameter value.voidsetHasSeasonalVariation(boolean tf) Set flag for seasonal variation in flow functionvoidsetIndependentVariable(IndependentVariable independentVariable) voidSet flow function values having seasonal variationvoidvoidRegenerates the list of all TSProxies required for this location.Methods inherited from class hec.rss.model.Rule
getController, getDayOfWeekFactor, getDemandScale, getGmtOffset, getMultiplier, getRuleType, getSystem, getTimeOfDayFactor, getTimeOfDayMultiplier, getTSRecordProxies, getUnitSystem, readData, setController, setDemandScale, setMultiplier, setOpController, setPeriodAverageLimit, setRuleType, setTimeOfDayMultiplier, setTSLocationData, setUseDayOfWeekMultiplier, setUseDemandScale, setUsePeriodAverageLimit, setUseTimeOfDayMultiplier, toString, updateByDemandScale, useDayOfWeekMultiplier, useDemandScale, usePeriodAverageLimit, useTimeOfDayMultiplier, writeDataMethods inherited from class hec.rss.model.RssTSLocationObject
addTSRecord, addTSRecordProxy, addTSRecordProxy, addTSRecordProxy, clearTSProxyList, copyInto, getComputedTSRecordProxies, getTSArray, getTSArray, getTSArray, getTSArray, getTSContainer, getTSContainer, getTSDataSet, getTSRecordProxy, getTSRecordProxy, getTSRecordProxy, getTSRecordProxy, getTSRecordProxy, getTSRecordProxyVec, removeTSRecord, removeTSRecordProxy, removeTSRecordProxyMethods inherited from class hec.lang.NamedType
addModifiableListener, compareTo, fireModifiedStateChanged, getDescription, getDisplayName, getIgnoreModifiedEvents, getIndex, getName, isModified, isValid, readResolve, removeModifiableListener, rename, set, setDescription, setIgnoreModifiedEvents, setIndex, setModified, setName, setValid, update, useRecursiveModifiedTestMethods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
-
Field Details
-
FLOW
- See Also:
-
NONE
public static final int NONE- See Also:
-
-
Constructor Details
-
DiversionRule
public DiversionRule() -
DiversionRule
-
DiversionRule
Deprecated. -
DiversionRule
-
-
Method Details
-
getElementDependencies
adds elements upon which the current rule depends to the given list. Does not add the element that owns this rule. -
getSeasonalFlowValues
Return flow values with seasonal variation- Returns:
-
setSeasonalFlowValues
Set flow function values having seasonal variation- Parameters:
spv-
-
hasSeasonalVariation
public boolean hasSeasonalVariation()- Returns:
- true if FlowFunction has seasonal variation
-
setHasSeasonalVariation
public void setHasSeasonalVariation(boolean tf) Set flag for seasonal variation in flow function -
setFunctionRelease
Diversion flow a function of some parameter value. Can have seasonal variation- Parameters:
spv-
-
getFunctionRelease
-
setFunctionRelease
Diversion flow a function of some parameter value. No seasonal variation, using PairedValues but store data in a SeasonalPairedValues- Parameters:
pv-
-
getSeasonalRecord
rule is a function of date or date/time -
setSeasonalRecord
-
setIndependentVariable
-
getIndependentVariable
-
getReferencedStateVariables
adds StateVariables refereced by this rule to the given list- Overrides:
getReferencedStateVariablesin classRule- Parameters:
svlist- unique list of state variables
-
setFlowLocation
-
getFlowLocation
-
setFlowLocationIndex
public void setFlowLocationIndex(int id) -
getFlowLocationIndex
public int getFlowLocationIndex() -
initialize
public boolean initialize()- Overrides:
initializein classRule
-
initializeCompute
public boolean initializeCompute()prep for compute- Overrides:
initializeComputein classRule
-
getValue
Description copied from class:RuleThis method should be overriden -
getLimitValue
-
updateTSProxyList
public void updateTSProxyList()Regenerates the list of all TSProxies required for this location. This list includes all records that are generated by this function even if the records are held in another objects (e.g. RssNode) proxy list- Overrides:
updateTSProxyListin classRule
-
getActiveTSRecordProxies
add the time series record proxies associated current compute- Overrides:
getActiveTSRecordProxiesin classRule
-
getFieldObject
Description copied from interface:FieldAccessorThis method allows access to java.lang.reflect.Field objects within the implementing class.- Specified by:
getFieldObjectin interfaceFieldAccessor- Overrides:
getFieldObjectin classRule- Parameters:
fld- The field to get.- Returns:
- The data object that is stored in the given field
-
setFieldObject
Description copied from interface:FieldAccessorThis allows access to fields withing the implementing object to set there data.- Specified by:
setFieldObjectin interfaceFieldAccessor- Overrides:
setFieldObjectin classRule- Parameters:
fld- The java field object representing the member field to be setfobj- The data to set in that field- Returns:
- returns true if successful
-
clone
Description copied from class:RssTSLocationObjectclone method- Overrides:
clonein classRssTSLocationObject
-