Package hec.rss.model
Class PulsChannelRoutingWithLosses
java.lang.Object
java.util.Observable
hec.lang.NamedType
hec.rss.model.RssTSLocationObject
hec.rss.model.Function
hec.rss.model.Routing
hec.rss.model.PulsChannelRoutingWithLosses
- All Implemented Interfaces:
AsciiSerializable,FieldAccessor,TSLocation,AltInputReportInfc,RssModelVariableConstants,RssReturnStatusConstants,RssTSLocation,Serializable,Cloneable,Comparable,Observer,rma.lang.Modifiable
- Direct Known Subclasses:
WorkingRDRouting
Modified Puls Channel Routing (with losses) and Working Rinvalid input: '&D' Routing
- 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 TypeMethodDescriptionvoidclone()clone methodintcompute one routing step during forecastintcomputeRouting(RunTimeStep runtime) intcomputeRouting(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 arraysvoidThis method converts the metric data to watershed units.voidcopyDataFromPulChannelRouting(PulsChannelRouting oldRoutingFunction) Copy relavent data from PulsChannelRouting function into current PulsChannelRoutingWithLosses function.voidgetFieldObject(Field fld) This method allows access to java.lang.reflect.Field objects within the implementing class.booleanvoidgetinvertElevation(hec.data.ParamDouble pd) doubleintintGet the number of subreaches in the routing reach Default method returns 1 - method implemented in individual subclassesvoidgetpercolationRate(hec.data.ParamDouble pd) double[]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 subclassescreate 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.voidsetHasChannelLosses(boolean tf) voidsetinvertElevation(hec.data.ParamDouble pd) voidsetIsSI(boolean isSI) voidsetMuskingumX(double x) voidsetnumberReaches(int numberReaches) voidsetpercolationRate(hec.data.ParamDouble pd) voidsetPulsVector(Vector vec) Methods inherited from class hec.rss.model.Routing
checkForecastCalc, checkForecastCalc, checkForecastStepCalc, computeForecast, computeHindcast, computeRoutingStepStandalone, 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, hasDefaultParameters, 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
-
PulsChannelRoutingWithLosses
public PulsChannelRoutingWithLosses() -
PulsChannelRoutingWithLosses
-
-
Method Details
-
clone
Description copied from class:Functionclone method -
getMuskingumX
public double getMuskingumX() -
setMuskingumX
public void setMuskingumX(double x) -
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
-
computeForecastStep
compute one routing step during forecast- Overrides:
computeForecastStepin classFunction
-
initialize
public boolean initialize()Description copied from class:Routinginitialize prior to a compute- Overrides:
initializein classRouting
-
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
-
setinvertElevation
public void setinvertElevation(hec.data.ParamDouble pd) -
setnumberReaches
public void setnumberReaches(int numberReaches) -
getPulsVector
-
setPulsVector
-
addPulsRecord
-
emptyPulsVector
public void emptyPulsVector() -
getinvertElevation
public void getinvertElevation(hec.data.ParamDouble pd) -
setpercolationRate
public void setpercolationRate(hec.data.ParamDouble pd) -
getpercolationRate
public void getpercolationRate(hec.data.ParamDouble pd) -
getnumberReaches
public int getnumberReaches() -
setIsSI
public void setIsSI(boolean isSI) -
setHasChannelLosses
public void setHasChannelLosses(boolean tf) -
getHasChannelLosses
public boolean getHasChannelLosses() -
convertToWatershedUnits
public void convertToWatershedUnits()This method converts the metric data to watershed units. This should only be called by the RssSystem object when updates occur. The old storage system always stored in metric -
copyDataFromPulChannelRouting
Copy relavent data from PulsChannelRouting function into current PulsChannelRoutingWithLosses function. PulsChannelRouting will no longer be used.- Parameters:
oldRoutingFunction- Old PulsChannelRouting function
-
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
-
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
-