Package hec.rss.model
Class OpController
java.lang.Object
java.util.Observable
hec.lang.NamedType
hec.rss.model.RssTSLocationObject
hec.rss.model.OpController
- All Implemented Interfaces:
AsciiSerializable,FieldAccessor,TSLocation,OpControllable,RssModelVariableConstants,RssReturnStatusConstants,RssTSLocation,Serializable,Cloneable,Comparable,Observer,rma.lang.Modifiable
Manages operation decision making for controllable objects.
Has time series of release quantity and active rule.
Also has time series of active minimum and maximum rules at the release
and downstream locations
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String[]static final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intstatic final intId indicating controller will balance releases across controllable objectsstatic final intId indicating controller will apply releases sequentially across controllable objectsstatic final intstatic final intstatic final intstatic final String[]static final intstatic final intstatic final Stringstatic final Stringstatic final Stringstatic final StringDefault name for top most controllerstatic final doubletolerance when testing for a value to be approximately equal to zeroFields 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 TypeMethodDescriptionvoidaddControllable(Element elem) add the given element to the controllable vector (if it is not already in the vector)intapplyElevationOverrides(RunTimeStep rts, Hashtable overrideTable) apply elevation over-ridesvoidapplies specific hindcast data for computevoidapplyPhysicalLimits(RunTimeStep rts, boolean evalSelf) Determines and distributes physical min and max limits to all outlets.voidapplyPhysicalLimits32(RunTimeStep rts, boolean evalSelf) booleanapplyPowerRuleLimits(RunTimeStep rts, OpRule rule, int iteration) Evaluates the given power rule and incorporates its limits into the current min/max values of all power plants that are at this controller or in its child controller hierarchybooleanapply release over-ridesbooleanapplyRuleLimits2(RunTimeStep rts, OpRule rule, int iteration) Evaluates the given rule and incorporates its limits into the current min/max valuesdoubleapplyZoneOperation(RunTimeStep rts, StorageZone zone) apply zone operation to release to a specified zone boundaryvoiddumps all ts proxiesclone()Creates a new object of the same class as this object.intcommitOperation(RunTimeStep rts, int numsteps) commit the operating decision for the given step to adjustable parametersintcomputeGCOperationStep(RunTimeStep rts, List rulelist) Evaluates release based on guide curve, only called for top most reservoir controllerintcomputeZoneOperationStep(RunTimeStep rts, StorageZone zone, double release) Evaluates release based on getting to the given zone, only called for top most reservoir controllervoiddeleteRule(int index) Deletes a rule for the OpControlllervoiddeleteRule(String name) Deletes a rule for the OpControlllervoidapply determine current physical limitsgetActiveTSRecordProxies(Vector vec, int iotype) add the time series record proxies associated with the active operation set to the given vectorreturns the composite adjustable parameter associated with the controller, must be called after initializing the computedoublegetCapacityOutageOrOveride(double curMaxValue, RunTimeWindow rts) voidreturn the child controllers and their child controllers in the given vectorvoidgetChildControllers(Vector vec, boolean recurse) appends child controllers to the given vectorreturns a vector of computed ts record proxies assuming the downstream flow is computeddoublegetCurLimitOpValue(int type, RunTimeStep rts) doublegetCurLimitPowerFlow(RunTimeStep rts, int type) returns the maximum flow limit from the curMaxOpValue for each outlet that has a power plant.getCurOpValue(RunTimeStep rts) returns the current release value with rule type and prioritydoublegets the total current adjustable parameter valuedoubledoublegetDecrROCLimit(RunTimeStep rts, double[] relcap, double[] dt, double elev, List rulelist) Returns the approximate overall decreasing rate of change constraint for this reservoir.returns the the elements name appended to its parents full namegetDownstreamRuleForParent(int dindex, int pindex) returns the reservoir/diversion op that owns this controllerReturns the power plant associated with the release element of this controller, otherwise returns null.doublegetEstimatedCurLimit(int ruleType, RunTimeStep rts) return the best estimate of the release limit for the controlled element based on this controllers curMXXOpValue and the expected distribution of release from the parent controller.doublegetEstimatedCurLimitForChild(OpController child, int ruleType, RunTimeStep rts) get the estimatedgetFieldObject(Field fld) This method allows access to java.lang.reflect.Field objects within the implementing class.doublegetFlowForPrevGateHeight(RunTimeStep rts, double resElev) returns the estimated flow if the gate openings from the previous time step are maintainedintdoublegetIncrROCLimit(RunTimeStep rts, double[] relcap, double[] dt, double elev, List rulelist) Returns the approximate overall increasing rate of change constraint for this reservoir.doublegetInstFlowCap(RunTimeStep rts, double elev, double[] cntrl, double[] unctrl) return the instantaneous flow capacity at the given time step and elevationTakes a object of class Element, Function, RssNode, OpController, or OpRule and returns a unique string identifying that object pass request to RssSystem This should be a TSLocation methoddoublereturn the maximum volume this controller will release for the given interval.doublereturn the minum volume this controller will release for the given interval.intdetermines the number of controlled outlets at or below this controller levelgetObjectForKeyString(String keystr) Takes a key string and returns the object of class Element, Function, Node, OpController, or OpRule Pass request to RssSystem This should be a TSLocation methodgetPowerPlantList(boolean refreshList) Get the list of all power plants at this controller or from all child controllers This method also saves the list in the class data member _powerPlantListdoublegets the total current adjustable parameter valuedouble[]return the time series array containing total release data this must be called only after initializing computereturns the release element associated with this controllerintindex of release element this contrable is associated withreturn the time series array containing total release data this must be called only after initializing computegetRule(int id) return the OpRule matching index, or null if it does not existreturn the OpRule matching name, or null if it does not existgetRuleConnectivityRefs(boolean recurse) Returns a List of RuleConnectivityRef objects identifying all rule references to other objects in the network.String[]returns a list of rule namesreturns a vector of rulesEach subclass must provide a method to return its parent RssSystemgetSystemHydropowerRuleForParent(int pindex) getTandemSysOpRuleForParent(int pindex) return the TandemSysOpRule for the given Parent indexgetTSRecordProxy(int varId) finds a TSRecordProxy for the given variable id in this TSLocationintgetWaterAccount(OpRule rule) booleanbooleanPrepares this run for post processing in the ResSim Simulation Module.booleanprepares for computation for this and all child controllersintinitOperationStep(RunTimeStep rts, int iteration) initialization call before each operation step, or before recomputing operations with different optionsbooleanReturns true if this OpController is associated with an uncontrolled release elementvoidreturn a new OpRule with given namevoidrecalcPhysicalLimits(RunTimeStep rts, double[] xt, double[] et, int tcnt) re-evaluate physical flow limits then apply themvoidrecalcPhysicalLimitsInst(RunTimeStep rts, double elev) re-evaluate physical flow limits for instantaneous simulation then apply themvoidvoidrestoreFunctionState(int stateid) restore the state of the rule matching the given identifier - default behavior is to do nothingbooleanrestoreHotstartState(HotstartState hotstartStateParent) voidsaveFunctionState(int stateid) save the current state of the rule with the given identifier - default behavior is to do nothingvoidsaveHotstartState(HotstartState hotstartStateParent, int stateId) voidsetActiveOperations(OpSet opset) sets the active rule set for the given OpSet for this and all child controllersvoidsetController(OpController controller) sets the parent controllervoidsetCurMaxOpValue(double val, int ruleId, int constraintId, RunTimeStep rts) voidsetCurMinOpValue(double val, int ruleId, int constraintId, RunTimeStep rts) voidsetCurrentOpValue(double val, int ruleId, int constraintId, RunTimeStep rts) voidsetCurrentOpValue(double val, int constraintId, RunTimeStep rts) voidsetCurrentOpValue(double val, RunTimeStep rts) voidsetElementOp(ElementOp resop) sets the parent reservoir/diversion OpbooleansetFieldObject(Field fld, Object fobj) This allows access to fields withing the implementing object to set there data.doublesetParameterValue(double val, RunTimeStep rts) sets the adjustable parameter value, returns the value actually appliedvoidsets the associated release element and release element idvoidsetReleaseElementId(int elementId) index of release element this contrable is associated withvoidsetZone(RunTimeStep rts, StorageZone zone) toString()over toString to return name - check if ok to move to namedtypevoidupdateControllerTree(Element elem) The method recursively updates the tree of OpControllable objects so that it is in sync with the current version of the reservoirvoidHave top level controller update the TSRecordProxy set for itself and all child controllers and rulesbooleanIndicates whether object uses recursive modified testing.Methods inherited from class hec.rss.model.RssTSLocationObject
addTSRecord, addTSRecordProxy, addTSRecordProxy, addTSRecordProxy, copyInto, getTSArray, getTSArray, getTSArray, getTSArray, getTSContainer, getTSContainer, getTSDataSet, getTSRecordProxies, getTSRecordProxy, getTSRecordProxy, getTSRecordProxy, getTSRecordProxy, getTSRecordProxyVec, removeTSRecord, removeTSRecordProxy, removeTSRecordProxyMethods inherited from class hec.lang.NamedType
addModifiableListener, compareTo, fireModifiedStateChanged, getDescription, getIgnoreModifiedEvents, getIndex, getName, isModified, isValid, readResolve, removeModifiableListener, rename, set, setDescription, setIgnoreModifiedEvents, setIndex, setModified, setName, setValid, updateMethods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChanged
-
Field Details
-
PARAMSTR_DECISION
- See Also:
-
PARAMSTR_RULEID
- See Also:
-
PARAMSTR_ZONEID
- See Also:
-
OBJECTIVE_GC
public static final int OBJECTIVE_GC- See Also:
-
OBJECTIVE_RO
public static final int OBJECTIVE_RO- See Also:
-
OBJECTIVE_EO
public static final int OBJECTIVE_EO- See Also:
-
OBJECTIVE_ZB
public static final int OBJECTIVE_ZB- See Also:
-
OBJECTIVE_MIN
public static final int OBJECTIVE_MIN- See Also:
-
OBJECTIVE_NAME
-
CNSTRNTID_PHYSMAX
public static final int CNSTRNTID_PHYSMAX- See Also:
-
CNSTRNTID_PHYSMIN
public static final int CNSTRNTID_PHYSMIN- See Also:
-
CNSTRNTID_CHILDMAX
public static final int CNSTRNTID_CHILDMAX- See Also:
-
CNSTRNTID_CHILDMIN
public static final int CNSTRNTID_CHILDMIN- See Also:
-
CNSTRNTID_PHYSIROC
public static final int CNSTRNTID_PHYSIROC- See Also:
-
CNSTRNTID_PHYSDROC
public static final int CNSTRNTID_PHYSDROC- See Also:
-
CNSTRNTID_CAPOUTAGE
public static final int CNSTRNTID_CAPOUTAGE- See Also:
-
CNSTRNTID_CAPOVERRIDE
public static final int CNSTRNTID_CAPOVERRIDE- See Also:
-
CNSTRNTID_UNCONTROLLED
public static final int CNSTRNTID_UNCONTROLLED- See Also:
-
CNSTRNT_NAME
-
ZERO_TOL
public static final double ZERO_TOLtolerance when testing for a value to be approximately equal to zero- See Also:
-
DISTMETH_BALANCE
public static final int DISTMETH_BALANCEId indicating controller will balance releases across controllable objects- See Also:
-
DISTMETH_SEQUENTIAL
public static final int DISTMETH_SEQUENTIALId indicating controller will apply releases sequentially across controllable objects- See Also:
-
TOP_PARENT_NAME
Default name for top most controller- See Also:
-
-
Constructor Details
-
OpController
public OpController() -
OpController
-
OpController
-
-
Method Details
-
applyPhysicalLimits32
-
loadControllerLimits
-
getIncrROCLimit
public double getIncrROCLimit(RunTimeStep rts, double[] relcap, double[] dt, double elev, List rulelist) Returns the approximate overall increasing rate of change constraint for this reservoir. The constraint is the total release capacity (relcap) divided by the time required to decrease from max release to zero (dt). If there is no IROC constraint the dt returned is RmaConst.UNDEFINED_DOUBLE- Specified by:
getIncrROCLimitin interfaceOpControllable
-
getDecrROCLimit
public double getDecrROCLimit(RunTimeStep rts, double[] relcap, double[] dt, double elev, List rulelist) Returns the approximate overall decreasing rate of change constraint for this reservoir. The constraint is the total release capacity (relcap) divided by the time required to decrease from max release to zero (dt). If there is no DROC constraint the dt returned is RmaConst.UNDEFINED_DOUBLE- Specified by:
getDecrROCLimitin interfaceOpControllable
-
getFlowForPrevGateHeight
returns the estimated flow if the gate openings from the previous time step are maintained- Specified by:
getFlowForPrevGateHeightin interfaceOpControllable
-
getInstFlowCap
Description copied from interface:OpControllablereturn the instantaneous flow capacity at the given time step and elevation- Specified by:
getInstFlowCapin interfaceOpControllable
-
getCurLimitPowerFlow
returns the maximum flow limit from the curMaxOpValue for each outlet that has a power plant.- Returns:
- flow in cfs or cms
-
getWaterAccount
-
applyRuleLimits2
Evaluates the given rule and incorporates its limits into the current min/max values- Parameters:
rule- OpRule to be considered- Returns:
- true if method changed the limits V3.0
-
getMinReleaseVol
return the minum volume this controller will release for the given interval. Note that for instantaneous calcs, the volume is calculated based on the actual release at the previous time step and the limit value at the current time step.- Parameters:
rts-- Returns:
-
getMaxReleaseVol
return the maximum volume this controller will release for the given interval. Note that for instantaneous calcs, the volume is calculated based on the actual release at the previous time step and the limit value at the current time step.- Parameters:
rts-- Returns:
-
isUncontrolled
public boolean isUncontrolled()Returns true if this OpController is associated with an uncontrolled release element -
hasPowerPlants
public boolean hasPowerPlants() -
getElementPowerPlant
Returns the power plant associated with the release element of this controller, otherwise returns null.- Returns:
- PowerPlant or null if not exists on the element associated with this controller
-
getPowerPlantList
Get the list of all power plants at this controller or from all child controllers This method also saves the list in the class data member _powerPlantList- Parameters:
refreshList- is a boolean flag that tiggers recreation of the powerPlantList.- Returns:
- List of PowerPlant objects
-
getRuleConnectivityRefs
Returns a List of RuleConnectivityRef objects identifying all rule references to other objects in the network.- Parameters:
recurse- true means to recurse through child OpControllers- Returns:
- ArrayList RuleConnectivityRef objects
-
saveFunctionState
public void saveFunctionState(int stateid) save the current state of the rule with the given identifier - default behavior is to do nothing- Parameters:
stateid- identifier for the state
-
restoreFunctionState
public void restoreFunctionState(int stateid) restore the state of the rule matching the given identifier - default behavior is to do nothing- Parameters:
stateid- identifier for the state
-
saveHotstartState
-
restoreHotstartState
-
getDownstreamRuleForParent
-
getSystemHydropowerRuleForParent
-
getTandemSysOpRuleForParent
return the TandemSysOpRule for the given Parent index- Parameters:
pindex-- Returns:
- null if not found
-
setZone
-
initOperationStep
initialization call before each operation step, or before recomputing operations with different options- Specified by:
initOperationStepin interfaceOpControllable
-
getCurrentOpValue
returns the current release value with rule type and priority- Parameters:
rts- requested time step- Returns:
- the current operation value object
-
setCurrentOpValue
-
setCurrentOpValue
-
setCurrentOpValue
-
setCurMaxOpValue
-
setCurMinOpValue
-
getCurMinOpValue
-
getCurMaxOpValue
-
getCurOpValue
-
getDecisionValue
-
getEstimatedCurLimit
return the best estimate of the release limit for the controlled element based on this controllers curMXXOpValue and the expected distribution of release from the parent controller. The result is based on the last rule set evaluated, whether committed to the physical elements or not.- Parameters:
ruleType- OpRule.RULETYPE_MIN or OpRule.RULETYPE_MAX- Returns:
- estimated flow limit
-
getEstimatedCurLimitForChild
get the estimated- Parameters:
child-- Returns:
-
getCurLimitOpValue
-
recalcPhysicalLimitsInst
re-evaluate physical flow limits for instantaneous simulation then apply them- Specified by:
recalcPhysicalLimitsInstin interfaceOpControllable- Parameters:
rts- RunTimeStepelev- elevation at end of time step
-
recalcPhysicalLimits
re-evaluate physical flow limits then apply them- Specified by:
recalcPhysicalLimitsin interfaceOpControllable- Parameters:
rts- RunTimeStep
-
distributePhysicalLimits
apply determine current physical limits- Parameters:
rts-
-
applyPhysicalLimits
Determines and distributes physical min and max limits to all outlets. Max releases are determined at each controller level in the reservoir allowing only controlled releases at or below the current controller level to operation. Other controlled releases are assumed to be zero. All uncontrolled releases from any controller group in the reservoir are considered. Requires an iterative solution for change in elevation with release (in ReservoirOp class) so logic is added to minimize the number of evaluations.- Parameters:
rts-evalSelf- a flag that determines whether this controller evaluates its own limits.
-
getNumControlledOutlets
public int getNumControlledOutlets()determines the number of controlled outlets at or below this controller level- Returns:
- number of controlled outlets
-
applyReleaseOverrides
apply release over-rides- Parameters:
rts-
-
applyElevationOverrides
apply elevation over-rides -
applyZoneOperation
apply zone operation to release to a specified zone boundary -
commitOperation
commit the operating decision for the given step to adjustable parameters -
applyHindcastData
applies specific hindcast data for compute -
clone
Creates a new object of the same class as this object.
It then initializes each of the new object's fields by assigning it the same value as the corresponding field in this object. No
constructor is called.- Specified by:
clonein interfaceOpControllable- Overrides:
clonein classRssTSLocationObject
-
getGmtOffset
public int getGmtOffset() -
getUnitSystem
public int getUnitSystem() -
setController
sets the parent controller- Specified by:
setControllerin interfaceOpControllable
-
resetChildOwnership
public void resetChildOwnership() -
getSystem
Description copied from class:RssTSLocationObjectEach subclass must provide a method to return its parent RssSystem- Specified by:
getSystemin classRssTSLocationObject
-
getDisplayName
returns the the elements name appended to its parents full name- Overrides:
getDisplayNamein classNamedType
-
getKeyStringForObject
Takes a object of class Element, Function, RssNode, OpController, or OpRule and returns a unique string identifying that object pass request to RssSystem This should be a TSLocation method -
getObjectForKeyString
Takes a key string and returns the object of class Element, Function, Node, OpController, or OpRule Pass request to RssSystem This should be a TSLocation method -
clearTSProxyList
public void clearTSProxyList()dumps all ts proxies- Overrides:
clearTSProxyListin classRssTSLocationObject
-
updateTSProxyList
public void updateTSProxyList()Have top level controller update the TSRecordProxy set for itself and all child controllers and rules- Specified by:
updateTSProxyListin classRssTSLocationObject
-
getActiveTSRecordProxies
add the time series record proxies associated with the active operation set to the given vector- Overrides:
getActiveTSRecordProxiesin classRssTSLocationObject
-
getReleaseArray
public double[] getReleaseArray()return the time series array containing total release data this must be called only after initializing compute -
getReleaseTSContainer
return the time series array containing total release data this must be called only after initializing compute -
getCurrentParameterValue
public double getCurrentParameterValue()gets the total current adjustable parameter value- Specified by:
getCurrentParameterValuein interfaceOpControllable
-
getPreviousParameterValue
gets the total current adjustable parameter value- Specified by:
getPreviousParameterValuein interfaceOpControllable
-
computeZoneOperationStep
Evaluates release based on getting to the given zone, only called for top most reservoir controller -
computeGCOperationStep
Evaluates release based on guide curve, only called for top most reservoir controller -
setElementOp
sets the parent reservoir/diversion Op -
getReleaseElementId
public int getReleaseElementId()index of release element this contrable is associated with- Specified by:
getReleaseElementIdin interfaceOpControllable
-
setReleaseElementId
public void setReleaseElementId(int elementId) index of release element this contrable is associated with- Specified by:
setReleaseElementIdin interfaceOpControllable
-
getReleaseElement
returns the release element associated with this controller -
setReleaseElement
sets the associated release element and release element id- Specified by:
setReleaseElementin interfaceOpControllable
-
updateControllerTree
The method recursively updates the tree of OpControllable objects so that it is in sync with the current version of the reservoir -
getElementOp
returns the reservoir/diversion op that owns this controller -
getReservoirOp
-
initializeCompute
prepares for computation for this and all child controllers- Specified by:
initializeComputein interfaceOpControllable
-
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.- Specified by:
initForPostProcessingin interfaceOpControllable- Returns:
- RTN_NOPROBLEM if successful
-
getAdjustableParameter
returns the composite adjustable parameter associated with the controller, must be called after initializing the compute- Specified by:
getAdjustableParameterin interfaceOpControllable
-
setActiveOperations
sets the active rule set for the given OpSet for this and all child controllers -
addControllable
add the given element to the controllable vector (if it is not already in the vector) -
newRule
return a new OpRule with given name -
getRule
return the OpRule matching index, or null if it does not exist -
getRules
returns a vector of rules -
getRuleNames
returns a list of rule names -
getRule
return the OpRule matching name, or null if it does not exist -
deleteRule
Deletes a rule for the OpControlller- Parameters:
name- - name of the rule to delete
-
deleteRule
public void deleteRule(int index) Deletes a rule for the OpControlller- Parameters:
index- - index of the rule to delete
-
toString
over toString to return name - check if ok to move to namedtype -
getChildControllers
return the child controllers and their child controllers in the given vector- Parameters:
vec-
-
getChildControllers
appends child controllers to the given vector- Parameters:
recurse- true to return recurse through the child controllers
-
getTSRecordProxy
finds a TSRecordProxy for the given variable id in this TSLocation- Specified by:
getTSRecordProxyin interfaceRssTSLocation- Overrides:
getTSRecordProxyin classRssTSLocationObject
-
getComputedTSRecordProxies
returns a vector of computed ts record proxies assuming the downstream flow is computed- Overrides:
getComputedTSRecordProxiesin classRssTSLocationObject
-
setParameterValue
Description copied from interface:OpControllablesets the adjustable parameter value, returns the value actually applied- Specified by:
setParameterValuein interfaceOpControllable
-
useRecursiveModifiedTest
public boolean useRecursiveModifiedTest()Indicates whether object uses recursive modified testing. Should be overrided by subclasses that use recursive testing to return true- Overrides:
useRecursiveModifiedTestin classNamedType
-
getCapacityOutageOrOveride
-
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 classRssTSLocationObject- 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 classRssTSLocationObject- 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
-
applyPowerRuleLimits
Evaluates the given power rule and incorporates its limits into the current min/max values of all power plants that are at this controller or in its child controller hierarchy- Parameters:
rule- OpRule to be considered- Returns:
- true if method changed the limits V3.0
-