Package hec.rss.model

Class ReservoirSystemGroup

java.lang.Object
hec.rss.model.ReservoirSystemGroup
All Implemented Interfaces:
RssModelVariableConstants

public class ReservoirSystemGroup extends Object implements RssModelVariableConstants
Manages a group of Elements connected to and including a ReservoirElement which is part of a ReservoirSystem
  • Field Details

    • DSDT_TO_FLOW_ENGLISH

      public static final double DSDT_TO_FLOW_ENGLISH
      convert ac-ft/sec to cfs
      See Also:
    • DSDT_TO_FLOW_SI

      public static final double DSDT_TO_FLOW_SI
      convert m^3/sec to cms
      See Also:
    • DSDT_TO_FLOW

      public static double DSDT_TO_FLOW
      convert dsdt to flow for compute
  • Constructor Details

    • ReservoirSystemGroup

      public ReservoirSystemGroup()
      Default Constructor
    • ReservoirSystemGroup

      public ReservoirSystemGroup(ReservoirSystem sys, ReservoirElement res, ReservoirElement[] resArray)
      Constructor that automatically creates upstream element network and time- series dependencies
      Parameters:
      res - Reservoir at the downstream root of this group
      resArray - All reservoirs in the reservoir system that produce power
  • Method Details

    • writeBalDebugOutputHeader

      public void writeBalDebugOutputHeader(BufferedWriter bufout, String delim) throws IOException
      Throws:
      IOException
    • writeBalDebugOutput

      public void writeBalDebugOutput(BufferedWriter bufout, String delim) throws IOException
      Throws:
      IOException
    • getStor0

      public double getStor0()
    • writeDebugOutputHeader

      public void writeDebugOutputHeader(BufferedWriter bufout, String delim) throws IOException
      Throws:
      IOException
    • writeDebugOutput

      public void writeDebugOutput(BufferedWriter bufout, String delim) throws IOException
      Throws:
      IOException
    • setActive

      public void setActive(boolean b, SystemHydropowerOpRule rule)
      indicates whether this group is actively managed
      Parameters:
      b -
    • isActive

      public boolean isActive()
      returns whether this group is actively managed
    • calcPreviousGeneration

      public double calcPreviousGeneration(RunTimePeriod rtp)
      calculate the energy generation during this period up to start of this time step
      Parameters:
      rtp -
      Returns:
    • getPrevGen

      public double getPrevGen()
    • calcRemainingPeriodGen

      public double calcRemainingPeriodGen(RunTimePeriod rtp)
      calculate the energy generation during this remainder of period
      Parameters:
      rtp -
      Returns:
    • getStorage

      public double getStorage(RunTimePeriod rtp)
    • calcPeriodPowerData

      public void calcPeriodPowerData(RunTimePeriod rtp, DecisionEngine dEngine, SystemHydropowerRule sysHydRule)
      first calculation of reservoir group power data called from SystemHydropowerRule.evaluateLimits()
      Parameters:
      rtp -
    • calcInflowVol

      public double calcInflowVol(RunTimeStep rts, int istep, int periodSteps)
      calculates the inflow volume to this group over the remaining period
      Parameters:
      rts - current RunTimeStep
      istep - current step within the generation period
      periodSteps - number of steps in the generation period
      Returns:
      the inflow volume in ac-ft or m^3
    • calcResLossVol

      public double calcResLossVol(RunTimeStep rts, int istep, int periodSteps)
      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

      public void setPumpVol(RunTimePeriod rtp, double vol)
      sets the desired pumpback generation value, must be less than previously computed value of pump generation capacity.
      Parameters:
      vol - desired pumpback volume
    • buildElementList

      public void buildElementList(ReservoirElement[] resArray)
    • getReservoir

      public ReservoirElement getReservoir()
      returns the primary reservoir for this group
      Returns:
    • initCompute

      public void initCompute(RunTimeWindow rtw)
      called after all reservoir groups in a system have been created to finalize connectivity variables and initialize some transients