Package hec.rss.model
Class DivertedOutletElement
java.lang.Object
java.util.Observable
hec.lang.NamedType
hec.rss.model.Element
hec.rss.model.ReservoirOutletElement
hec.rss.model.DivertedOutletElement
- All Implemented Interfaces:
AsciiSerializable,FieldAccessor,TSLocation,PlotVariableConstants,AltInputReportInfc,RssModelVariableConstants,RssReturnStatusConstants,RssTSLocation,SeepageConstants,TailElevContainer,hec.watershed.res.model.PlottableObject,Serializable,Cloneable,Comparable,Observer,rma.lang.Modifiable
public class DivertedOutletElement
extends ReservoirOutletElement
implements SeepageConstants, TailElevContainer, AltInputReportInfc
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intstatic final intFields 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 TypeMethodDescriptionvoidaddChildElement(Element child) override Element method to handle connectivityvoidoverride add node to make connections to child elementsdoublecalcSeepageFlow(double flow) clone()clone does a deep copy of child objectsintcomputes a single forecast time stepintcomputes a single hindcast time step - skips routingvoidvoiddisconnectDownstream(double eoff, double noff) disconnects the diversion from downstream element and optionaly offsets the location of the downstream enddoublevoidgetConstSeepage(hec.data.ParamDouble pd) Returns a list of Model Variables that are used in the default plot required by PlottableObject interfacelongreturns the first downstream node in the node listgetDownstreamNodes(List vec) returns all downstream nodes in the node list does not recurse through child elementsgetFieldObject(Field fld) This method allows access to java.lang.reflect.Field objects within the implementing class.inthec.map.WorldLinegetLine()getModelVariables(Vector variableList) returns the model variables available for plotting method required by PlottableObject interfacehec.map.WorldPtdoubleintreturns the downstream node of the tailwater child elementgetTSRecords(ModelVariable plotVariable, Vector proxyList) this is actually returning the Diverted outlet elements tailwater outflowbooleanDetermines whether the diverted outlet has any controlled or uncontrolled outletsbooleandetermines whether the diversion has one or more power plantsbooleanhasReach()booleanreturns boolean indicating whether this element has a tailwater elevationbooleaninitialize(RunTimeWindow rtw) initialize prior to a computebooleanTest if diverted outlet is connected back to a stream elementvoidoutputReport(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.voidsetActive(boolean active, boolean recurse) Override default Element.setActive to set the reach inactive when there is no down stream connection.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.voidsetHasTailElev(boolean b) activates/deactivates tailwater elevationvoidsetInflowType(int inFlowType) voidsetLine(hec.map.WorldLine reg) voidvoidsetReferencePt(hec.map.WorldPt pt) voidsetReturnRatio(double s) booleansetSeepageType(int cond) voidvoidCalled just before ascii serialization.Methods inherited from class hec.rss.model.ReservoirOutletElement
getPowerPlants, getPulseFlow, getPulseFlow, getRuleConnectivityRefs, getUseDefaultPulseFlow, setpulseFlow, setPulseFlow, setUseDefaultPulseFlowMethods inherited from class hec.rss.model.Element
addChildElementAt, addNode, applyHindcastData, children, cleanupFromDeSerialization, cleanVectors, clearTSProxyList, computeForecast, computeForecastStep, computeHindcast, computeSubStepFlow, copyInto, createHotstartState, dispose, dispose, downStreamFrom, findAdjParam, findAdjParam, findElement, getActiveStateVariables, getActiveTSProxies, getChildElementAt, getChildElementCount, getComputedTSRecordProxies, getComputedTSRecordProxies_old, getDisplayName, getDownstreamElements, getEffectiveElev, getElement, getElementByName, getElementsByClass, getElementType, getElementTypeId, getElementVector, getFlowContolTSRecordProxies, getForebayHeadLoss, getForecastEquation, getFullName, getFunction, getHindcastDataList, getHindcastEquation, getKeyStringForObject, getLinkedElementList, getNode, getNodeCount, getNodeDir, getNodeDirVector, getNodeVector, getObjectForKeyString, getObjectTypeId, getObsDataVector, getOutletElementList, getOutletElementList, getOutputBPart, getParent, getPlotTypeDirectory, getPlotTypeFile, getPlotTypeNames, getPlotTypes, getPrevEffectiveElev, getReleaseElements, getRequiredTSRecordProxies, 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, setDirty, setFunction, setHasForebayHeadLoss, setName, setObsDataVector, setWaterControlDevice, toString, updateTSProxyList, 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, setChanged
-
Field Details
-
TAILWATER_CHILD_ID
public static final int TAILWATER_CHILD_ID- See Also:
-
REACH_CHILD_ID
public static final int REACH_CHILD_ID- See Also:
-
-
Constructor Details
-
DivertedOutletElement
public DivertedOutletElement() -
DivertedOutletElement
-
-
Method Details
-
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
-
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
-
getDiversionProjectId
public long getDiversionProjectId() -
setDiversionProjectId
public void setDiversionProjectId(long id) -
getCompositeRelease
-
setupForSerialization
public void setupForSerialization()Called just before ascii serialization. Prepares the paired data values by setting there dss record path names- Overrides:
setupForSerializationin classElement
-
initialize
Description copied from class:Elementinitialize prior to a compute- Overrides:
initializein classElement
-
getTailwaterElement
-
getTailwaterElevation
- Specified by:
getTailwaterElevationin interfaceTailElevContainer
-
setParentElement
- Overrides:
setParentElementin classElement
-
setHasTailElev
public void setHasTailElev(boolean b) Description copied from interface:TailElevContaineractivates/deactivates tailwater elevation- Specified by:
setHasTailElevin interfaceTailElevContainer
-
hasTailElev
public boolean hasTailElev()Description copied from interface:TailElevContainerreturns boolean indicating whether this element has a tailwater elevation- Specified by:
hasTailElevin interfaceTailElevContainer
-
hasPowerPlant
public boolean hasPowerPlant()determines whether the diversion has one or more power plants- Returns:
- true if there is at least one power plant
-
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. if there are no controlled or uncontrolled outlets for this diverted outlet then it is never set active -
removeNode
override Element.removeNode to remove child routing element if necessary- Overrides:
removeNodein classElement
-
hasReach
public boolean hasReach() -
isConnected
public boolean isConnected()Test if diverted outlet is connected back to a stream element- Returns:
- true if reach is connected to a downstream location
-
getReachElement
-
calcSeepageFlow
public double calcSeepageFlow(double flow) - Specified by:
calcSeepageFlowin interfaceSeepageConstants- Overrides:
calcSeepageFlowin classElement
-
computeHindcastStep
computes a single hindcast time step - skips routing- Overrides:
computeHindcastStepin classElement
-
computeForecastStep
computes a single forecast time step- Overrides:
computeForecastStepin 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
this is actually returning the Diverted outlet elements tailwater outflow- Overrides:
getUpstreamNodein classElement- Returns:
- RssNode at the tailwater outflow
-
getDownstreamNode
Description copied from class:Elementreturns the first downstream node in the node list- Overrides:
getDownstreamNodein classElement
-
getDownstreamNodes
Description copied from class:Elementreturns all downstream nodes in the node list does not recurse through child elements- Overrides:
getDownstreamNodesin classElement
-
getReachNode
-
convertRoutingElement
public void convertRoutingElement() -
addNode
override add node to make connections to child elements -
getTailNode
returns the downstream node of the tailwater child element -
addChildElement
override Element method to handle connectivity- Overrides:
addChildElementin classElement
-
setActive
public void setActive(boolean active, boolean recurse) Override default Element.setActive to set the reach inactive when there is no down stream connection. -
hasOutlets
public boolean hasOutlets()Determines whether the diverted outlet has any controlled or uncontrolled outlets- Returns:
- true if there are outlets
-
getLineColor
-
getInflowType
public int getInflowType() -
setInflowType
public void setInflowType(int inFlowType) -
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 classReservoirOutletElement- 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 classReservoirOutletElement- 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
-