Package hec.rss.model
Class Function
java.lang.Object
java.util.Observable
hec.lang.NamedType
hec.rss.model.RssTSLocationObject
hec.rss.model.Function
- All Implemented Interfaces:
AsciiSerializable,FieldAccessor,TSLocation,RssModelVariableConstants,RssReturnStatusConstants,RssTSLocation,Serializable,Cloneable,Comparable,Observer,rma.lang.Modifiable
- Direct Known Subclasses:
Continuity,ControlStructure,CumLocFunction,HoldoutFunction,PulseRoutingFunction,Routing
public abstract class Function
extends RssTSLocationObject
implements RssTSLocation, RssReturnStatusConstants, RssModelVariableConstants
- See Also:
-
Field Summary
Fields 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 TypeMethodDescriptionvoidapplies specific hindcast data for computevoidclone()clone methodintintcomputeForecastStep(RunTimeStep rts, double[] xt, double[] et, int tcount) intdoublecomputeSubStepFlow(RunTimeStep rts, double xt, double et) voidfindAdjParam(String param) getActiveTSProxies(Vector vec, int iotype) returns a vector of required input, or generated output TSRecordProxies used in the current alternative default implementation, assume all records are activereturns a vector of computed ts record proxies assuming the downstream flow is computedreturns a vector of computed ts record proxies assuming the downstream flow is computedreturns a name suitable to use as the location (B) part of a DSS pathnamegetFieldObject(Field fld) This method allows access to java.lang.reflect.Field objects within the implementing class.static doublegetFlowVolume(RunTimeStep rts, double[] array) return the flow volume for the given time step assuming that the flow array has already been calculatedstatic doublegetFlowVolume(RunTimeStep rts, double q0, double q1) return the flow volume for the given time step assuming that the flow array has already been calculatedbooleangetForecastEquation(RunTime runtime) Deprecated.returns a name suitable to use as the location (B) part of a DSS pathnamevoidgetHindcastDataList(Vector hvec) Default implementation of getHindcastDataList does not add any records to the list.booleangetHindcastEquation(RunTime runtime) Deprecated.Takes a object of class Element, Function, RssNode, OpController, or OpRule and returns a unique string identifying that object pass request to RssSystem This should be a TSLocation methodgetObjectForKeyString(String keystr) Takes a key string and returns the object of class Element, Function, Node, OpController, or OpRule Pass request to RssSystem This should be a TSLocation methodprotected StringGenerates a B Part that is used during storage to DSS when this function is saved.returns the Parent RssSytem of this functions elementintbooleanindicate if default function parameters have been changedbooleaninitialize prior to Forecast computation loop.booleanPrepares this run for post processing in the ResSim Simulation Module.booleaninitialize prior to Hindcast computation loop.booleaninitialize prior to a computeprotected voidinitTSVals(int istep) set estimated values for un-initialized time series variables at the given time stepbooleanisNodeComputed(int iorder, RssNode node, Integer idir) returns true if node is computed by the function, default is to return true if node is an outflow nodevoidprintErrorMessage(String msg) sends an error message with identification info to the systems UIvoidprintErrorMessage(String methodName, String msg) sends an error message with identification info to the systems UIbooleanreadData(BufferedReader input) voidresetParent(Element elem) resets the parent element and updates ownership of child objectsvoidrestoreFunctionState(int stateid) restore the state of the element and its function matching the given identifier - default behavior is to do nothingbooleanrestoreHotstartState(HotstartState parentHotstartState) voidsaveFunctionState(int stateid) save the current state of the element and its function with the given identifier - default behavior is to do nothingvoidsaveHotstartState(HotstartState parentHotstartState, int stateId) voidbooleansetFieldObject(Field fld, Object fobj) This allows access to fields withing the implementing object to set there data.voidcalled just before ascii serialization - default no-op implementationvoidRegenerates the list of all TSProxies required for this location.voidupdateWQTSProxyList(List<ModelVariable> conList) create WQ TS record proxies at all downstream nodesbooleanwriteData(BufferedWriter out) Methods 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, toString, 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
-
Function
public Function() -
Function
-
-
Method Details
-
cleanupFromDeSerialization
public void cleanupFromDeSerialization() -
initTSVals
protected void initTSVals(int istep) set estimated values for un-initialized time series variables at the given time step- Parameters:
istep-
-
getFlowVolume
return the flow volume for the given time step assuming that the flow array has already been calculated- Parameters:
rts-array-- Returns:
-
getFlowVolume
return the flow volume for the given time step assuming that the flow array has already been calculated- Parameters:
rts-array-- Returns:
-
getSystem
returns the Parent RssSytem of this functions element- Specified by:
getSystemin classRssTSLocationObject
-
printErrorMessage
sends an error message with identification info to the systems UI -
printErrorMessage
sends an error message with identification info to the systems UI -
applyHindcastData
applies specific hindcast data for compute -
getDisplayName
returns a name suitable to use as the location (B) part of a DSS pathname- Overrides:
getDisplayNamein classNamedType
-
getOutputBPart
Generates a B Part that is used during storage to DSS when this function is saved.- Returns:
- String
-
getFullName
returns a name suitable to use as the location (B) part of a DSS pathname -
setupForSerialization
public void setupForSerialization()called just before ascii serialization - default no-op implementation -
getHindcastDataList
Default implementation of getHindcastDataList does not add any records to the list. This method is overriden in specific functions that require hindcast data. -
getUnitSystem
public int getUnitSystem() -
resetParent
resets the parent element and updates ownership of child objects -
copyInto
-
clone
clone method- Overrides:
clonein classRssTSLocationObject
-
setElement
-
getElement
-
initialize
public boolean initialize()initialize prior to a compute -
initForPostProcessing
public boolean initForPostProcessing()Prepares this run for post processing in the ResSim Simulation Module. This routing sets up all data model connectivity, but does not load time series arrays.- Returns:
- RTN_NOPROBLEM if successful
-
initHindcastLoop
initialize prior to Hindcast computation loop. Default behavior is to return true when no initialization is requried. -
initForecastLoop
initialize prior to Forecast computation loop. Default behavior is to return true when no initialization is requried. -
saveFunctionState
public void saveFunctionState(int stateid) save the current state of the element and its function with the given identifier - default behavior is to do nothing- 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 - default behavior is to do nothing- Parameters:
stateid- identifier for the state
-
hasDefaultParameters
public boolean hasDefaultParameters()indicate if default function parameters have been changed -
findAdjParam
-
getForecastEquation
Deprecated. -
getHindcastEquation
Deprecated. -
computeHindcastStep
-
computeForecastStep
-
computeForecastStep
-
computeSubStepFlow
-
writeData
-
readData
-
getAdjustableParameter
-
getKeyStringForObject
Takes a object of class Element, Function, RssNode, OpController, or OpRule and returns a unique string identifying that object pass request to RssSystem This should be a TSLocation method -
getObjectForKeyString
Takes a key string and returns the object of class Element, Function, Node, OpController, or OpRule Pass request to RssSystem This should be a TSLocation method -
getActiveTSProxies
returns a vector of required input, or generated output TSRecordProxies used in the current alternative default implementation, assume all records are active -
updateTSProxyList
public void updateTSProxyList()Regenerates the list of all TSProxies required for this location. This list includes all records that are generated by this function even if the records are held in another objects (e.g. RssNode) proxy list sub-classes of Function should over-ride this method if they use TSRecordProxies- Specified by:
updateTSProxyListin classRssTSLocationObject
-
updateWQTSProxyList
create WQ TS record proxies at all downstream nodes- Parameters:
conList-
-
getComputedTSRecordProxies
returns a vector of computed ts record proxies assuming the downstream flow is computed -
getComputedTSRecordProxies
returns a vector of computed ts record proxies assuming the downstream flow is computed- Overrides:
getComputedTSRecordProxiesin classRssTSLocationObject
-
isNodeComputed
returns true if node is computed by the function, default is to return true if node is an outflow node- Parameters:
iorder- index of node in element vectornode- node objectidir- integer indicating whether node is inflow or outflow- Returns:
- true if computed, else false
-
saveHotstartState
-
restoreHotstartState
-
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 classRssTSLocationObject- 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 classRssTSLocationObject- 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
-