Skip to content

Heat Exchanger

Represents a heat exchanger unit operation that transfers thermal energy between a hot-side and a cold-side material stream. Supports counter-current and co-current flow, multiple calculation modes (outlet temperature, UA, area, rating, pinch-point, thermal efficiency), optional shell-and-tube geometry, and dynamic simulation.

DWSIM.UnitOperations.UnitOperations.HeatExchanger
Assembly DWSIM.UnitOperations.dll · Object ← BaseClass ← UnitOpBaseClass ← HeatExchanger

At a glance

Heat Exchanger in the example flowsheet

Port Index Connected in the example
Inlet, material 0 Toluene-in
Inlet, material 1 CW-in
Outlet, material 0 Toluene-out
Outlet, material 1 CW-out

Example

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

fs = (Flowsheet.Create("HeatExchangerExample")
      .WithCompounds("Toluene", "Water")
      .WithPropertyPackage(PropertyPackages.Raoult))     # ideal liquids: each side is a single compound

hot_in = (fs.AddMaterialStream("Toluene-in")
          .At(Q.Celsius(120.0), Q.Bar(3.0))
          .SetCompoundMassFlow("Toluene", 3.0))       # kg/s
cold_in = (fs.AddMaterialStream("CW-in")
           .At(Q.Celsius(25.0), Q.Bar(4.0))
           .SetCompoundMassFlow("Water", 4.0))
hot_out = fs.AddMaterialStream("Toluene-out")
cold_out = fs.AddMaterialStream("CW-out")

# CalcBothTemp_UA: both outlet temperatures from U (W/(m2.K)) and area (m2).
# Port 0 is the hot side, port 1 the cold side.
hx = (fs.AddHeatExchanger("E-1")
      .WithCalculationMode(HeatExchangerCalcMode.CalcBothTemp_UA)
      .WithOverallCoefficient(450.0)                     # sets the overall coefficient U
      .WithExchangeArea(25.0)
      .WithHotSidePressureDrop(Q.Bar(0.2))
      .WithColdSidePressureDrop(Q.Bar(0.3))
      .ConnectFeed(hot_in, 0).ConnectProduct(hot_out, 0)
      .ConnectFeed(cold_in, 1).ConnectProduct(cold_out, 1))

fs.AutoLayout()
fs.Solve()

e = hx.Object
print(f"Duty            = {e.Q:.1f} kW")
print(f"Toluene outlet  = {hot_out.TemperatureK - 273.15:.2f} C")
print(f"Water outlet    = {cold_out.TemperatureK - 273.15:.2f} C")
print(f"LMTD            = {e.LMTD:.2f} K")
print(f"Check U*A*LMTD  = {450.0 * 25.0 * e.LMTD / 1000.0:.1f} kW")
q_water = 4.0 * (cold_out.Object.Phases[0].Properties.enthalpy - cold_in.Object.Phases[0].Properties.enthalpy)
print(f"Water side m*dh = {q_water:.1f} kW")

Output

Duty            = 445.8 kW
Toluene outlet  = 45.28 C
Water outlet    = 51.74 C
LMTD            = 39.59 K
Check U*A*LMTD  = 445.4 kW
Water side m*dh = 445.8 kW

DWSIM 10.2.11.0, generated 2026-10-08.

Calculation modes

Set with CalculationMode (HeatExchangerCalcMode). The mode decides which properties are inputs; every other one is a result and is overwritten by the calculation.

Mode Value What it does Inputs
CalcTempHotOut 0 Calculate the hot-side outlet temperature given other specifications. PROP_HX_1, PROP_HX_3, PROP_HX_28, PROP_HX_29, PROP_HX_32, PROP_HX_33
CalcTempColdOut 1 Calculate the cold-side outlet temperature given other specifications. PROP_HX_1, PROP_HX_4, PROP_HX_28, PROP_HX_32, PROP_HX_33
CalcBothTemp 2 Calculate both outlet temperatures from a specified heat duty. PROP_HX_1, PROP_HX_2, PROP_HX_28, PROP_HX_29, PROP_HX_32, PROP_HX_33
CalcBothTemp_UA 3 Calculate both outlet temperatures from a specified overall heat transfer coefficient and area (UA). PROP_HX_0, PROP_HX_1, PROP_HX_28, PROP_HX_29, PROP_HX_32, PROP_HX_33
CalcArea 4 Calculate the required heat transfer area from a specified overall coefficient and outlet temperatures. PROP_HX_0, PROP_HX_3, PROP_HX_28, PROP_HX_29, PROP_HX_32, PROP_HX_33
ShellandTube_Rating 5 Perform a detailed shell-and-tube rating calculation using geometry data. PROP_HX_5, PROP_HX_6, PROP_HX_7, PROP_HX_8, PROP_HX_9, PROP_HX_10, PROP_HX_11, PROP_HX_12, PROP_HX_13, PROP_HX_14, PROP_HX_15, PROP_HX_16, PROP_HX_28, PROP_HX_29, PROP_HX_35, PROP_HX_36, PROP_HX_43, PROP_HX_44, PROP_HX_45, PROP_HX_46, PROP_HX_47, PROP_HX_48
ShellandTube_CalcFoulingFactor 6 Back-calculate the fouling factor from measured shell-and-tube performance data. PROP_HX_3, PROP_HX_4, PROP_HX_5, PROP_HX_7, PROP_HX_8, PROP_HX_9, PROP_HX_10, PROP_HX_11, PROP_HX_12, PROP_HX_14, PROP_HX_15, PROP_HX_16, PROP_HX_28, PROP_HX_29, PROP_HX_35, PROP_HX_36, PROP_HX_43, PROP_HX_44, PROP_HX_45, PROP_HX_46, PROP_HX_47, PROP_HX_48
PinchPoint 7 Calculate outlet temperatures using a minimum internal temperature approach (pinch point) specification. PROP_HX_0, PROP_HX_27, PROP_HX_28, PROP_HX_29, PROP_HX_32, PROP_HX_33
ThermalEfficiency 8 Calculate outlet temperatures using a specified thermal efficiency. PROP_HX_0, PROP_HX_28, PROP_HX_29, PROP_HX_32, PROP_HX_33
OutletVaporFraction1 9 Calculate so the hot-side outlet reaches a specified vapour fraction. PROP_HX_1, PROP_HX_28, PROP_HX_29, PROP_HX_30, PROP_HX_32, PROP_HX_33
OutletVaporFraction2 10 Calculate so the cold-side outlet reaches a specified vapour fraction. PROP_HX_1, PROP_HX_28, PROP_HX_29, PROP_HX_31, PROP_HX_32, PROP_HX_33

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 71 properties
ID Name Unit (SI) Input in
PROP_HX_0 Global Heat Transfer Coefficient (U) W/[m2.K] CalcBothTemp_UA, CalcArea, PinchPoint, ThermalEfficiency
PROP_HX_1 Heat Exchange Area (A) m2 CalcTempHotOut, CalcTempColdOut, CalcBothTemp, CalcBothTemp_UA, OutletVaporFraction1, OutletVaporFraction2
PROP_HX_2 Heat Load kW CalcBothTemp
PROP_HX_3 Cold fluid outlet temperature K CalcTempHotOut, CalcArea, ShellandTube_CalcFoulingFactor
PROP_HX_4 Hot fluid outlet temperature K CalcTempColdOut, ShellandTube_CalcFoulingFactor
PROP_HX_5 [Shell and Tube] Internal Shell Diameter mm ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_6 [Shell and Tube] Shell Fouling Factor K.m2/W ShellandTube_Rating
PROP_HX_7 [Shell and Tube] Baffle Cut % ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_8 [Shell and Tube] Shells in Series ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_9 [Shell and Tube] Baffle Spacing mm ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_10 [Shell and Tube] Internal Tube Diameter mm ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_11 [Shell and Tube] External Tube Diameter mm ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_12 [Shell and Tube] Tube Length m ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_13 [Shell and Tube] Tube Fouling factor K.m2/W ShellandTube_Rating
PROP_HX_14 [Shell and Tube] Tube Passes Per Shell ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_15 [Shell and Tube] Number of Tubes ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_16 [Shell and Tube] Tube Pitch mm ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_17 [Shell and Tube] Fouling Factor (Design) K.m2/W result
PROP_HX_18 [Shell and Tube] LMTD Correction Factor (F) result
PROP_HX_19 Logarithmic mean temperature difference LMTD K (difference) result
PROP_HX_20 [Shell and Tube] Resistance heat transfer pipes K.m2/W result
PROP_HX_21 [Shell and Tube] Resistance thermal conductivity pipes K.m2/W result
PROP_HX_22 [Shell and Tube] Resistance heat transfer shell K.m2/W result
PROP_HX_23 [Shell and Tube] Reynolds number shell result
PROP_HX_24 [Shell and Tube] Reynolds number tubes result
PROP_HX_25 Thermal Efficiency % result
PROP_HX_26 Maximum Theoretical Heat Exchange kW result
PROP_HX_27 Minimum Temperature Difference K (difference) PinchPoint
PROP_HX_28 Heat Loss kW all modes
PROP_HX_29 User-Defined LMTD Correction Factor CalcTempHotOut, CalcBothTemp, CalcBothTemp_UA, CalcArea, ShellandTube_Rating, ShellandTube_CalcFoulingFactor, PinchPoint, ThermalEfficiency, OutletVaporFraction1, OutletVaporFraction2
PROP_HX_30 Outlet Vapor Fraction (Stream 1) OutletVaporFraction1
PROP_HX_31 Outlet Vapor Fraction (Stream 2) OutletVaporFraction2
PROP_HX_32 Pressure Drop (Cold Side) Pa CalcTempHotOut, CalcTempColdOut, CalcBothTemp, CalcBothTemp_UA, CalcArea, PinchPoint, ThermalEfficiency, OutletVaporFraction1, OutletVaporFraction2
PROP_HX_33 Pressure Drop (Hot Side) Pa CalcTempHotOut, CalcTempColdOut, CalcBothTemp, CalcBothTemp_UA, CalcArea, PinchPoint, ThermalEfficiency, OutletVaporFraction1, OutletVaporFraction2
PROP_HX_34 Calculated MITA K (difference) result
PROP_HX_35 TEMA Front Head Type ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_36 TEMA Rear Head Type ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_37 Shell Design Pressure Pa result
PROP_HX_38 Tube Design Pressure Pa result
PROP_HX_39 Shell Design Temperature K result
PROP_HX_40 Tube Design Temperature K result
PROP_HX_41 Shell Test Pressure Pa result
PROP_HX_42 Tube Test Pressure Pa result
PROP_HX_43 Corrosion Allowance mm ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_44 Shell Wall Thickness mm ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_45 Shell Inlet Nozzle Diameter mm ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_46 Shell Outlet Nozzle Diameter mm ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_47 Tube Inlet Nozzle Diameter mm ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_48 Tube Outlet Nozzle Diameter mm ShellandTube_Rating, ShellandTube_CalcFoulingFactor
PROP_HX_49 Tube Bundle Diameter mm result
PROP_HX_50 Effective Tube Length m result
PROP_HX_51 Heat Transfer Area (Internal) m2 result
PROP_HX_52 Heat Transfer Area (External) m2 result
PROP_HX_53 Number of Baffles result
PROP_HX_54 Tube Side Flow Area m2 result
PROP_HX_55 Shell Side Flow Area m2 result
PROP_HX_56 Tube Side Velocity m/s result
PROP_HX_57 Shell Side Velocity m/s result
PROP_HX_58 Shell Inlet Nozzle Velocity m/s result
PROP_HX_59 Shell Outlet Nozzle Velocity m/s result
PROP_HX_60 Tube Inlet Nozzle Velocity m/s result
PROP_HX_61 Tube Outlet Nozzle Velocity m/s result
PROP_HX_62 Shell Inlet Nozzle rho.v2 Pa result
PROP_HX_63 Shell Outlet Nozzle rho.v2 Pa result
PROP_HX_64 Tube Inlet Nozzle rho.v2 Pa result
PROP_HX_65 Tube Outlet Nozzle rho.v2 Pa result
PROP_HX_66 Shell Side Volume m3 result
PROP_HX_67 Tube Side Volume m3 result
PROP_HX_68 Empty Weight kg result
PROP_HX_69 Operating Weight kg result
PROP_HX_70 Water Test Weight kg result

Dynamic mode

Extra properties used when the flowsheet runs in dynamic mode.

Name Unit
Cold Fluid Flow Conductance [kg/s]/[Pa^0.5]
Hot Fluid Flow Conductance [kg/s]/[Pa^0.5]
Volume for Cold Fluid m3
Volume for Hot Fluid m3
Cold Side Pressure Pa
Hot Side Pressure Pa
Minimum Pressure Pa
Initialize using Inlet Streams
Reset Contents
Fouling Rate
Current Fouling Resistance
Wall Thermal Mass
Wall Temperature K
Number of Cells
Substeps

Learn more

API members

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

Constructors

HeatExchanger(): Initializes a new default instance.

Initializes a new default instance.

public HeatExchanger()
Public Sub New()

HeatExchanger(string, string): Initializes a new instance with a name and description.

Initializes a new instance with a name and description.

Parameter Type Description
name String
description String
public HeatExchanger(string name, string description)
Public Sub New(name As String, description As String)

Properties

Area: Gets or sets the heat-transfer area (m�), nullable.

Gets or sets the heat-transfer area (m�), nullable.

public double? Area { get; set; }
Public Property Area As Double?

CalculatedMITA: Gets or sets the calculated minimum internal temperature approach (K) from the last simulation run.

Gets or sets the calculated minimum internal temperature approach (K) from the last simulation run.

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

CalculateHeatExchangeProfile: Gets or sets whether a detailed heat-exchange profile should be calculated along the exchanger length.

Gets or sets whether a detailed heat-exchange profile should be calculated along the exchanger length.

public bool CalculateHeatExchangeProfile { get; set; }
Public Property CalculateHeatExchangeProfile As Boolean

CalculationMode: Gets or sets the heat-exchanger calculation mode (e.g.

Gets or sets the heat-exchanger calculation mode (e.g. CalcBothTemp, CalcArea).

public HeatExchangerCalcMode CalculationMode { get; set; }
Public Property CalculationMode As HeatExchangerCalcMode

ColdSideOutletTemperature: Gets or sets the calculated cold-side outlet temperature (K).

Gets or sets the calculated cold-side outlet temperature (K).

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

ColdSidePressureDrop: Gets or sets the pressure drop on the cold side (Pa).

Gets or sets the pressure drop on the cold side (Pa).

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

ColdSideTemperatureChange: Gets or sets the temperature change on the cold side (K).

Gets or sets the temperature change on the cold side (K).

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

CorrectionFactorLMTD: Gets or sets the LMTD correction factor applied to the log-mean temperature difference.

Gets or sets the LMTD correction factor applied to the log-mean temperature difference.

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

DefinedTemperature: Gets or sets which fluid side has its outlet temperature explicitly specified by the user.

Gets or sets which fluid side has its outlet temperature explicitly specified by the user.

public SpecifiedTemperature DefinedTemperature { get; set; }
Public Property DefinedTemperature As SpecifiedTemperature

DeltaP: Gets or sets the overall pressure drop across the exchanger (Pa), nullable.

Gets or sets the overall pressure drop across the exchanger (Pa), nullable.

public double? DeltaP { get; set; }
Public Property DeltaP As Double?

EquipmentTypes: Gets the list of equipment sub-types available for this heat exchanger.

Gets the list of equipment sub-types available for this heat exchanger.

public override List<string> EquipmentTypes { get; }
Public Overrides ReadOnly Property EquipmentTypes As List(Of String)

FlowDir: Gets or sets the relative flow direction of the two fluid streams (counter-current or co-current).

Gets or sets the relative flow direction of the two fluid streams (counter-current or co-current).

public FlowDirection FlowDir { get; set; }
Public Property FlowDir As FlowDirection

HasPropertiesForDynamicMode: Gets a value indicating whether this unit operation exposes dedicated properties for dynamic mode.

Gets a value indicating whether this unit operation exposes dedicated properties for dynamic mode.

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

HeatDuty: Gets or sets the heat duty (kW) exchanged between the two streams.

Gets or sets the heat duty (kW) exchanged between the two streams. Proxy for the internal Q property.

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

HeatLoss: Gets or sets the fractional heat loss to the environment (kW).

Gets or sets the fractional heat loss to the environment (kW).

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

HeatProfile: Gets or sets the heat duty profile along the exchanger length (kW at each discretisation point).

Gets or sets the heat duty profile along the exchanger length (kW at each discretisation point).

public double[] HeatProfile { get; set; }
Public Property HeatProfile As Double()

HotSideOutletTemperature: Gets or sets the calculated hot-side outlet temperature (K).

Gets or sets the calculated hot-side outlet temperature (K).

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

HotSidePressureDrop: Gets or sets the pressure drop on the hot side (Pa).

Gets or sets the pressure drop on the hot side (Pa).

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

HotSideTemperatureChange: Gets or sets the temperature change on the hot side (K).

Gets or sets the temperature change on the hot side (K).

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

HXType: Gets or sets the exchanger geometry type as the integer value of HeatExchangerType: 0 = double pipe (default), 1 to...

Gets or sets the exchanger geometry type as the integer value of HeatExchangerType: 0 = double pipe (default), 1 to 7 = TEMA shell types E, F, G, H, J, K and X. Used for the TEMA designation in reports.

public int HXType { get; set; }
Public Property HXType As Integer

IgnoreLMTDError: Gets or sets whether negative LMTD (temperature cross) errors are suppressed instead of throwing.

Gets or sets whether negative LMTD (temperature cross) errors are suppressed instead of throwing.

public bool IgnoreLMTDError { get; set; }
Public Property IgnoreLMTDError As Boolean

LMTD: Gets or sets the calculated log-mean temperature difference (K).

Gets or sets the calculated log-mean temperature difference (K).

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

LMTD_F: Gets or sets the calculated LMTD correction factor (F) for multi-pass exchangers.

Gets or sets the calculated LMTD correction factor (F) for multi-pass exchangers.

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

MaxHeatExchange: Gets or sets the maximum thermodynamically possible heat exchange (kW) between the two streams.

Gets or sets the maximum thermodynamically possible heat exchange (kW) between the two streams.

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

MITA: Gets or sets the specified minimum internal temperature approach (MITA / pinch) in K.

Gets or sets the specified minimum internal temperature approach (MITA / pinch) in K.

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

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).

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

OutletVaporFraction1: Gets or sets the target vapour fraction for the hot-side outlet when using OutletVaporFraction1.

Gets or sets the target vapour fraction for the hot-side outlet when using OutletVaporFraction1.

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

OutletVaporFraction2: Gets or sets the target vapour fraction for the cold-side outlet when using OutletVaporFraction2.

Gets or sets the target vapour fraction for the cold-side outlet when using OutletVaporFraction2.

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

OverallCoefficient: Gets or sets the overall heat-transfer coefficient (W/(m��K)).

Gets or sets the overall heat-transfer coefficient (W/(m��K)).

public double? OverallCoefficient { get; set; }
Public Property OverallCoefficient As Double?

PinchPointAtOutlets: Gets or sets whether the pinch-point specification applies at the exchanger outlets rather than internally.

Gets or sets whether the pinch-point specification applies at the exchanger outlets rather than internally.

public bool PinchPointAtOutlets { get; set; }
Public Property PinchPointAtOutlets As Boolean

Q: Gets or sets the heat duty (W), nullable.

Gets or sets the heat duty (W), nullable.

public double? Q { get; set; }
Public Property Q As Double?

STProperties: Gets or sets the shell-and-tube heat exchanger geometry and physical properties used when ShellandTube_Rating is...

Gets or sets the shell-and-tube heat exchanger geometry and physical properties used when ShellandTube_Rating is selected.

public STHXProperties STProperties { get; set; }
Public Property STProperties As STHXProperties

SupportsDynamicMode: Gets a value indicating whether this unit operation supports dynamic simulation mode.

Gets a value indicating whether this unit operation supports dynamic simulation mode.

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

TemperatureProfileCold: Gets or sets the cold-side temperature profile along the exchanger length (K).

Gets or sets the cold-side temperature profile along the exchanger length (K).

public double[] TemperatureProfileCold { get; set; }
Public Property TemperatureProfileCold As Double()

TemperatureProfileHot: Gets or sets the hot-side temperature profile along the exchanger length (K).

Gets or sets the hot-side temperature profile along the exchanger length (K).

public double[] TemperatureProfileHot { get; set; }
Public Property TemperatureProfileHot As Double()

ThermalEfficiency: Gets or sets the thermal efficiency (0�1) when using ThermalEfficiency mode.

Gets or sets the thermal efficiency (0�1) when using ThermalEfficiency mode.

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

UseShellAndTubeGeometryInformation: Gets or sets whether shell-and-tube geometry information is used for heat-transfer coefficient estimation.

Gets or sets whether shell-and-tube geometry information is used for heat-transfer coefficient estimation.

public bool UseShellAndTubeGeometryInformation { get; set; }
Public Property UseShellAndTubeGeometryInformation As Boolean

Methods

Calculate(object): Calculates the heat-exchanger performance for the selected calculation mode.

Calculates the heat-exchanger performance for the selected calculation mode.

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 via XML serialization.

Creates a deep copy via XML serialization.

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

CloseEditForm(): Closes and disposes the editing form.

Closes and disposes the editing form.

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

CreateDimensionsList(): Creates the dimensions list (Area) for this heat exchanger.

Creates the dimensions list (Area) for this heat exchanger.

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

CreateDynamicProperties(): Creates additional properties for dynamic simulation mode.

Creates additional properties for dynamic simulation mode.

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

DeCalculate(): Clears all calculated results.

Clears all calculated results.

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

DisplayEditForm(): Opens or activates the editing form.

Opens or activates the editing form.

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

GetCalculationModes(): Returns an array of strings describing all available calculation modes for this heat exchanger.

Returns an array of strings describing all available calculation modes for this heat exchanger.

public override string[] GetCalculationModes()
Public Overrides Function GetCalculationModes() As String()

GetChartModel(string): Builds an OxyPlot model of the hot and cold temperature profiles against the heat exchanged, in the flowsheet's units.

Builds an OxyPlot model of the hot and cold temperature profiles against the heat exchanged, in the flowsheet's units.

Parameter Type Description
name String
public override object GetChartModel(string name)
Public Overrides Function GetChartModel(name As String) As Object

GetChartModelNames(): Chart names the PFD chart object can embed: the heat exchange (T-Q) profile of the last calculation.

Chart names the PFD chart object can embed: the heat exchange (T-Q) profile of the last calculation.

public override List<string> GetChartModelNames()
Public Overrides Function GetChartModelNames() As List(Of String)

GetDefaultProperties(): Returns the default set of properties shown in the flowsheet inspector.

Returns the default set of properties shown in the flowsheet inspector.

public override string[] GetDefaultProperties()
Public Overrides Function GetDefaultProperties() As String()

GetDisplayDescription(): Returns the localised display description.

Returns the localised display description.

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

GetDisplayName(): Returns the localised display name.

Returns the localised display name.

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

GetIconBitmapBytes(): Returns the icon bitmap as a byte array.

Returns the icon bitmap as a byte array.

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

GetProperties(PropertyType): Returns an array of property identifiers for the specified property type.

Returns an array of property identifiers for the specified property type.

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

GetPropertyDescription(string): Returns a human-readable description of the specified property.

Returns a human-readable description of the specified property.

Parameter Type Description
p String
public override string GetPropertyDescription(string p)
Public Overrides Function GetPropertyDescription(p As String) As String

GetPropertyUnit(string, IUnitsOfMeasure): Returns the unit string for the specified property.

Returns the unit string for the specified property.

Parameter Type Description
prop String
su IUnitsOfMeasure
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 the specified property.

Returns the value of the specified property.

Parameter Type Description
prop String
su IUnitsOfMeasure
public override object GetPropertyValue(string prop, IUnitsOfMeasure su = null)
Public Overrides Function GetPropertyValue(prop As String, su As IUnitsOfMeasure = Nothing) As Object

GetReport(IUnitsOfMeasure, CultureInfo, string): Generates a plain-text report of the heat-exchanger results.

Generates a plain-text report of the heat-exchanger results.

Parameter Type Description
su IUnitsOfMeasure
ci CultureInfo
numberformat String
public override string GetReport(IUnitsOfMeasure su, CultureInfo ci, string numberformat)
Public Overrides Function GetReport(su As IUnitsOfMeasure, ci As CultureInfo, numberformat As String) As String

GetStructuredReport(): Returns a structured (table-based) report of the heat-exchanger results.

Returns a structured (table-based) report of the heat-exchanger results.

public override List<Tuple<ReportItemType, string[]>> GetStructuredReport()
Public Overrides Function GetStructuredReport() As List(Of Tuple(Of ReportItemType, String()))

LoadData(List<XElement>): Restores the heat exchanger state from a list of XML elements, handling backward-compatible renames and...

Restores the heat exchanger state from a list of XML elements, handling backward-compatible renames and deserialising dynamic accumulation streams.

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

RunDynamicModel(): Performs the dynamic-mode calculation for the heat exchanger.

Performs the dynamic-mode calculation for the heat exchanger.

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

SaveData(): Serializes the heat exchanger state, including hot- and cold-side dynamic accumulation streams, into a list of XML...

Serializes the heat exchanger state, including hot- and cold-side dynamic accumulation streams, into a list of XML elements.

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

SetCalculationMode(int): Sets the active calculation mode for the heat exchanger using a numeric identifier.

Sets the active calculation mode for the heat exchanger using a numeric identifier.

Parameter Type Description
modeID Int32 The integer ID corresponding to a HeatExchangerCalcMode value.
public override object SetCalculationMode(int modeID)
Public Overrides Function SetCalculationMode(modeID As Integer) As Object

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

Sets the value of the specified property.

Parameter Type Description
prop String
propval Object
su IUnitsOfMeasure
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

UpdateDimensionsList(): Updates the Area dimension value from the current calculated area.

Updates the Area dimension value from the current calculated area.

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

UpdateEditForm(): Refreshes the editing form with updated data.

Refreshes the editing form with updated data.

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

Validate(): Validates the heat-exchanger configuration and stream connections.

Validates the heat-exchanger configuration and stream connections.

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

Fields

AccumulationStreamsCold: Per-cell cold-side holdup streams (one per discretization cell) used in dynamic mode.

Per-cell cold-side holdup streams (one per discretization cell) used in dynamic mode.

public List<MaterialStream> AccumulationStreamsCold
Public AccumulationStreamsCold As List(Of MaterialStream)

AccumulationStreamsHot: Per-cell hot-side holdup streams (one per discretization cell) used in dynamic mode.

Per-cell hot-side holdup streams (one per discretization cell) used in dynamic mode.

public List<MaterialStream> AccumulationStreamsHot
Public AccumulationStreamsHot As List(Of MaterialStream)

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 object f
Public f As Object

WallTemperatures: Per-cell wall temperatures (K) used in dynamic mode when a wall thermal mass is set.

Per-cell wall temperatures (K) used in dynamic mode when a wall thermal mass is set.

public List<double> WallTemperatures
Public WallTemperatures As List(Of Double)