Package hec.rss.model
Class DiversionElement
java.lang.Object
java.util.Observable
hec.lang.NamedType
hec.rss.model.Element
hec.rss.model.DiversionElement
- All Implemented Interfaces:
AsciiSerializable,FieldAccessor,TSLocation,OperationsElement,PlotVariableConstants,ReleaseElement,AltInputReportInfc,RssModelVariableConstants,RssReturnStatusConstants,RssTSLocation,SeepageConstants,hec.watershed.res.model.PlottableObject,Serializable,Cloneable,Comparable,Observer,rma.lang.Modifiable
public class DiversionElement
extends Element
implements SeepageConstants, ReleaseElement, AltInputReportInfc, OperationsElement
- See Also:
-
Field Summary
FieldsFields inherited from class hec.rss.model.Element
DIVERSION_ELEMENT_ID, DIVERTEDOUTLET_ELEMENT_ID, INFLOW, JUNCTION_ELEMENT_ID, OUTFLOW, REACH_ELEMENT_ID, RESERVIOR_ELEMENT_IDFields 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.PlotVariableConstants
PV_ELEVATION, PV_REGULATED_FLOW, PV_REGULATED_STAGE, PV_STORAGE, PV_TOTAL_RELEASE, PV_UNREGULATED_FLOW, PV_UNREGULATED_STAGEFields 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_PROBLEMFields inherited from interface hec.rss.model.SeepageConstants
SEEPAGE_CONST, SEEPAGE_FUNC, SEEPAGE_RETURN_RATIO -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidadds a node to this elementdoublecalcSeepageFlow(double flow) clone()clone does a deep copy of child objectsintcomputeForecast(RunTimeWindow rtw, int computeFlag) Compute diversion over Forecast time windowintcomputes a single forecast time stepintcomputeHindcast(RunTimeWindow rtw, int computeFlag) Compute diversion over hindcast time windowintcomputes a single hindcast time stepvoidvoiddisconnectDownstream(double eoff, double noff) disconnects the diversion from downstream element and optionaly offsets the location of the downstream endgetActiveTSProxies(Vector vec, int iotype) returns a vector of required input, or generated output TSRecordProxies used in the current alternative default implementation elements, assume all records are activerequests vector of computed ts proxies from function Overrides method in Element class to return the diversion record and the routed diversion record if the diversion connects back to the networkbooleangetConditionalBlockRefs(int opid, List<ConditionalBlockRef> condList) Adds all ConditionalBlockRefs utilized by the Operation Set matching the given OpSet Id.doublevoidgetConstSeepage(hec.data.ParamDouble pd) returns the controller from the diversion control element functionReturns a list of Model Variables that are used in the default plot required by PlottableObject interfacelongdoublereturns the desired diversion volume for the given time step.return the name of the ReservoirOp object associated with this elementreturns the first downstream node in the node listgetElementOp(boolean init) getFieldObject(Field fld) This method allows access to java.lang.reflect.Field objects within the implementing class.get the Fill Color nameinthec.map.WorldLinegetLine()getLinkedElementList(int direction) Override default method in Element class to inlude inflow elements to source junction.getModelVariables(Vector variableList) returns the model variables available for plotting method required by PlottableObject interfacevoidgetReferencedStateVariables(List svlist) adds all StateVariables refereced by diversion rule to the given Listhec.map.WorldPtreturns an the required proxies from the source elementdoubleReturns a List of RuleConnectivityRef objects identifying all rule references to other objects in the network.voidAdds rule references to the given vector.intgetTSRecords(ModelVariable plotVariable, Vector proxyList) returns the first upstream node in the node listbooleanhasReach()booleanintInitialzes adjustable parameter values over forecast time windowbooleaninitialize(RunTimeWindow rtw) initialize prior to a computevoidoutputReport(AlternativeInputReport report, org.jdom.Element elem) Alternative Input Report Interface for data.voidremoveNode(RssNode node) override Element.removeNode to remove child routing element if necessaryvoidsetActive(boolean active) Sets whether element is active for computation.voidsetComputeDuringUnReg(boolean b) voidsetConstSeepage(double s) voidsetConstSeepage(hec.data.ParamDouble pd) voidsetDiversionProjectId(long id) booleansetFieldObject(Field fld, Object fobj) This allows access to fields withing the implementing object to set there data.voidsetFillColorName(String fillColorName) set the Fill Color name or null to use the defaultvoidsetFlowHindcastCondition(int hindcastCondition) Deprecated.voidsetInflowType(int inFlowType) voidsetLine(hec.map.WorldLine reg) voidsetReferencePt(hec.map.WorldPt pt) voidsetReturnRatio(double s) booleansetSeepageType(int cond) voidvoidCalled just before ascii serialization.voidsetVeriticalDatumSettings(VerticalDatumSettings vSettings) voidupdateDecisions(RunTimeStep rts, int iteration) update operating decision (not implemented until full decision making logic is ported over from reservoir element)intupdateOperations(RunTimeStep rts, int iteration, boolean evalDownstream) Updates the operating decisions for the given time step.voidupdateOperations(RssSystem rssSystem) called to create the default operations set for older diversionsvoidoverrides Element.updateTSProxyList to also get proxies from active reservoir operationsMethods inherited from class hec.rss.model.Element
addChildElement, addChildElementAt, addNode, applyHindcastData, children, cleanupFromDeSerialization, cleanVectors, clearTSProxyList, computeForecastStep, computeSubStepFlow, copyInto, createHotstartState, dispose, dispose, downStreamFrom, findAdjParam, findAdjParam, findElement, getActiveStateVariables, getChildElementAt, getChildElementCount, getComputedTSRecordProxies_old, getDisplayName, getDownstreamElements, getDownstreamNodes, getEffectiveElev, getElement, getElementByName, getElementsByClass, getElementType, getElementTypeId, getElementVector, getFlowContolTSRecordProxies, getForebayHeadLoss, getForecastEquation, getFullName, getFunction, getHindcastDataList, getHindcastEquation, getKeyStringForObject, getNode, getNodeCount, getNodeDir, getNodeDirVector, getNodeVector, getObjectForKeyString, getObjectTypeId, getObsDataVector, getOutletElementList, getOutletElementList, getOutputBPart, getParent, getPlotTypeDirectory, getPlotTypeFile, getPlotTypeNames, getPlotTypes, getPrevEffectiveElev, getReleaseElements, getSystem, getTailwaterElevationObjects, getTopParent, getTopParentName, getTSDataSet, getTSRecordProxies, getTSRecordProxy, getTSRecordProxy, getTSRecords, getUnitSystem, getUpstreamNodes, getWaterControlDevice, hasElementsOfClass, hasForebayHeadLoss, hasWaterControlDevice, importObservedData, initForecastLoop, initForPostProcessing, initHindcastLoop, initTSVals, isActive, isDirty, isDisposed, isNodeComputed, readData, removeAllChildElements, removeChild, resetParentElement, restoreElementState, restoreHotstartState, saveElementState, saveHotstartState, setActive, setDirty, setFunction, setHasForebayHeadLoss, setName, setObsDataVector, setParentElement, setWaterControlDevice, toString, updateWQTSProxyList, writeDataMethods inherited from class hec.lang.NamedType
addModifiableListener, compareTo, fireModifiedStateChanged, getDescription, getIgnoreModifiedEvents, getIndex, getName, isModified, isValid, readResolve, removeModifiableListener, rename, set, setDescription, setIgnoreModifiedEvents, setIndex, setModified, setValid, update, useRecursiveModifiedTestMethods inherited from class java.util.Observable
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers, setChangedMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface hec.rss.model.OperationsElement
getChildElementAt, getChildElementCount, getElementType, getIndex, getName, getSystem, getUnitSystem
-
Field Details
-
CONTROL_STR
- See Also:
-
KNOWN_DIVERSION
- See Also:
-
-
Constructor Details
-
DiversionElement
public DiversionElement() -
DiversionElement
-
-
Method Details
-
getDivOpName
return the name of the ReservoirOp object associated with this element -
getLinkedElementList
Override default method in Element class to inlude inflow elements to source junction. return a new Listobject with either upstream (INFLOW) or downstream (OUTFLOW) linked elements - Overrides:
getLinkedElementListin classElement- Parameters:
direction- : Element.OUTFLOW or Element.INFLOW- Returns:
-
getDiversionVolume
returns the desired diversion volume for the given time step. Does not consider limitation by shortage -
getReferencedStateVariables
adds all StateVariables refereced by diversion rule to the given List -
getRuleConnectivityRefs
Returns a List of RuleConnectivityRef objects identifying all rule references to other objects in the network.- Overrides:
getRuleConnectivityRefsin classElement- Returns:
- ArrayList RuleConnectivityRef objects
-
disconnectDownstream
public void disconnectDownstream(double eoff, double noff) disconnects the diversion from downstream element and optionaly offsets the location of the downstream end- Parameters:
eoff- east offset in world coordinates added to downstream locationnoff- north offset in world coordinates added to downstream location
-
getComputedTSRecordProxies
requests vector of computed ts proxies from function Overrides method in Element class to return the diversion record and the routed diversion record if the diversion connects back to the network- Overrides:
getComputedTSRecordProxiesin classElement
-
updateDecisions
update operating decision (not implemented until full decision making logic is ported over from reservoir element)- Specified by:
updateDecisionsin interfaceReleaseElement- Parameters:
rts-iteration-
-
updateOperations
Updates the operating decisions for the given time step. -
initialize
initialize prior to a compute- Overrides:
initializein classElement
-
initForecastOperations
Initialzes adjustable parameter values over forecast time window- Specified by:
initForecastOperationsin interfaceReleaseElement
-
getDiversionProjectId
public long getDiversionProjectId() -
setDiversionProjectId
public void setDiversionProjectId(long id) -
setupForSerialization
public void setupForSerialization()Called just before ascii serialization. Prepares the paired data values by setting there dss record path names- Overrides:
setupForSerializationin classElement
-
getController
returns the controller from the diversion control element function -
clone
clone does a deep copy of child objects -
setActive
public void setActive(boolean active) Sets whether element is active for computation. Also sets nodes computed by this element to the sam active or inactive state. -
removeNode
override Element.removeNode to remove child routing element if necessary- Overrides:
removeNodein classElement
-
getControllerName
-
getControlElement
-
hasReach
public boolean hasReach() -
getReachElement
-
computeHindcastStep
computes a single hindcast time step- Overrides:
computeHindcastStepin classElement
-
computeForecastStep
computes a single forecast time step- Overrides:
computeForecastStepin classElement
-
computeHindcast
Compute diversion over hindcast time window- Overrides:
computeHindcastin classElement
-
computeForecast
Compute diversion over Forecast time window- Overrides:
computeForecastin classElement
-
getSourceElement
-
getRequiredTSRecordProxies
returns an the required proxies from the source element- Overrides:
getRequiredTSRecordProxiesin classElement
-
calcSeepageFlow
public double calcSeepageFlow(double flow) - Specified by:
calcSeepageFlowin interfaceSeepageConstants- Overrides:
calcSeepageFlowin classElement
-
getConstSeepage
public double getConstSeepage() -
setConstSeepage
public void setConstSeepage(double s) -
getConstSeepage
public void getConstSeepage(hec.data.ParamDouble pd) -
setConstSeepage
public void setConstSeepage(hec.data.ParamDouble pd) -
getReturnRatio
public double getReturnRatio() -
setReturnRatio
public void setReturnRatio(double s) -
getSeepageValues
-
setSeepageValues
-
getSeepageType
public int getSeepageType() -
setSeepageType
public boolean setSeepageType(int cond) -
getLine
public hec.map.WorldLine getLine() -
getReferencePt
public hec.map.WorldPt getReferencePt()- Overrides:
getReferencePtin classElement
-
setReferencePt
public void setReferencePt(hec.map.WorldPt pt) -
setLine
public void setLine(hec.map.WorldLine reg) -
getUpstreamNode
Description copied from class:Elementreturns the first upstream node in the node list- Overrides:
getUpstreamNodein classElement- Returns:
- the first upstream node in the node list
-
getDownstreamNode
Description copied from class:Elementreturns the first downstream node in the node list- Overrides:
getDownstreamNodein classElement
-
getDiversionNode
-
setFlowHindcastCondition
Deprecated. -
addNode
Description copied from class:Elementadds a node to this element -
convertRoutingElement
public void convertRoutingElement() -
getLineColor
-
getInflowType
public int getInflowType() -
setInflowType
public void setInflowType(int inFlowType) -
getComputeDuringUnReg
public boolean getComputeDuringUnReg() -
setComputeDuringUnReg
public void setComputeDuringUnReg(boolean b) -
getModelVariables
returns the model variables available for plotting method required by PlottableObject interface- Specified by:
getModelVariablesin interfacehec.watershed.res.model.PlottableObject- Overrides:
getModelVariablesin classElement- Parameters:
variableList- vector of model variables- Returns:
- updated vector of model variables
-
getDefaultModelVariables
Returns a list of Model Variables that are used in the default plot required by PlottableObject interface- Specified by:
getDefaultModelVariablesin interfacehec.watershed.res.model.PlottableObject- Overrides:
getDefaultModelVariablesin classElement- Returns:
- list of ModelVariable objects
-
getTSRecords
- Overrides:
getTSRecordsin classElement
-
importFrom
-
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 classElement- 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 classElement- 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
-
outputReport
Description copied from interface:AltInputReportInfcAlternative Input Report Interface for data.- Specified by:
outputReportin interfaceAltInputReportInfc
-
updateOperations
called to create the default operations set for older diversions- Parameters:
rssSystem-
-
getStorageFunction
- Specified by:
getStorageFunctionin interfaceOperationsElement- Returns:
-
getVerticalDatumSettings
- Specified by:
getVerticalDatumSettingsin interfaceOperationsElement- Returns:
-
setVeriticalDatumSettings
-
getCompositeRelease
- Specified by:
getCompositeReleasein interfaceOperationsElement
-
getDiversionOps
- Returns:
-
getElementOp
- Specified by:
getElementOpin interfaceOperationsElement- Returns:
-
getElementOp
- Specified by:
getElementOpin interfaceOperationsElement
-
getActiveTSProxies
returns a vector of required input, or generated output TSRecordProxies used in the current alternative default implementation elements, assume all records are active- Overrides:
getActiveTSProxiesin classElement
-
updateTSProxyList
public void updateTSProxyList()overrides Element.updateTSProxyList to also get proxies from active reservoir operations- Overrides:
updateTSProxyListin classElement
-
getRules
Adds rule references to the given vector. -
getConditionalBlockRefs
public List<ConditionalBlockRef> getConditionalBlockRefs(int opid, List<ConditionalBlockRef> condList) Adds all ConditionalBlockRefs utilized by the Operation Set matching the given OpSet Id. This method is intended to provide the list of ConditionalBlockRef that may be utilized during a compute in order to evaluate the logical connectivity within the reservoir network. This method may be called within or outside a compute.- Parameters:
opid- id number for an existing OpSetcondList- list object to hold the set of ConditionalBlockRef objects found by this method- Returns:
- the list of ConditionalBlockRef objects
-
getFillColorName
get the Fill Color name- Returns:
- the Fill Color name or null to use the default
-
setFillColorName
set the Fill Color name or null to use the default
-