Package hec.rss.model
Class SsarrRouting
java.lang.Object
java.util.Observable
hec.lang.NamedType
hec.rss.model.RssTSLocationObject
hec.rss.model.Function
hec.rss.model.Routing
hec.rss.model.SsarrRouting
- All Implemented Interfaces:
AsciiSerializable,FieldAccessor,TSLocation,AltInputReportInfc,RssModelVariableConstants,RssReturnStatusConstants,RssTSLocation,Serializable,Cloneable,Comparable,Observer,rma.lang.Modifiable
- See Also:
-
Field Summary
Fields inherited from class hec.rss.model.Routing
_shouldCheckHotstart, FLOWFields 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 TypeMethodDescriptionclone()clone methodintcompute one routing step during forecastintcomputeRouting(RunTimeStep runtime) protected doublecomputeRoutingStep(double deltaT, double q0, double q1) compute reach outflow for current period: out1 = out0 + dt * ( InMean - out0 ) / ( TS + dt/2.doublecomputeRoutingStepStandalone(int rtsMinutes, double q0, double q1, double reachOutflow, double[] initSubOutflow, double[] finSubOutflow) Method to compute a time step of routing through a reach for an offline WQ simulation Default implementation - returns array of constant flows Actual routing methods implemented in individual subclassesvoidgetFieldObject(Field fld) This method allows access to java.lang.reflect.Field objects within the implementing class.doublegetKTS()doubleintintGet the number of subreaches in the routing reach Default method returns 1 - method implemented in individual subclassesdouble[]getSubreachFlowArray(double flowIn, double flowOut, int iStep) booleaninitialize prior to a computebooleanInitialize routing object for standalone compute in offline WQ simulation Default method - implemented in individual subclassesvoidoutputReport(AlternativeInputReport report, org.jdom.Element elem) Alternative Input Report Interface for data.booleanreadData(BufferedReader input) voidrestoreFunctionState(int stateid) restore the state of the element and its function matching the given identifier - restores subreach flowsbooleanrestoreHotstartState(HotstartState parentState) voidsaveFunctionState(int stateid) save the current state of the element and its function with the given identifier - saves subreach flowsvoidsaveHotstartState(HotstartState parentHotstartState, int stateId) booleansetFieldObject(Field fld, Object fobj) This allows access to fields withing the implementing object to set there data.voidsetIsSI(boolean isSI) voidsetKTS(double kts) voidsetNCoefficient(double ncoef) voidsetNumberReaches(int numberReaches) voidvoidCalled just before ascii serialization.voidsetUseTable(boolean tf) booleanuseTable()booleanwriteData(BufferedWriter out) Methods inherited from class hec.rss.model.Routing
checkForecastCalc, checkForecastCalc, checkForecastStepCalc, computeForecast, computeHindcast, computeRouting, estimateCoefRouting, getDefaultCoefArray, newRouteData, toStringMethods inherited from class hec.rss.model.Function
applyHindcastData, cleanupFromDeSerialization, computeForecastStep, computeHindcastStep, computeSubStepFlow, copyInto, findAdjParam, getActiveTSProxies, getAdjustableParameter, getComputedTSRecordProxies, getComputedTSRecordProxies, getDisplayName, getElement, getFlowVolume, getFlowVolume, getForecastEquation, getFullName, getHindcastDataList, getHindcastEquation, getKeyStringForObject, getObjectForKeyString, getOutputBPart, getSystem, getUnitSystem, hasDefaultParameters, initForecastLoop, initForPostProcessing, initHindcastLoop, initTSVals, isNodeComputed, printErrorMessage, printErrorMessage, resetParent, setElement, updateTSProxyList, updateWQTSProxyListMethods inherited from class hec.rss.model.RssTSLocationObject
addTSRecord, addTSRecordProxy, addTSRecordProxy, addTSRecordProxy, clearTSProxyList, copyInto, getActiveTSRecordProxies, 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, 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, setChangedMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface hec.rss.model.RssTSLocation
getTSRecordProxyMethods inherited from interface hec.model.TSLocation
getTSDataSet
-
Constructor Details
-
SsarrRouting
public SsarrRouting() -
SsarrRouting
-
-
Method Details
-
setupForSerialization
public void setupForSerialization()Called just before ascii serialization. Prepares the paired data values by setting there dss record path names- Overrides:
setupForSerializationin classFunction
-
clone
Description copied from class:Functionclone method -
saveFunctionState
public void saveFunctionState(int stateid) save the current state of the element and its function with the given identifier - saves subreach flows- Overrides:
saveFunctionStatein classFunction- Parameters:
stateid- identifier for the state
-
saveHotstartState
- Overrides:
saveHotstartStatein classFunction
-
restoreHotstartState
- Overrides:
restoreHotstartStatein classFunction
-
restoreFunctionState
public void restoreFunctionState(int stateid) restore the state of the element and its function matching the given identifier - restores subreach flows- Overrides:
restoreFunctionStatein classFunction- Parameters:
stateid- identifier for the state
-
computeRouting
- Overrides:
computeRoutingin classRouting
-
computeForecastStep
compute one routing step during forecast- Overrides:
computeForecastStepin classFunction
-
computeRoutingStep
protected double computeRoutingStep(double deltaT, double q0, double q1) compute reach outflow for current period: out1 = out0 + dt * ( InMean - out0 ) / ( TS + dt/2. ) where InMean = ( in0 + in1 )/2 TS = time of storage- Parameters:
deltaT- time step in hoursq0- reach inflow, begin of period ( previous step )q1- reach inflow, end of period ( current step )
-
initialize
public boolean initialize()Description copied from class:Routinginitialize prior to a compute- Overrides:
initializein classRouting
-
setOutflowTimeOfStorageTable
-
setNCoefficient
public void setNCoefficient(double ncoef) - Parameters:
ncoef- - "n" coefficient in TS = KTS/Q**n
-
getNCoefficient
public double getNCoefficient()- Returns:
- - "n" coefficient in TS = KTS/Q**n
-
setKTS
public void setKTS(double kts) - Parameters:
kts- - "KTS" coefficient in TS = KTS/Q**n
-
getKTS
public double getKTS()- Returns:
- - "KTS" coefficient in TS = KTS/Q**n
-
setUseTable
public void setUseTable(boolean tf) -
useTable
public boolean useTable() -
setNumberReaches
public void setNumberReaches(int numberReaches) - Parameters:
numberReaches- - number of subreaches or "phases"
-
getNumberReaches
public int getNumberReaches()- Returns:
- - number of subreaches or "phases"
-
getOutflowTimeOfStorageTable
- Returns:
- - outflow - time of storage table
-
setIsSI
public void setIsSI(boolean isSI) -
convertToWatershedUnits
public void convertToWatershedUnits() -
readData
-
writeData
-
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 classRouting- 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 classRouting- 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- Overrides:
outputReportin classRouting
-
initializeStandalone
public boolean initializeStandalone()Description copied from class:RoutingInitialize routing object for standalone compute in offline WQ simulation Default method - implemented in individual subclasses- Overrides:
initializeStandalonein classRouting- Returns:
- true if initialization successful, false o.w.
-
computeRoutingStepStandalone
public double computeRoutingStepStandalone(int rtsMinutes, double q0, double q1, double reachOutflow, double[] initSubOutflow, double[] finSubOutflow) Description copied from class:RoutingMethod to compute a time step of routing through a reach for an offline WQ simulation Default implementation - returns array of constant flows Actual routing methods implemented in individual subclasses- Overrides:
computeRoutingStepStandalonein classRouting- Parameters:
q0- initial flow into upstream subreachq1- flow at end of time step into upstream subreachreachOutflow- flow at end of the reach - used for coef routinginitSubOutflow- array of subreach flows at start of time stepfinSubOutflow- array of subreach flows at end of time step- Returns:
- flow at the end of the reach at end of time step
-
getSubreachFlowArray
public double[] getSubreachFlowArray(double flowIn, double flowOut, int iStep) - Overrides:
getSubreachFlowArrayin classRouting
-
getNumberSubreaches
public int getNumberSubreaches()Description copied from class:RoutingGet the number of subreaches in the routing reach Default method returns 1 - method implemented in individual subclasses- Overrides:
getNumberSubreachesin classRouting- Returns:
- number of subreaches in reach with routing
-