Package hec.rss.model
Class YieldAnalysisRuleRef
java.lang.Object
hec.rss.model.YieldAnalysisRuleRef
- All Implemented Interfaces:
AsciiSerializable,FieldAccessor,RssModelVariableConstants,RssReturnStatusConstants,Serializable,Cloneable
public class YieldAnalysisRuleRef
extends Object
implements RssReturnStatusConstants, RssModelVariableConstants, Cloneable, AsciiSerializable
The Class YieldAnalysisRuleRef.
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringThe Constant RULETYPE_DNSTRMMIN.static final StringThe Constant RULETYPE_HYDROPOWER.static final StringThe Constant RULETYPE_RESMIN.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.YieldAnalysisRuleRef(RssTSLocationObject rule, Object owner) Constructor used by RssAlt. -
Method Summary
Modifier and TypeMethodDescriptionclone()static List<YieldAnalysisRuleRef> getDefaultWAYieldAnalysisRules(ReservoirElement res, OpSet operationSet) Gets the rules for default water account - includes rules where for which yield analysis not implemented on but need to be referenced and accounted for in the water balance because they influence minimum releases.getFieldObject(Field fld) This method allows access to java.lang.reflect.Field objects within the implementing class.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.doublegetResTolerance(int resId) getRule()Get the demand rule for the 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.doubleGets the tolerance.static List<YieldAnalysisRuleRef> getYieldAnalysisRules(ReservoirElement res, OpSet operationSet) Gets the yield analysis rules.static List<YieldAnalysisRuleRef> getYieldAnalysisRules(RssAlt alt, RssSystem system, boolean getWaterSupplyRules) Get the list of all rules that can be used as a basis for Yield Analysis.Gets the zone for reservoir.getZones()Gets the zones.voidinitCompute(RssAlt rssAlt) Inits the compute.voidinitializeData(RssSystem sys) Initialize data.voidInitialize data for compute.booleanChecks if is initialized.voidreadFile(BufferedReader reader) reads the persistent data for this object from an ASCII file and saves it to a string until the rule is needed.voidbooleansetFieldObject(Field fld, Object fobj) This allows access to fields withing the implementing object to set there data.voidsetTolerence(double tol) Sets the tolerance.voidsetZones(List<StorageZoneRef> zones) Sets the zones.toString()voidwriteDataToFile(BufferedWriter writer) writes the persistent data for this object to an ASCII file.
-
Field Details
-
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_RESSPEC
The Constant RULETYPE_RESMIN.- See Also:
-
RULETYPE_DNSTRMMIN
The Constant RULETYPE_DNSTRMMIN.- See Also:
-
-
Constructor Details
-
YieldAnalysisRuleRef
public YieldAnalysisRuleRef()Default Constructor. -
YieldAnalysisRuleRef
Constructor used by RssAlt.- Parameters:
rule- the ruleowner- the owner
-
-
Method Details
-
getRule
Get the demand rule for the 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
-
readFile
reads the persistent data for this object from an ASCII file and saves it to a string until the rule is needed.- Parameters:
reader- the reader
-
isInitialized
public boolean isInitialized()Checks if is initialized.- Returns:
- true, if is initialized
-
initializeData
Initialize data. -
initializeDataForCompute
Initialize data for compute.- Parameters:
alt- the alt
-
getYieldAnalysisRules
public static List<YieldAnalysisRuleRef> getYieldAnalysisRules(RssAlt alt, RssSystem system, boolean getWaterSupplyRules) Get the list of all rules that can be used as a basis for 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 systemgetWaterSupplyRules- the get water supply rules- Returns:
- ArrayList of rules that can be used as a basis for yield analysis analysis
-
getYieldAnalysisRules
public static List<YieldAnalysisRuleRef> getYieldAnalysisRules(ReservoirElement res, OpSet operationSet) Gets the yield analysis rules.- Parameters:
res- the resoperationSet- the operation set- Returns:
- the yield analysis rules
-
getDefaultWAYieldAnalysisRules
public static List<YieldAnalysisRuleRef> getDefaultWAYieldAnalysisRules(ReservoirElement res, OpSet operationSet) Gets the rules for default water account - includes rules where for which yield analysis not implemented on but need to be referenced and accounted for in the water balance because they influence minimum releases.- Parameters:
res- the resoperationSet- the operation set- Returns:
- the yield analysis rules
-
getZoneForReservoir
Gets the zone for reservoir.- Parameters:
res- the res- Returns:
- the zone for reservoir
-
getTolerance
public double getTolerance()Gets the tolerance.- Returns:
- the tolerance
-
getResTolerance
public double getResTolerance(int resId) -
setTolerence
public void setTolerence(double tol) Sets the tolerance.- Parameters:
tol- the new tolerance
-
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
-
rewriteInitString
public void rewriteInitString() -
getFieldObject
Description copied from interface:FieldAccessorThis method allows access to java.lang.reflect.Field objects within the implementing class.- Specified by:
getFieldObjectin interfaceFieldAccessor- 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- 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
-