Class BlowdownValve

All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, TwoPortInterface, ValveInterface, SimulationInterface, NamedInterface

public class BlowdownValve extends ThrottlingValve
Blowdown Valve (BDValve) for emergency depressurization systems (ESD).

A blowdown valve is a normally closed isolation valve that opens during emergency shutdown (ESD) events to rapidly depressurize process equipment. The flow through the valve is controlled by a downstream orifice to ensure safe and controlled depressurization rates.

Key features:

  • Normally closed valve for emergency depressurization
  • Opens on ESD activation signal
  • Configurable opening time
  • Manual activation and reset capability
  • Typically used with downstream orifice for flow control

Typical usage in ESD system:

// Create separator with gas outlet
Separator separator = new Separator("HP Separator", feedStream);
separator.run();

// Split gas outlet - one to normal process, one to blowdown
Splitter splitter = new Splitter("Gas Splitter", separator.getGasOutStream());
splitter.setSplitFactors(new double[] {1.0, 0.0}); // Initially all to process

// Create blowdown valve (normally closed)
BlowdownValve bdValve = new BlowdownValve("BD-101", splitter.getSplitStream(1));
bdValve.setOpeningTime(5.0); // 5 seconds to fully open

// Create orifice to control blowdown flow rate
ThrottlingValve orifice = new ThrottlingValve("BD Orifice", bdValve.getOutletStream());
orifice.setCv(150.0); // Size for controlled depressurization
orifice.setOutletPressure(1.5); // Flare header pressure

// In emergency situation
bdValve.activate(); // Open blowdown valve
splitter.setSplitFactors(new double[] {0.0, 1.0}); // Redirect flow to blowdown

// In dynamic simulation loop
system.runTransient(dt, UUID.randomUUID());
// Valve gradually opens and gas flows to flare through orifice
Version:
$Id: $Id
Author:
ESOL
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • isActivated

      private boolean isActivated
      Indicates if blowdown valve has been activated (ESD triggered).
    • openingTime

      private double openingTime
      Time required for valve to fully open (seconds).
    • isOpening

      private boolean isOpening
      Track if valve opening is in progress.
    • timeElapsed

      private double timeElapsed
      Time elapsed since activation started (seconds).
  • Constructor Details

    • BlowdownValve

      public BlowdownValve(String name)
      Constructor for BlowdownValve.
      Parameters:
      name - name of blowdown valve
    • BlowdownValve

      public BlowdownValve(String name, StreamInterface inletStream)
      Constructor for BlowdownValve.
      Parameters:
      name - name of blowdown valve
      inletStream - inlet stream to valve
  • Method Details

    • setOpeningTime

      public void setOpeningTime(double openingTime)
      Sets the valve opening time.
      Parameters:
      openingTime - time in seconds for valve to open completely
    • getOpeningTime

      public double getOpeningTime()
      Gets the configured opening time.
      Returns:
      opening time in seconds
    • isActivated

      public boolean isActivated()
      Checks if blowdown valve is activated.
      Returns:
      true if valve has been activated (ESD triggered)
    • activate

      public void activate()
      Activates the blowdown valve (simulates ESD trigger).

      When activated, the valve will begin opening according to the configured opening time. This simulates the emergency shutdown system triggering the blowdown valve to depressurize the equipment.

    • reset

      public void reset()
      Resets the blowdown valve to its initial closed state.

      This simulates the process of resetting the ESD system after an emergency event. In real operations, this would require operator action and verification that the system is safe to restart.

    • close

      public void close()
      Manually closes the blowdown valve.

      This allows manual closure of the valve after depressurization is complete.

    • getTimeElapsed

      public double getTimeElapsed()
      Gets the current time elapsed since activation.
      Returns:
      time elapsed in seconds
    • runTransient

      public void runTransient(double dt, UUID id)
      Performs dynamic simulation step with automatic opening logic.

      If the valve has been activated, it will gradually open according to the configured opening time until fully open (100%).

      Specified by:
      runTransient in interface SimulationInterface
      Overrides:
      runTransient in class ThrottlingValve
      Parameters:
      dt - time step in seconds
      id - unique identifier for this calculation
    • isOpening

      public boolean isOpening()
      Checks if valve is currently in the process of opening.
      Returns:
      true if valve is opening
    • toString

      public String toString()
      Gets a string representation of the blowdown valve state.
      Overrides:
      toString in class Object
      Returns:
      string describing valve state including activation status