Package hec.rss.model
Class SystemHydropowerRule
java.lang.Object
java.util.Observable
hec.lang.NamedType
hec.rss.model.RssTSLocationObject
hec.rss.model.OpRule
hec.rss.model.SystemHydropowerRule
- All Implemented Interfaces:
AsciiSerializable,FieldAccessor,TSLocation,AltInputReportInfc,RssModelVariableConstants,RssReturnStatusConstants,RssTSLocation,Serializable,Cloneable,Comparable,Observer,rma.lang.Modifiable
System Hydropower Parent Rule
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionbooleanstatic final intstatic final intstatic final intstatic final intstatic final intstatic final doublestatic final doublestatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intFields inherited from class hec.rss.model.OpRule
_avgPeriod, _enableRiseFallCond, _multiplier, _parameterType, _riseFallCondition, _riseFallTolerance, _system, _timeOfDayMultiplier, _useDayOfWeekMultiplier, _usePeriodAverageLimit, _useTimeOfDayMultiplier, FALLING, FALLING_OR_CONST, INFLOW, NONE, POOL_ELEVATION, RISING, RISING_OR_CONST, RULETYPE_DEMAND, RULETYPE_FREE, RULETYPE_MAX, RULETYPE_MIN, RULETYPE_SPECFields 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
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddChildRule(SystemHydropowerOpRule rule, int resIdx) voidcopyChildInto(SystemHydropowerOpRule opRule) Copies the contents of avoidevaluateLimits(RunTimeStep rts, int iteration) evaluate the reguired energy generation for each managed reservoir for the given time step.voidevaluateLimits33(RunTimeStep rts, int iteration) evaluate the reguired energy generation for each managed reservoir for the given time step.voidevaluateSysLimits(RunTimeStep rts, int iter) voidpost processing immediately following compute to evalute performancevoidgetActiveTSRecordProxies(Vector vec, int iotype) add the time series record proxies associated current computegetChildRule(int resIdx) intReturns a value defining if the power generation pattern is either locally generated or specified.intGets the dayBelongsToTerm attribute of the SystemHydropowerRule objectgetFieldObject(Field fld) Gets the fieldObject attribute of the SystemHydropowerRule objectintSets the way the model will attempt to meet the gereration requiremnt at period (TIME-STEP, DAILY, WEEKLY).double[]Gets the monthlyPowerRequirement attribute of the SystemHydropowerRule objectintGets the powerPatternContainer attribute of the SystemHydropowerRule objectintGets the powerReqSpecification attribute of the SystemHydropowerRule objectintReturns the Power Generation required variation.protected doublegetReservoirGeneration(int resid) called by SystemHydropowerOpRule to retrieve the previously computed energy generation requirementgetReservoirs(List<ReservoirElement> resList) add the list of reservoirs that operate for this rule to the given list.int[]Gets the reservoirSystemIndicies attribute of the SystemHydropowerRule objectgetResGenPattern(int resid) returns the PowerGenerationPatternContainer for a specific reservoir id.used by SystemHydropowerOpRule to get a deep copy of the reservoir generation pattern tableintget the limit type of this rule should be implemented by all subclasses of OpRuleGets the seasonalPowerRequirement attribute of the SystemHydropowerRule objectintGets the startDayOfPeriod attribute of the SystemHydropowerRule objectintGets the startingDay attribute of the SystemHydropowerRule objectgetTSRecordProxyResVar(int ires, int varid) Get the TSRecordProxy for the Reservoir Variable time series managed by indicated child rulevoidgetTSRecordProxyVecResVar(Vector proxyList, int varid) Get TSRecordProxies for the Reservoir Variable time series managed by each associated child ruleprotected intperform initialization prior to forecasting in RssSystem compute methodbooleaninitForPostProcessing(RssSystem rssSystem) Prepares this run for post processing in the ResSim Simulation Module.booleaninitialize(RssSystem rssSystem) Description of the Methodbooleanprep for computeintperform initialization prior to decision making for given time step in RssSystem compute methodbooleansetFieldObject(Field fld, Object fobj) Sets the fieldObject attribute of the SystemHydropowerRule objectvoidSets the systemHydropowerOpRule attribute of the SystemHydropowerRule objectvoidsetUseEnergyRequiredTimeSeries(boolean use) Description of the MethodvoidRegenerates the list of all TSProxies required for this location.booleanDescription of the MethodbooleanDescription of the MethodbooleanIs true if the monthly energy requirements are to be interpreted as Plant Factor.Methods inherited from class hec.rss.model.OpRule
applyHindcastData, checkRisingFallingCondition, clone, computeStepLimit, evaluateRule, evaluateRule, evaluateRule, getAveragingPeriod, getController, getDayOfWeekFactor, getDemandScale, getElementDependencies, getEnableRiseFallCondition, getGmtOffset, getKeyStringForObject, getLargestDayOfWeekFactor, getLargestTimeOfDayFactor, getMultiplier, getNetwork, getObjectForKeyString, getOperationsElement, getOpValue, getParameterType, getPowerOpValue, getPriority, getReferencedStateVariables, getRequiredTSRecordProxies, getReservoirElement, getRiseFallCondition, getRiseFallTolerance, getRssSystem, getSystem, getTargetTSRecordProxy, getTimeOfDayFactor, getTimeOfDayMultiplier, getTSProxyName, getUnitSystem, initForPostProcessing, initOperationStep, isActive, isDnstrmRule, isLocalRule, isPerAvgRule, outputReport, resetChildOwnership, restoreFunctionState, restoreHotstartState, riseFallConditionIsValid, saveFunctionState, saveHotstartState, setAveragingPeriod, setController, setDemandScale, setEnableRiseFallCondition, setMultiplier, setParameterType, setPeriodAverageLimit, setPriority, setRiseFallCondition, setRiseFallTolerance, setSystem, setTimeOfDayMultiplier, setUseDayOfWeekMultiplier, setUseDemandScale, setUsePeriodAverageLimit, setUseTimeOfDayMultiplier, toString, updateByDemandScale, useDayOfWeekMultiplier, useDemandScale, usePeriodAverageLimit, useTimeOfDayMultiplierMethods inherited from class hec.rss.model.RssTSLocationObject
addTSRecord, addTSRecordProxy, addTSRecordProxy, addTSRecordProxy, clearTSProxyList, copyInto, getComputedTSRecordProxies, getTSArray, getTSArray, getTSArray, getTSArray, getTSContainer, getTSContainer, getTSDataSet, getTSRecordProxies, 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
-
REQ_SPECIFIED_PLANT_FACTOR
public static final int REQ_SPECIFIED_PLANT_FACTOR- See Also:
-
REQ_SPECIFIED_DAILY
public static final int REQ_SPECIFIED_DAILY- See Also:
-
REQ_SPECIFIED_WEEKLY
public static final int REQ_SPECIFIED_WEEKLY- See Also:
-
REQ_SPECIFIED_MONTHLY
public static final int REQ_SPECIFIED_MONTHLY- See Also:
-
REQ_SPECIFIED_SEASONALLY
public static final int REQ_SPECIFIED_SEASONALLY- See Also:
-
LOCAL_GENERATION
public static final int LOCAL_GENERATION- See Also:
-
SPECIFY_GENERATION
public static final int SPECIFY_GENERATION- See Also:
-
MONTHLY_VARIATION
public static final int MONTHLY_VARIATION- See Also:
-
SEASONAL_VARIATION
public static final int SEASONAL_VARIATION- See Also:
-
GENERATION_PERIOD_TIMESTEP
public static final int GENERATION_PERIOD_TIMESTEP- See Also:
-
GENERATION_PERIOD_DAILY
public static final int GENERATION_PERIOD_DAILY- See Also:
-
GENERATION_PERIOD_WEEKLY
public static final int GENERATION_PERIOD_WEEKLY- See Also:
-
MW_CONST_ENGLISH
public static final double MW_CONST_ENGLISH- See Also:
-
MW_CONST_SI
public static final double MW_CONST_SI- See Also:
-
DEBUG
public boolean DEBUG
-
-
Constructor Details
-
SystemHydropowerRule
public SystemHydropowerRule()Constructor for the SystemHydropowerRule object
-
-
Method Details
-
getRuleLimitType
public int getRuleLimitType()Description copied from class:OpRuleget the limit type of this rule should be implemented by all subclasses of OpRule- Overrides:
getRuleLimitTypein classOpRule
-
getReservoirArray
-
evaluateSysLimits
-
getReservoirs
add the list of reservoirs that operate for this rule to the given list. if the list is null, a new list is created. must have initialized this rule before calling this method to get correct list of reservoirs. -
addChildRule
-
getChildRule
-
getPeriodSteps
public int getPeriodSteps() -
evaluateLimits
evaluate the reguired energy generation for each managed reservoir for the given time step. Called from RssSystem.evaluateRuleLimits(). initOperationStep must have been called before calling this method during the given time step- Overrides:
evaluateLimitsin classOpRule- Parameters:
rts-iteration-
-
evaluateLimits33
evaluate the reguired energy generation for each managed reservoir for the given time step. Called from RssSystem.evaluateRuleLimits(). initOperationStep must have been called before calling this method during the given time step- Parameters:
rts-
-
getReservoirGeneration
protected double getReservoirGeneration(int resid) called by SystemHydropowerOpRule to retrieve the previously computed energy generation requirement- Returns:
- required generation in MWH (may be undefined)
-
getResGenPattern
returns the PowerGenerationPatternContainer for a specific reservoir id. returns null if not found.- Parameters:
resid-- Returns:
-
getResGenPatternTableClone
used by SystemHydropowerOpRule to get a deep copy of the reservoir generation pattern table- Returns:
-
initForecast
perform initialization prior to forecasting in RssSystem compute method- Returns:
- RTN_NOPROBLEM if successful
-
initOperationStep
perform initialization prior to decision making for given time step in RssSystem compute method- Returns:
- RTN_NOPROBLEM if successful
-
getActiveTSRecordProxies
add the time series record proxies associated current compute- Overrides:
getActiveTSRecordProxiesin classOpRule
-
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 classOpRule
-
evaulatePerformance
post processing immediately following compute to evalute performance- Overrides:
evaulatePerformancein classOpRule- Parameters:
rtw-
-
getPowerPatternContainer
Gets the powerPatternContainer attribute of the SystemHydropowerRule object- Returns:
- The powerPatternContainer value
-
getRequirementVariation
public int getRequirementVariation()Returns the Power Generation required variation.- Returns:
-
initializeCompute
public boolean initializeCompute()Description copied from class:OpRuleprep for compute- Overrides:
initializeComputein classOpRule
-
setSystemHydropowerOpRule
Sets the systemHydropowerOpRule attribute of the SystemHydropowerRule object- Parameters:
rule- The new systemHydropowerOpRule value
-
usePlantFactor
public boolean usePlantFactor()Is true if the monthly energy requirements are to be interpreted as Plant Factor. If false, interpret monthly values as MWh- Returns:
- Description of the Return Value
-
useIndependantPowerRequirement
public boolean useIndependantPowerRequirement()Description of the Method- Returns:
- Description of the Return Value
-
useEnergyRequiredTimeSeries
public boolean useEnergyRequiredTimeSeries()Description of the Method- Returns:
- Description of the Return Value
-
setUseEnergyRequiredTimeSeries
public void setUseEnergyRequiredTimeSeries(boolean use) Description of the Method -
getDailyGenerationPattern
public int getDailyGenerationPattern()Returns a value defining if the power generation pattern is either locally generated or specified. If it is specified then the System Power Generation Pattern data is used.- Returns:
-
getMonthlyPowerRequirement
public double[] getMonthlyPowerRequirement()Gets the monthlyPowerRequirement attribute of the SystemHydropowerRule object- Returns:
- The monthlyPowerRequirement value
-
getSeasonalPowerRequirement
Gets the seasonalPowerRequirement attribute of the SystemHydropowerRule object- Returns:
- The seasonalPowerRequirement value
-
getDayBelongsToTerm
public int getDayBelongsToTerm()Gets the dayBelongsToTerm attribute of the SystemHydropowerRule object- Returns:
- The dayBelongsToTerm value
-
getStartingDay
public int getStartingDay()Gets the startingDay attribute of the SystemHydropowerRule object- Returns:
- The startingDay value
-
getStartDayOfPeriod
public int getStartDayOfPeriod()Gets the startDayOfPeriod attribute of the SystemHydropowerRule object- Returns:
- The startDayOfPeriod value
-
getPowerReqSpecification
public int getPowerReqSpecification()Gets the powerReqSpecification attribute of the SystemHydropowerRule object- Returns:
- The powerReqSpecification value
-
getGenerationPeriod
public int getGenerationPeriod()Sets the way the model will attempt to meet the gereration requiremnt at period (TIME-STEP, DAILY, WEEKLY). The valid values are GENERATION_PERIOD_DAILY, GENERATION_PERIOD_TIMESTEP, invalid input: '&' GENERATION_PERIOD_WEEKLY. If any other value is passed in, an illegal argument exception is thrown.- Returns:
- The generationPeriod value
-
getReservoirSystemIndicies
public int[] getReservoirSystemIndicies()Gets the reservoirSystemIndicies attribute of the SystemHydropowerRule object- Returns:
- The reservoirSystemIndicies value
-
copyChildInto
Copies the contents of a- Parameters:
opRule-
-
initialize
Description of the Method- Parameters:
rssSystem- Description of the Parameter
-
initForPostProcessing
Prepares this run for post processing in the ResSim Simulation Module. This routing sets up all data model connectivity, but does not load time series arrays.- Returns:
- RTN_NOPROBLEM if successful
-
finalizeCompute
public void finalizeCompute() -
getTSRecordProxyVecResVar
Get TSRecordProxies for the Reservoir Variable time series managed by each associated child rule- Parameters:
proxyList- that will hold the set of TSRecordProxiesvarid- model variable id identifying the TSRecordProxy to retrieve
-
getTSRecordProxyResVar
Get the TSRecordProxy for the Reservoir Variable time series managed by indicated child rule- Parameters:
ires- index of the associated reservoir child rulevarid- model variable id identifying the TSRecordProxy to retrieve
-
getFieldObject
Gets the fieldObject attribute of the SystemHydropowerRule object- Specified by:
getFieldObjectin interfaceFieldAccessor- Overrides:
getFieldObjectin classOpRule- Parameters:
fld- Description of the Parameter- Returns:
- The fieldObject value
-
setFieldObject
Sets the fieldObject attribute of the SystemHydropowerRule object- Specified by:
setFieldObjectin interfaceFieldAccessor- Overrides:
setFieldObjectin classOpRule- Parameters:
fld- The new fieldObject valuefobj- The new fieldObject value- Returns:
- Description of the Return Value
-