Package hec.rss.model
Class MuskingumRouting
java.lang.Object
java.util.Observable
hec.lang.NamedType
hec.rss.model.RssTSLocationObject
hec.rss.model.Function
hec.rss.model.Routing
hec.rss.model.MuskingumRouting
- All Implemented Interfaces:
AsciiSerializable,FieldAccessor,TSLocation,AltInputReportInfc,RssModelVariableConstants,RssReturnStatusConstants,RssTSLocation,Serializable,Cloneable,Comparable,Observer,rma.lang.Modifiable
- See Also:
-
Nested Class Summary
Nested Classes -
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 forecastintintcomputeRouting(RunTimeStep rts, double[] inputTS, double[] outputTS, Object[] routingDataTS, double[] routed) Compute routing over the given time window using the provided input, output, and routing data object time series arraysdoublecomputeRoutingStep(double deltaT, double q0, double q1, MuskingumRouting.SubReachData initSubOutflow, MuskingumRouting.SubReachData finSubOutflow) 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 subclassesgetFieldObject(Field fld) This method allows access to java.lang.reflect.Field objects within the implementing class.double[]double[]intintGet the number of subreaches in the routing reach Default method returns 1 - method implemented in individual subclassesdouble[]getSubreachFlowArray(double flowIn, double flowOut, int iStep) booleantest whether default K and X values have been changedbooleaninitialize prior to a computebooleanInitialize routing object for standalone compute in offline WQ simulation Default method - implemented in individual subclassesstatic voidcreate a new empty RouteData object for ResSim v4 computevoidoutputReport(AlternativeInputReport report, org.jdom.Element elem) Alternative Input Report Interface for data.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.voidsetmuskingumK(double[] muskingumK) voidsetmuskingumX(double[] muskingumX) voidsetnumberReaches(int numberReaches) Methods inherited from class hec.rss.model.Routing
checkForecastCalc, checkForecastCalc, checkForecastStepCalc, computeForecast, computeHindcast, estimateCoefRouting, getDefaultCoefArray, 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, initForecastLoop, initForPostProcessing, initHindcastLoop, initTSVals, isNodeComputed, printErrorMessage, printErrorMessage, readData, resetParent, setElement, setupForSerialization, updateTSProxyList, updateWQTSProxyList, writeDataMethods 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
-
MuskingumRouting
public MuskingumRouting() -
MuskingumRouting
-
-
Method Details
-
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
-
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
-
saveHotstartState
- Overrides:
saveHotstartStatein classFunction
-
restoreHotstartState
- Overrides:
restoreHotstartStatein classFunction
-
computeForecastStep
compute one routing step during forecast- Overrides:
computeForecastStepin classFunction
-
computeRouting
public int computeRouting(RunTimeStep rts, double[] inputTS, double[] outputTS, Object[] routingDataTS, double[] routed) Compute routing over the given time window using the provided input, output, and routing data object time series arrays- Overrides:
computeRoutingin classRouting- Parameters:
rts- time step and number of stepsinputTS- upstream flow time seriesoutputTS- previously computed downstream flow time seriesroutingDataTS- additional time depended routing data if needed for the routing methodrouted- newly computed downstream flow (array size must be >= rts.nstep)- Returns:
- return flag, RssReturnStatusConstants.RTN_NOPROBLEM if routing computed successfully
-
computeRouting
- Overrides:
computeRoutingin classRouting
-
computeRoutingStep
public double computeRoutingStep(double deltaT, double q0, double q1, MuskingumRouting.SubReachData initSubOutflow, MuskingumRouting.SubReachData finSubOutflow) -
initialize
public boolean initialize()Description copied from class:Routinginitialize prior to a compute- Overrides:
initializein classRouting
-
hasDefaultParameters
public boolean hasDefaultParameters()test whether default K and X values have been changed- Overrides:
hasDefaultParametersin classFunction
-
setmuskingumK
public void setmuskingumK(double[] muskingumK) -
setmuskingumX
public void setmuskingumX(double[] muskingumX) -
setnumberReaches
public void setnumberReaches(int numberReaches) -
getmuskingumK
public double[] getmuskingumK() -
getmuskingumX
public double[] getmuskingumX() -
getnumberReaches
public int getnumberReaches() -
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
-
main
-
outputReport
Description copied from interface:AltInputReportInfcAlternative Input Report Interface for data.- Specified by:
outputReportin interfaceAltInputReportInfc- Overrides:
outputReportin classRouting
-
newRouteData
create a new empty RouteData object for ResSim v4 compute- Overrides:
newRouteDatain 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.
-
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
-
getSubreachFlowArray
public double[] getSubreachFlowArray(double flowIn, double flowOut, int iStep) - Overrides:
getSubreachFlowArrayin classRouting
-
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
-