Skip to content

Fired Heater

DWSIM Plus

Available with a DWSIM Plus (Patreon) subscription.

Fired Heater unit operation. Connections: Inlets: - Process stream (fluid to be heated) - Fuel stream (gaseous/liquid fuel) Outlets: - Heated process stream - Flue gas stream - Energy stream (duty for heat balance) Operating modes: 1. Specify process outlet T -> calculate fuel flow rate 2. Specify duty -> calculate outlet T and fuel flow rate 3. Specify fuel flow rate -> calculate outlet T and duty

DWSIM.UnitOperations.FiredHeater.Models.FiredHeaterUnitOperation
Assembly DWSIM.UnitOperations.FiredHeater.dll · Object ← BaseClass ← UnitOpBaseClass ← FiredHeaterUnitOperation

At a glance

Fired Heater in the example flowsheet

Port Index Connected in the example
Inlet, material 0 Charge
Inlet, material 1 Fuel gas
Outlet, material 0 Charge-hot
Outlet, material 1 Flue gas

Example

This code runs on every build of this site, and the output below is what it printed.

# The flue gas outlet needs CO2, water, nitrogen and oxygen in the compound list.
fs = (Flowsheet.Create("FiredHeaterExample")
      .WithCompounds("N-dodecane", "N-hexadecane", "Methane",
                     "Carbon dioxide", "Water", "Nitrogen", "Oxygen")
      .WithPropertyPackage(PropertyPackages.PengRobinson))

charge = (fs.AddMaterialStream("Charge")
          .At(Q.Celsius(200.0), Q.Bar(15.0))
          .SetCompoundMassFlow("N-dodecane", 10.0)
          .SetCompoundMassFlow("N-hexadecane", 10.0))
fuel = (fs.AddMaterialStream("Fuel gas")
        .At(Q.Celsius(25.0), Q.Bar(3.0))
        .SetCompoundMolarFlow("Methane", 10.0))      # first guess; the heater resizes it
hot = fs.AddMaterialStream("Charge-hot")
flue = fs.AddMaterialStream("Flue gas")

heater = (fs.AddFiredHeater("H-101")
          .ConnectFeed(charge, 0).ConnectFeed(fuel, 1)
          .ConnectProduct(hot, 0).ConnectProduct(flue, 1))
heater.Object.SpecifiedOutletTemperature = 273.15 + 300.0   # K

cfg = heater.Config
cfg.SpecMode = FurnaceSpecMode.OutletTemperature     # the fuel flow is solved for
cfg.ExcessAir = 0.15                                 # 15 % excess air
conv = cfg.ConvectionSection                         # 3 rows of 8 finned tubes, 10 m long
conv.NumberOfTubes = 24
conv.NumberOfRows = 3
conv.DuctWidth = 1.75                                # m
conv.FinType = FinType.SolidFin

fs.AutoLayout()
fs.Solve()

r = heater.Object.Results
print(f"Duty absorbed      = {r.TotalDutyAbsorbed / 1e6:.2f} MW")
print(f"Heat released      = {r.TotalHeatReleased / 1e6:.2f} MW")
print(f"Thermal efficiency = {r.ThermalEfficiency * 100:.1f} %")
print(f"Fuel consumption   = {r.FuelConsumption * 3600:.0f} kg/h")
print(f"Bridgewall T       = {r.RadiantSection.BridgewallTemperature - 273.15:.0f} C")
print(f"Flue gas T         = {flue.TemperatureK - 273.15:.0f} C")

Output

Duty absorbed      = 6.00 MW
Heat released      = 6.74 MW
Thermal efficiency = 89.0 %
Fuel consumption   = 485 kg/h
Bridgewall T       = 1079 C
Flue gas T         = 219 C

DWSIM 10.2.11.0, generated 2026-10-08.

Properties

IDs accepted by GetPropertyValue, SetPropertyValue, the sensitivity analysis, the optimizer, the Adjust block and dynamic events. Units are SI; pass another unit system to GetPropertyValue to get them converted.

All 93 properties
ID Name Unit (SI) Input
Furnace Type yes
Draft Type yes
Specification Mode yes
Specified Outlet Temperature K yes
Specified Duty kW yes
Internal Heat Transfer Coefficient W/[m.K] yes
Excess Air % yes
Wall Heat Loss Fraction % yes
Radiant Chamber Length m yes
Radiant Chamber Width m yes
Radiant Chamber Height m yes
Radiant Tube Outer Diameter mm yes
Radiant Tube Wall Thickness mm yes
Radiant Tube Effective Length m yes
Radiant Number of Tubes yes
Radiant Number of Passes yes
Radiant Tube Pitch m yes
Radiant Tube-to-Wall Distance m yes
Radiant Tube Thermal Conductivity W/[m.K] yes
Radiant Tube Emissivity NF yes
Radiant Refractory Emissivity NF yes
Radiant Refractory Thickness mm yes
Radiant Refractory Conductivity W/[m.K] yes
Convection Tube Outer Diameter mm yes
Convection Tube Wall Thickness mm yes
Convection Tube Effective Length m yes
Convection Number of Tubes yes
Convection Number of Rows yes
Convection Number of Passes yes
Convection Transverse Pitch m yes
Convection Longitudinal Pitch m yes
Convection Tube Thermal Conductivity W/[m.K] yes
Convection Tube Arrangement yes
Convection Fin Type yes
Convection Fin Height m yes
Convection Fin Thickness mm yes
Convection Fin Density fins/m yes
Convection Fin Thermal Conductivity W/[m.K] yes
Convection Duct Width m yes
Convection Duct Height m yes
Shield Section Enabled yes
Shield Number of Rows yes
Shield Number of Tubes yes
Shield Tube Outer Diameter mm yes
Shield Tube Effective Length m yes
Shield Radiant Fraction % yes
Stack Height m yes
Stack Inner Diameter mm yes
Stack Ambient Temperature K yes
Stack Ambient Pressure Pa yes
Stack Ambient Relative Humidity % yes
Total Duty Absorbed kW result
Total Heat Released kW result
Thermal Efficiency % result
Fuel Consumption kg/s result
Process Outlet Temperature K result
Flue Gas Outlet Temperature K result
Adiabatic Flame Temperature K result
Fuel LHV (mass) kJ/kg result
Air Mass Flow kg/s result
Flue Gas Total Mass Flow kg/s result
Flue Gas CO2 Mole Fraction % result
Flue Gas H2O Mole Fraction % result
Flue Gas O2 Mole Fraction % result
Flue Gas N2 Mole Fraction % result
Radiant Duty Absorbed kW result
Radiant Fraction of Total Duty % result
Bridgewall Temperature K result
Radiant Average Heat Flux W/m² result
Radiant Maximum Heat Flux W/m² result
Average Tube Skin Temperature K result
Maximum Tube Skin Temperature K result
Gas Emissivity result
Exchange Factor result
Mean Beam Length m result
Shield Duty Absorbed kW result
Shield Gas Outlet Temperature K result
Convection Duty Absorbed kW result
Convection LMTD K (difference) result
Overall Heat Transfer Coefficient W/[m2.K] result
External Heat Transfer Coefficient W/[m2.K] result
Convection Reynolds Number result
Fin Efficiency result
Stack Exit Temperature K result
Available Draft Pa result
Net Draft Pa result
Stack Velocity m/s result
Stack Loss Fraction % result
Stack Volumetric Flow m3/s result
CO2 Mass Flow kg/s result
SO2 Mass Flow kg/s result
NOx Concentration mg/Nm³ result
NOx Mass Flow kg/s result

Learn more

API members

Public members declared by this class. Inherited members are documented on the base classes.

Constructors

FiredHeaterUnitOperation()
public FiredHeaterUnitOperation()
Public Sub New()

Properties

ComponentDescription: Gets or sets the CAPE-OPEN component description for this unit operation.

Gets or sets the CAPE-OPEN component description for this unit operation.

public override string ComponentDescription { get; set; }
Public Overrides Property ComponentDescription As String

Config: Gets or sets the fired heater configuration: furnace and draft type, specification mode, excess air, wall heat loss...

Gets or sets the fired heater configuration: furnace and draft type, specification mode, excess air, wall heat loss, and the radiant, shield, convection and stack geometry.

public FiredHeaterConfiguration Config { get; set; }
Public Property Config As FiredHeaterConfiguration

Description: Gets the description of this unit operation type.

Gets the description of this unit operation type.

public string Description { get; }
Public ReadOnly Property Description As String

InternalHeatTransferCoefficient: Internal fluid heat transfer coefficient [W/(m²·K)] - may be calculated externally

Internal fluid heat transfer coefficient [W/(m²·K)] - may be calculated externally

public double InternalHeatTransferCoefficient { get; set; }
Public Property InternalHeatTransferCoefficient As Double

IsPremium: Gets a value indicating that this unit operation is listed in the Premium group of the object palette (always true).

Gets a value indicating that this unit operation is listed in the Premium group of the object palette (always true).

public bool IsPremium { get; }
Public ReadOnly Property IsPremium As Boolean

MobileCompatible: Gets a value indicating whether this unit operation is compatible with mobile interfaces.

Gets a value indicating whether this unit operation is compatible with mobile interfaces.

public override bool MobileCompatible { get; }
Public Overrides ReadOnly Property MobileCompatible As Boolean

ObjectClass: Gets or sets the simulation object class category (Exchangers).

Gets or sets the simulation object class category (Exchangers). The setter always stores Exchangers.

public override SimulationObjectClass ObjectClass { get; set; }
Public Overrides Property ObjectClass As SimulationObjectClass

Prefix: Gets the default name prefix for this unit operation.

Gets the default name prefix for this unit operation.

public string Prefix { get; }
Public ReadOnly Property Prefix As String

SpecifiedDuty: Specified duty [W] (for Duty mode)

Specified duty [W] (for Duty mode)

public double SpecifiedDuty { get; set; }
Public Property SpecifiedDuty As Double

SpecifiedOutletTemperature: Specified outlet temperature [K] (for OutletTemperature mode)

Specified outlet temperature [K] (for OutletTemperature mode)

public double SpecifiedOutletTemperature { get; set; }
Public Property SpecifiedOutletTemperature As Double

Methods

Calculate(object): Executes the full Fired Heater calculation.

Executes the full Fired Heater calculation. This is the main method called by the DWSIM solver.

Parameter Type Description
args Object
public override void Calculate(object args = null)
Public Overrides Sub Calculate(args As Object = Nothing)

CloneXML(): Creates a deep copy of this object by round-tripping through XML serialization.

Creates a deep copy of this object by round-tripping through XML serialization.

public override object CloneXML()
Public Overrides Function CloneXML() As Object

CloseEditForm(): Closes the editor of this object, if it is open.

Closes the editor of this object, if it is open.

public override void CloseEditForm()
Public Overrides Sub CloseEditForm()

CreateConnectors(): Creates the graphic connector definitions on the flowsheet: process and fuel inlets, process outlet, and the flue...

Creates the graphic connector definitions on the flowsheet: process and fuel inlets, process outlet, and the flue gas outlet.

public void CreateConnectors()
Public Sub CreateConnectors()

DisplayEditForm(): Opens the editor of this object.

Opens the editor of this object. A host that has no editor for it does nothing.

public override void DisplayEditForm()
Public Overrides Sub DisplayEditForm()

Draw(object): Draws the unit operation icon on the given SkiaSharp canvas.

Draws the unit operation icon on the given SkiaSharp canvas.

Parameter Type Description
g Object The SkiaSharp canvas.
public void Draw(object g)
Public Sub Draw(g As Object)

GetDisplayDescription(): Returns the localized description string for this unit operation type.

Returns the localized description string for this unit operation type.

public override string GetDisplayDescription()
Public Overrides Function GetDisplayDescription() As String

GetDisplayName(): Returns the localized display name for this unit operation type.

Returns the localized display name for this unit operation type.

public override string GetDisplayName()
Public Overrides Function GetDisplayName() As String

GetIconBitmapBytes(): Returns the raw bytes of the icon image for this unit operation.

Returns the raw bytes of the icon image for this unit operation.

public override byte[] GetIconBitmapBytes()
Public Overrides Function GetIconBitmapBytes() As Byte()

GetPreferredGraphicObjectHeight(): Returns the preferred height of the flowsheet graphic object, in pixels.

Returns the preferred height of the flowsheet graphic object, in pixels.

public override double GetPreferredGraphicObjectHeight()
Public Overrides Function GetPreferredGraphicObjectHeight() As Double

GetPreferredGraphicObjectWidth(): Returns the preferred width of the flowsheet graphic object, in pixels.

Returns the preferred width of the flowsheet graphic object, in pixels.

public override double GetPreferredGraphicObjectWidth()
Public Overrides Function GetPreferredGraphicObjectWidth() As Double

GetProperties(PropertyType): Get a list of all properties of the object.

Get a list of all properties of the object.

Parameter Type Description
proptype PropertyType Type of the property.
public override string[] GetProperties(PropertyType proptype)
Public Overrides Function GetProperties(proptype As PropertyType) As String()

GetPropertyUnit(string, IUnitsOfMeasure): Gets the units of a property.

Gets the units of a property.

Parameter Type Description
prop String Property identifier.
su IUnitsOfMeasure Units system to use. Null to use the default (SI) system.
public override string GetPropertyUnit(string prop, IUnitsOfMeasure su = null)
Public Overrides Function GetPropertyUnit(prop As String, su As IUnitsOfMeasure = Nothing) As String

GetPropertyValue(string, IUnitsOfMeasure): Returns the value of a named property, converting from SI to the current unit system.

Returns the value of a named property, converting from SI to the current unit system. Falls back to extra properties if the property is not found in the base implementation.

Parameter Type Description
prop String The property identifier string.
su IUnitsOfMeasure Optional units-of-measure system used for conversion; uses the shared SI system when Nothing.
public override object GetPropertyValue(string prop, IUnitsOfMeasure su = null)
Public Overrides Function GetPropertyValue(prop As String, su As IUnitsOfMeasure = Nothing) As Object

LoadData(List<XElement>): Restores the unit operation state from a list of XML elements previously produced by SaveData.

Restores the unit operation state from a list of XML elements previously produced by SaveData.

Parameter Type Description
data List<XElement> The list of XElement objects containing serialized state.
public override bool LoadData(List<XElement> data)
Public Overrides Function LoadData(data As List(Of XElement)) As Boolean

PopulateEditorPanel(object): Populates the cross-platform editor panel with controls.

Populates the cross-platform editor panel with controls.

Parameter Type Description
ctner Object The editor panel (layout container) to populate.
public void PopulateEditorPanel(object ctner)
Public Sub PopulateEditorPanel(ctner As Object)

ReturnInstance(string): Creates and returns a new instance for deserialization.

Creates and returns a new instance for deserialization.

Parameter Type Description
typename String The type name to instantiate.
public object ReturnInstance(string typename)
Public Function ReturnInstance(typename As String) As Object

SaveData(): Serializes the unit operation state to a list of XML elements for persistence.

Serializes the unit operation state to a list of XML elements for persistence.

public override List<XElement> SaveData()
Public Overrides Function SaveData() As List(Of XElement)

SetPropertyValue(string, object, IUnitsOfMeasure): Sets the value of a property.

Sets the value of a property.

Parameter Type Description
prop String Property identifier.
propval Object Property value to set at the specified units.
su IUnitsOfMeasure Units system to use. Null to use the default (SI) system.
public override bool SetPropertyValue(string prop, object propval, IUnitsOfMeasure su = null)
Public Overrides Function SetPropertyValue(prop As String, propval As Object, su As IUnitsOfMeasure = Nothing) As Boolean

UpdateEditForm(): Redraws the editor of this object with the current values, if it is open.

Redraws the editor of this object with the current values, if it is open.

public override void UpdateEditForm()
Public Overrides Sub UpdateEditForm()

Fields

f: The classic (WinForms) editor window open for this unit operation, if any.

The classic (WinForms) editor window open for this unit operation, if any. Not saved with the flowsheet.

public FormEditorFiredHeater f
Public f As FormEditorFiredHeater