Package hec.rss.model
Class FirmYieldRuleRef
java.lang.Object
hec.rss.model.FirmYieldRuleRef
- All Implemented Interfaces:
RssModelVariableConstants,RssReturnStatusConstants,Cloneable
public class FirmYieldRuleRef
extends Object
implements RssReturnStatusConstants, RssModelVariableConstants, Cloneable
Simple container class to manage a reference to one operating rule that can
be used as the basis of a Firm Yield analysis.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe Constant FYTEST_CONVERGE.static final intThe Constant FYTEST_DECR_DEMAND.static final intstatic final intThe Constant FYTEST_INCR_DEMAND.static final intThe Constant FYTEST_RULEFAIL.static final intstatic final intstatic final intstatic final StringThe Constant RULETYPE_DIVERSION.static final StringThe Constant RULETYPE_DNSTRMMIN.static final StringThe Constant RULETYPE_HYDROPOWER.static final StringThe Constant RULETYPE_RESMIN.static final StringThe Constant RULETYPE_SYSHYDROPOWER.Fields 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
ConstructorsConstructorDescriptionDefault Constructor.FirmYieldRuleRef(RssTSLocationObject rule, Object owner) Constructor used by RssAlt. -
Method Summary
Modifier and TypeMethodDescriptionintcheckSpecRelFirmYield(RssRun run, RunTimeWindow rtw, double ruletol) clone()static List<FirmYieldRuleRef> getFirmYieldRules(RssAlt alt, RssSystem system) Get the list of all rules that can be used as a basis for Firm Yield Analysis.Gets the Rule Location Name to be displayed in the tables of rules.getReservoirList(RssAlt alt) Gets the list of reservoirs that may operate for this rule.static List<ReservoirElement> getReservoirsForDnstrmRule(RssAlt alt, RssSystem system, DownstreamOpRule dor, List<ReservoirElement> resList) Gets the reservoirs for dnstrm rule.getRule()Get the demand rule for the firm yield analysis.Gets the Rule Name to be displayed in the tables of rules.Gets the rule owner.Gets the Rule Type String to be displayed in the tables of rules.Gets the zone for reservoir.getZones()Gets the zones.voidinitCompute(RssAlt rssAlt) Inits the compute.voidinitializeData(RssSystem sys) Initialize data.booleanChecks if is initialized.voidreadDataFromFile(RssAlt alt, BufferedReader reader) reads the persistent data for this object from an ASCII file and saves it to a string until the rule is needed.voidsetZones(List<StorageZoneRef> zones) Sets the zones.double[]testFirmYield2(RssRun run, RunTimeWindow rtw, double stortol, double ruletol) Tests the result of the ResSim compute to see if the firm yield criteria are met.toString()voidwriteDataToFile(BufferedWriter writer) writes the persistent data for this object to an ASCII file.
-
Field Details
-
RULETYPE_DIVERSION
The Constant RULETYPE_DIVERSION.- See Also:
-
RULETYPE_HYDROPOWER
The Constant RULETYPE_HYDROPOWER.- See Also:
-
RULETYPE_SYSHYDROPOWER
The Constant RULETYPE_SYSHYDROPOWER.- See Also:
-
RULETYPE_RESMIN
The Constant RULETYPE_RESMIN.- See Also:
-
RULETYPE_DNSTRMMIN
The Constant RULETYPE_DNSTRMMIN.- See Also:
-
FYTEST_CONVERGE
public static final int FYTEST_CONVERGEThe Constant FYTEST_CONVERGE.- See Also:
-
FYTEST_INCR_DEMAND
public static final int FYTEST_INCR_DEMANDThe Constant FYTEST_INCR_DEMAND.- See Also:
-
FYTEST_DECR_DEMAND
public static final int FYTEST_DECR_DEMANDThe Constant FYTEST_DECR_DEMAND.- See Also:
-
FYTEST_RULEFAIL
public static final int FYTEST_RULEFAILThe Constant FYTEST_RULEFAIL.- See Also:
-
FYTEST_STOPSCRIPT
public static final int FYTEST_STOPSCRIPT- See Also:
-
FYTEST_DSSREAD_ERROR
public static final int FYTEST_DSSREAD_ERROR- See Also:
-
FYTEST_RULENOTFOUND_ERROR
public static final int FYTEST_RULENOTFOUND_ERROR- See Also:
-
FYTEST_RULEINZONE_ERROR
public static final int FYTEST_RULEINZONE_ERROR- See Also:
-
-
Constructor Details
-
FirmYieldRuleRef
public FirmYieldRuleRef()Default Constructor. -
FirmYieldRuleRef
Constructor used by RssAlt.- Parameters:
rule- the ruleowner- the owner
-
-
Method Details
-
getRule
Get the demand rule for the firm yield analysis.- Returns:
- either a Rule object (Diversion) or OpRule (all other demands), may return null
-
getRuleOwner
Gets the rule owner.- Returns:
- the rule owner
-
getLocationName
Gets the Rule Location Name to be displayed in the tables of rules.- Returns:
- String name or null
-
getRuleName
Gets the Rule Name to be displayed in the tables of rules.- Returns:
- String name or null
-
getRuleTypeString
Gets the Rule Type String to be displayed in the tables of rules.- Returns:
- String name or null
-
getReservoirList
Gets the list of reservoirs that may operate for this rule.- Parameters:
alt- the alt- Returns:
- List of ReservoirElement Objects
-
getReservoirsForDnstrmRule
public static List<ReservoirElement> getReservoirsForDnstrmRule(RssAlt alt, RssSystem system, DownstreamOpRule dor, List<ReservoirElement> resList) Gets the reservoirs for dnstrm rule.- Parameters:
alt- the altsystem- the systemdor- the dorresList- the res list- Returns:
- the reservoirs for dnstrm rule
-
writeDataToFile
writes the persistent data for this object to an ASCII file.- Parameters:
writer- the writer
-
readDataFromFile
reads the persistent data for this object from an ASCII file and saves it to a string until the rule is needed.- Parameters:
alt- the altreader- the reader
-
isInitialized
public boolean isInitialized()Checks if is initialized.- Returns:
- true, if is initialized
-
initializeData
Initialize data.- Parameters:
alt- the alt
-
getFirmYieldRules
Get the list of all rules that can be used as a basis for Firm Yield Analysis. These include Downstream minimum flow rules, at site minimum flow rules, at site hydropower, system hydropower, and diversion rules. For first implementation, only Downstream minimum flow rules and at site minimum flow rules are considered!- Parameters:
alt- the altsystem- the system- Returns:
- ArrayList of rules that can be used as a basis for firm yield analysis
-
getZoneForReservoir
Gets the zone for reservoir.- Parameters:
res- the res- Returns:
- the zone for reservoir
-
testFirmYield2
Tests the result of the ResSim compute to see if the firm yield criteria are met.- Parameters:
run- the runrtw- the rtwstortol- the stortolruletol- the ruletol- Returns:
- convergence value (number of time steps reservoir bottomed out -1)
-
checkSpecRelFirmYield
-
toString
-
setZones
Sets the zones.- Parameters:
zones- the new zones
-
getZones
Gets the zones.- Returns:
- the zones
-
initCompute
Inits the compute.- Parameters:
rssAlt- the rss alt
-
clone
-