Class FurnaceBurner

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

public class FurnaceBurner extends ProcessEquipmentBaseClass
FurnaceBurner mixes a fuel gas stream with combustion air and evaluates combustion using the GibbsReactor. The unit supports adiabatic and cooled designs, returning the reacted outlet stream together with emission estimates and heat release.
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • fuelInlet

      private StreamInterface fuelInlet
    • airInlet

      private StreamInterface airInlet
    • outletStream

      private StreamInterface outletStream
    • reactor

      private GibbsReactor reactor
    • burnerDesign

      private FurnaceBurner.BurnerDesign burnerDesign
    • surroundingsTemperatureK

      private double surroundingsTemperatureK
    • coolingFactor

      private double coolingFactor
    • excessAirFraction

      private double excessAirFraction
    • airFuelRatioMass

      private double airFuelRatioMass
    • flameTemperature

      private double flameTemperature
    • heatReleasekW

      private double heatReleasekW
    • emissionRatesKgPerHr

      private final Map<String,Double> emissionRatesKgPerHr
  • Constructor Details

    • FurnaceBurner

      public FurnaceBurner(String name)
      Create a furnace burner with the provided name.
      Parameters:
      name - unit name
  • Method Details

    • setFuelInlet

      public void setFuelInlet(StreamInterface stream)
      Set the natural gas (fuel) inlet stream.
      Parameters:
      stream - fuel stream
    • setAirInlet

      public void setAirInlet(StreamInterface stream)
      Set the combustion air inlet stream.
      Parameters:
      stream - air stream
    • setBurnerDesign

      public void setBurnerDesign(FurnaceBurner.BurnerDesign design)
      Set the burner design option.
      Parameters:
      design - burner design
    • setCoolingFactor

      public void setCoolingFactor(double factor)
      Provide a cooling factor (0-1) that pulls the flame temperature towards the surroundings. A value of 0.0 keeps adiabatic operation, while 1.0 forces the products to the surroundings temperature.
      Parameters:
      factor - cooling factor between 0 and 1
    • setSurroundingsTemperature

      public void setSurroundingsTemperature(double temperatureK)
      Specify the surroundings (ambient) temperature used when applying cooling.
      Parameters:
      temperatureK - surroundings temperature in kelvin
    • setExcessAirFraction

      public void setExcessAirFraction(double fraction)
      Specify excess air as a fraction of stoichiometric air (0.1 = 10% excess).
      Parameters:
      fraction - fraction of excess air
    • setAirFuelRatioMass

      public void setAirFuelRatioMass(double ratio)
      Set the air-fuel ratio on a mass basis. When set, the air flow rate will be calculated from the fuel flow rate and this ratio during execution.
      Parameters:
      ratio - air-fuel ratio (mass air / mass fuel)
    • getAirFuelRatioMass

      public double getAirFuelRatioMass()
      Get the air-fuel ratio on a mass basis.
      Returns:
      air-fuel ratio (mass air / mass fuel)
    • getFuelInlet

      public StreamInterface getFuelInlet()
      Get the natural gas (fuel) inlet stream.
      Returns:
      fuel stream
    • getAirInlet

      public StreamInterface getAirInlet()
      Get the combustion air inlet stream.
      Returns:
      air stream
    • getOutletStream

      public StreamInterface getOutletStream()
      Get the reacted outlet stream from the furnace burner.
      Returns:
      reacted outlet stream
    • getFlameTemperature

      public double getFlameTemperature()
      Get the calculated flame temperature (K) after considering the burner design.
      Returns:
      flame temperature in kelvin
    • getHeatReleasekW

      public double getHeatReleasekW()
      Get the heat released by combustion (kW, positive for exothermic reactions).
      Returns:
      heat release in kW
    • getEmissionRatesKgPerHr

      public Map<String,Double> getEmissionRatesKgPerHr()
      Get a map of emission rates (kg/hr) for common combustion species.
      Returns:
      emission rate map
    • run

      public void run(UUID id)
      Description copied from interface: SimulationInterface

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

      Parameters:
      id - UUID
    • 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
    • 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