Package hec.rss.model
Class ReservoirSystemGroup
java.lang.Object
hec.rss.model.ReservoirSystemGroup
- All Implemented Interfaces:
RssModelVariableConstants
Manages a group of Elements connected to and including a ReservoirElement
which is part of a ReservoirSystem
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic doubleconvert dsdt to flow for computestatic final doubleconvert ac-ft/sec to cfsstatic final doubleconvert m^3/sec to cmsFields 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_OFFSET -
Constructor Summary
ConstructorsConstructorDescriptionDefault ConstructorReservoirSystemGroup(ReservoirSystem sys, ReservoirElement res, ReservoirElement[] resArray) Constructor that automatically creates upstream element network and time- series dependencies -
Method Summary
Modifier and TypeMethodDescriptionvoidbuildElementList(ReservoirElement[] resArray) doublecalcInflowVol(RunTimeStep rts, int istep, int periodSteps) calculates the inflow volume to this group over the remaining periodvoidcalcPeriodPowerData(RunTimePeriod rtp, DecisionEngine dEngine, SystemHydropowerRule sysHydRule) first calculation of reservoir group power data called from SystemHydropowerRule.evaluateLimits()doublecalculate the energy generation during this period up to start of this time stepdoublecalculate the energy generation during this remainder of perioddoublecalcResLossVol(RunTimeStep rts, int istep, int periodSteps) calculate reservoir loss volume due to seepage and evaporation over remainder of period.voidgetGenPatternLimits(double[] maxPattern, double[] minPattern) copy previously computed max and min generation patterns into the given arraysdoubledoubledoublereturns the primary reservoir for this groupdoublegetStor0()doublegetStorage(RunTimePeriod rtp) voidinitCompute(RunTimeWindow rtw) called after all reservoir groups in a system have been created to finalize connectivity variables and initialize some transientsbooleanisActive()returns whether this group is actively managedvoidsetActive(boolean b, SystemHydropowerOpRule rule) indicates whether this group is actively managedvoidsetPumpVol(RunTimePeriod rtp, double vol) sets the desired pumpback generation value, must be less than previously computed value of pump generation capacity.voidwriteBalDebugOutput(BufferedWriter bufout, String delim) voidwriteBalDebugOutputHeader(BufferedWriter bufout, String delim) voidwriteDebugOutput(BufferedWriter bufout, String delim) voidwriteDebugOutputHeader(BufferedWriter bufout, String delim)
-
Field Details
-
DSDT_TO_FLOW_ENGLISH
public static final double DSDT_TO_FLOW_ENGLISHconvert ac-ft/sec to cfs- See Also:
-
DSDT_TO_FLOW_SI
public static final double DSDT_TO_FLOW_SIconvert m^3/sec to cms- See Also:
-
DSDT_TO_FLOW
public static double DSDT_TO_FLOWconvert dsdt to flow for compute
-
-
Constructor Details
-
ReservoirSystemGroup
public ReservoirSystemGroup()Default Constructor -
ReservoirSystemGroup
Constructor that automatically creates upstream element network and time- series dependencies- Parameters:
res- Reservoir at the downstream root of this groupresArray- All reservoirs in the reservoir system that produce power
-
-
Method Details
-
writeBalDebugOutputHeader
- Throws:
IOException
-
writeBalDebugOutput
- Throws:
IOException
-
getStor0
public double getStor0() -
writeDebugOutputHeader
- Throws:
IOException
-
writeDebugOutput
- Throws:
IOException
-
setActive
indicates whether this group is actively managed- Parameters:
b-
-
isActive
public boolean isActive()returns whether this group is actively managed -
calcPreviousGeneration
calculate the energy generation during this period up to start of this time step- Parameters:
rtp-- Returns:
-
getPrevGen
public double getPrevGen() -
calcRemainingPeriodGen
calculate the energy generation during this remainder of period- Parameters:
rtp-- Returns:
-
getStorage
-
calcPeriodPowerData
public void calcPeriodPowerData(RunTimePeriod rtp, DecisionEngine dEngine, SystemHydropowerRule sysHydRule) first calculation of reservoir group power data called from SystemHydropowerRule.evaluateLimits()- Parameters:
rtp-
-
calcInflowVol
calculates the inflow volume to this group over the remaining period- Parameters:
rts- current RunTimeStepistep- current step within the generation periodperiodSteps- number of steps in the generation period- Returns:
- the inflow volume in ac-ft or m^3
-
calcResLossVol
calculate reservoir loss volume due to seepage and evaporation over remainder of period.- Parameters:
rts-istep-periodSteps-- Returns:
-
getMinRelVol
public double getMinRelVol() -
getMaxRelVol
public double getMaxRelVol() -
getGenPatternLimits
public void getGenPatternLimits(double[] maxPattern, double[] minPattern) copy previously computed max and min generation patterns into the given arrays- Parameters:
maxPattern-minPattern-
-
setPumpVol
sets the desired pumpback generation value, must be less than previously computed value of pump generation capacity.- Parameters:
vol- desired pumpback volume
-
buildElementList
-
getReservoir
returns the primary reservoir for this group- Returns:
-
initCompute
called after all reservoir groups in a system have been created to finalize connectivity variables and initialize some transients
-