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¶

| 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¶
-
User guide
-
FluentAPI
API members¶
Public members declared by this class. Inherited members are documented on the base classes.
Constructors¶
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.
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.
Description: Gets the description of this unit operation type.
Gets the description of this unit operation type.
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
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).
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.
ObjectClass: Gets or sets the simulation object class category (Exchangers).
Gets or sets the simulation object class category (Exchangers). The setter always stores Exchangers.
Prefix: Gets the default name prefix for this unit operation.
Gets the default name prefix for this unit operation.
SpecifiedDuty: Specified duty [W] (for Duty mode)
Specified duty [W] (for Duty mode)
SpecifiedOutletTemperature: Specified outlet temperature [K] (for OutletTemperature mode)
Specified outlet temperature [K] (for OutletTemperature mode)
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 |
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.
CloseEditForm(): Closes the editor of this object, if it is open.
Closes the editor of this object, if it is open.
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.
DisplayEditForm(): Opens the editor of this object.
Opens the editor of this object. A host that has no editor for it does nothing.
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. |
GetDisplayDescription(): Returns the localized description string for this unit operation type.
Returns the localized description string for this unit operation type.
GetDisplayName(): Returns the localized display name for this unit operation type.
Returns the localized display name for this unit operation type.
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.
GetPreferredGraphicObjectHeight(): Returns the preferred height of the flowsheet graphic object, in pixels.
Returns the preferred height of the flowsheet graphic object, in pixels.
GetPreferredGraphicObjectWidth(): Returns the preferred width of the flowsheet graphic object, in pixels.
Returns the preferred width of the flowsheet graphic object, in pixels.
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. |
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. |
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. |
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. |
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. |
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. |
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.
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. |
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.
Fields¶