Class Ejector

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

public class Ejector extends ProcessEquipmentBaseClass
Ejector class represents an ejector in a process simulation. It mixes a motive stream with a suction stream and calculates the resulting mixed stream using a quasi one-dimensional formulation. The implementation combines energy and momentum balances commonly used in steam-jet ejector design as summarised by Keenan et al. (1950) and ESDU 86030.
See Also:
  • Field Details

    • serialVersionUID

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

      private static final org.apache.logging.log4j.Logger logger
    • motiveStream

      private StreamInterface motiveStream
    • suctionStream

      private StreamInterface suctionStream
    • mixedStream

      private StreamInterface mixedStream
    • dischargePressure

      private double dischargePressure
    • mixingPressure

      private double mixingPressure
    • efficiencyIsentropic

      private double efficiencyIsentropic
    • diffuserEfficiency

      private double diffuserEfficiency
    • designSuctionVelocity

      private double designSuctionVelocity
    • designDiffuserOutletVelocity

      private double designDiffuserOutletVelocity
    • designSuctionVelocityOverride

      private boolean designSuctionVelocityOverride
    • designDiffuserVelocityOverride

      private boolean designDiffuserVelocityOverride
    • suctionConnectionLength

      private double suctionConnectionLength
    • dischargeConnectionLength

      private double dischargeConnectionLength
    • suctionConnectionLengthOverride

      private boolean suctionConnectionLengthOverride
    • dischargeConnectionLengthOverride

      private boolean dischargeConnectionLengthOverride
    • mechanicalDesign

      private transient EjectorMechanicalDesign mechanicalDesign
    • BAR_TO_PA

      private static final double BAR_TO_PA
      See Also:
    • DEFAULT_NOZZLE_LENGTH_FACTOR

      private static final double DEFAULT_NOZZLE_LENGTH_FACTOR
      See Also:
    • DEFAULT_SUCTION_LENGTH_FACTOR

      private static final double DEFAULT_SUCTION_LENGTH_FACTOR
      See Also:
    • DEFAULT_MIXING_LENGTH_FACTOR

      private static final double DEFAULT_MIXING_LENGTH_FACTOR
      See Also:
    • DEFAULT_DIFFUSER_LENGTH_FACTOR

      private static final double DEFAULT_DIFFUSER_LENGTH_FACTOR
      See Also:
  • Constructor Details

    • Ejector

      public Ejector(String name, StreamInterface motiveStream, StreamInterface suctionStream)
      Constructs an Ejector with the specified name, motive stream, and suction stream.
      Parameters:
      name - the name of the ejector
      motiveStream - the motive stream
      suctionStream - the suction stream
  • Method Details

    • setDischargePressure

      public void setDischargePressure(double dischargePressure)

      Setter for the field dischargePressure.

      Parameters:
      dischargePressure - a double
    • setEfficiencyIsentropic

      public void setEfficiencyIsentropic(double efficiencyIsentropic)

      Setter for the field efficiencyIsentropic.

      Parameters:
      efficiencyIsentropic - a double
    • setDiffuserEfficiency

      public void setDiffuserEfficiency(double diffuserEfficiency)

      Setter for the field diffuserEfficiency.

      Parameters:
      diffuserEfficiency - a double
    • setThroatArea

      public void setThroatArea(double throatArea)

      Setter for the field throatArea.

      Parameters:
      throatArea - a double
    • setMixingPressure

      public void setMixingPressure(double mixingPressure)
      Sets the target mixing pressure within the ejector. If not set the suction pressure is used.
      Parameters:
      mixingPressure - the mixing pressure in bara
    • setDesignSuctionVelocity

      public void setDesignSuctionVelocity(double velocity)
      Sets the design suction velocity used when calculating mechanical dimensions.
      Parameters:
      velocity - velocity in m/s
    • setDesignDiffuserOutletVelocity

      public void setDesignDiffuserOutletVelocity(double velocity)
      Sets the design diffuser outlet velocity used when calculating mechanical dimensions.
      Parameters:
      velocity - velocity in m/s
    • setSuctionConnectionLength

      public void setSuctionConnectionLength(double length)
      Sets the straight length of suction piping to include in total volume calculations.
      Parameters:
      length - length in metres
    • setDischargeConnectionLength

      public void setDischargeConnectionLength(double length)
      Sets the straight length of discharge piping to include in total volume calculations.
      Parameters:
      length - length in metres
    • initMechanicalDesign

      public void initMechanicalDesign()
      Description copied from class: ProcessEquipmentBaseClass

      Initialize a initMechanicalDesign for the equipment.

      Specified by:
      initMechanicalDesign in interface ProcessEquipmentInterface
      Overrides:
      initMechanicalDesign in class ProcessEquipmentBaseClass
    • getMechanicalDesign

      public EjectorMechanicalDesign getMechanicalDesign()
      Description copied from class: ProcessEquipmentBaseClass

      Get a mechanicalDesign for the equipment.

      Specified by:
      getMechanicalDesign in interface ProcessEquipmentInterface
      Overrides:
      getMechanicalDesign in class ProcessEquipmentBaseClass
      Returns:
      a MechanicalDesign object
    • getDesignResult

      public EjectorMechanicalDesign getDesignResult()
      Backwards compatible accessor for mechanical design results.
      Returns:
      the ejector mechanical design container
    • run

      public void run(UUID id)

      In this method all thermodynamic and unit operations will be calculated in a steady state calculation.

      Parameters:
      id - UUID
    • getOutStream

      public StreamInterface getOutStream()

      getOutStream.

      Returns:
      a StreamInterface object
    • getEntrainmentRatio

      public double getEntrainmentRatio()

      getEntrainmentRatio.

      Returns:
      a double
    • diameterFromArea

      private static double diameterFromArea(double area)
    • estimateLength

      private static double estimateLength(double diameter, double factor)
    • cylinderVolume

      private static double cylinderVolume(double area, double length)
    • estimateDefaultMixingPressure

      private double estimateDefaultMixingPressure(double suctionPressure, double dischargePressure, double mDotMotive, double mDotSuction)
    • estimateDesignSuctionVelocity

      private double estimateDesignSuctionVelocity(double suctionPressure, double dischargePressure, double rhoSuction, double mDotSuction)
    • estimateDesignDiffuserOutletVelocity

      private double estimateDesignDiffuserOutletVelocity(double mixingPressure, double dischargePressure, double rhoDiffuser, double mDotTotal)
    • estimateSuctionConnectionLength

      private double estimateSuctionConnectionLength(double suctionDiameter, double suctionPressure, double dischargePressure)
    • estimateDischargeConnectionLength

      private double estimateDischargeConnectionLength(double diffuserDiameter, double mixingPressure, double dischargePressure)
    • clamp

      private static double clamp(double value, double min, double max)
    • getMassBalance

      public double getMassBalance(String unit)

      getMassBalance.

      Specified by:
      getMassBalance in interface ProcessEquipmentInterface
      Overrides:
      getMassBalance in class ProcessEquipmentBaseClass
      Parameters:
      unit - a String object
      Returns:
      a double
    • getMotiveStream

      public StreamInterface getMotiveStream()

      Getter for the field motiveStream.

      Returns:
      a StreamInterface object
    • getSuctionStream

      public StreamInterface getSuctionStream()

      Getter for the field suctionStream.

      Returns:
      a StreamInterface object
    • getMixedStream

      public StreamInterface getMixedStream()

      Getter for the field mixedStream.

      Returns:
      a StreamInterface object
    • getEfficiencyIsentropic

      public double getEfficiencyIsentropic()

      Getter for the field efficiencyIsentropic.

      Returns:
      a double
    • getDiffuserEfficiency

      public double getDiffuserEfficiency()

      Getter for the field diffuserEfficiency.

      Returns:
      a double
    • toJson

      public String toJson()

      Serializes the Process Equipment along with its state to a JSON string.

      Specified by:
      toJson in interface ProcessEquipmentInterface
      Overrides:
      toJson in class ProcessEquipmentBaseClass
      Returns:
      json string.
    • toJson

      public String toJson(ReportConfig cfg)
      Serializes the Process Equipment with configurable level of detail.
      Specified by:
      toJson in interface ProcessEquipmentInterface
      Overrides:
      toJson in class ProcessEquipmentBaseClass
      Parameters:
      cfg - report configuration
      Returns:
      json string