Air Cooler 2¶
DWSIM Plus
Available with a DWSIM Plus (Patreon) subscription.
![]()
Air cooler (Air Cooler 2): cools a process fluid flowing through a tube bundle with ambient air moved by a fan. The air flow is proportional to the fan speed, and the fan electrical power is taken from the power inlet energy stream. Three calculation modes: specified process outlet temperature, specified tube geometry, or specified overall UA. Ports: fluid inlet, power (energy) inlet and fluid outlet.
DWSIM.UnitOperations.ExtensionPack.UnitOperations.AirCooler2
Assembly DWSIM.UnitOperations.ExtensionPack.dll · Object ← BaseClass ← UnitOpBaseClass ← AirCooler2
At a glance¶

| Port | Index | Connected in the example |
|---|---|---|
| Inlet, material | 0 |
Water-in |
| Inlet, energy | 1 |
Fan power |
| Outlet, material | 0 |
Water-out |
Example¶
This code runs on every build of this site, and the output below is what it printed.
fs = (Flowsheet.Create("AirCooler2Example")
.WithCompound("Water")
.WithPropertyPackage(PropertyPackages.SteamTables))
hot = fs.AddMaterialStream("Water-in").At(Q.Celsius(80.0), Q.Bar(3.0)).WithMassFlow(Q.KgPerSecond(10.0))
cooled = fs.AddMaterialStream("Water-out")
fan = fs.AddEnergyStream("Fan power")
cooler = (fs.AddAirCooler2("AC-1")
.WithCalculationMode(AirCooler2.CalcMode.SpecifyUA)
.WithOverallUA(60000.0) # W/K
.WithPressureDrop(Q.Bar(0.3))
.WithAirInletTemperature(Q.Celsius(35.0))
.WithAirPressure(Q.Bar(1.01325))
.WithReferenceFanSpeedRpm(300.0)
.WithReferenceAirFlowM3PerS(60.0) # air flow at the reference speed
.WithActualFanSpeedRpm(300.0)
.ConnectFeed(hot)
.ConnectProduct(cooled)
.ConnectEnergyFeed(fan, 1)) # fan power enters at port 1
cooler.Object.ElectricalPowerConversionFactor = 0.1 # kW per rpm
fs.AutoLayout()
fs.Solve()
o = cooler.Object
print(f"Heat load = {o.HeatLoad:.0f} kW ({o.ExchangerEfficiency:.1f} % of maximum)")
print(f"Water outlet T = {cooled.TemperatureK - 273.15:.2f} C")
print(f"Air outlet T = {o.AirOutletTemperature - 273.15:.2f} C")
print(f"Air flow = {o.ActualAirFlow:.1f} m3/s")
print(f"Fan electrical load = {fan.EnergyFlowKW:.1f} kW")
Output
Heat load = 1240 kW (65.8 % of maximum)
Water outlet T = 50.39 C
Air outlet T = 52.98 C
Air flow = 60.0 m3/s
Fan electrical load = 30.0 kW
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.
| ID | Name | Unit (SI) | Input |
|---|---|---|---|
Pressure Drop |
Pa | yes | |
Outlet Temperature |
K | yes | |
Overall UA |
W/K | yes | |
Reference Fan Speed |
rpm | yes | |
Reference Air Flow |
m3/s | yes | |
Actual Fan Speed |
rpm | yes | |
Actual Air Flow |
m3/s | yes | |
Air Inlet Temperature |
K | yes | |
Air Pressure |
Pa | yes | |
Air Outlet Temperature |
K | yes | |
Electrical Power Conversion Factor |
yes | ||
Heat Load |
kW | yes | |
Electrical Power Load |
kW | yes | |
Tube Internal Diameter |
mm | yes | |
Tube External Diameter |
mm | yes | |
Tube Length |
m | yes | |
Tube Pitch |
mm | yes | |
Tube Fouling |
K.m2/W | yes | |
Tube Passes |
yes | ||
Tube Number |
yes | ||
Tube Roughness |
m | yes | |
Tube Thermal Conductivity |
W/[m.K] | yes | |
Max Heat Exchange |
kW | yes | |
Exchanger Efficiency |
% | yes |
Learn more¶
-
User guide
-
FluentAPI
API members¶
Public members declared by this class. Inherited members are documented on the base classes.
Constructors¶
AirCooler2(): Initializes a new default instance of the AirCooler2 class.
Initializes a new default instance of the AirCooler2 class.
AirCooler2(string, string): Initializes a new instance of the AirCooler2 class with a name and description.
Initializes a new instance of the AirCooler2 class with a name and description.
| Parameter | Type | Description |
|---|---|---|
Name |
String |
The name of this unit operation. |
Description |
String |
A brief description of this unit operation. |
Properties¶
ActualAirFlow: Gets or sets the actual air volumetric flow, in m3/s.
Gets or sets the actual air volumetric flow, in m3/s. Recalculated on every run as ReferenceAirFlow times ActualFanSpeed divided by ReferenceFanSpeed.
ActualFanSpeed: Gets or sets the actual fan speed, in rpm.
Gets or sets the actual fan speed, in rpm. It sets the actual air flow and the fan electrical power load.
AirIn: Gets or sets the internal material stream for the ambient air entering the cooler, created on each calculation.
Gets or sets the internal material stream for the ambient air entering the cooler, created on each calculation. Not saved with the flowsheet.
AirInletTemperature: Gets or sets the air inlet temperature, in K.
Gets or sets the air inlet temperature, in K. Used when UseGlobalWeather is False.
AirOut: Gets or sets the internal material stream for the air leaving the cooler, created on each calculation.
Gets or sets the internal material stream for the air leaving the cooler, created on each calculation. Not saved with the flowsheet.
AirOutletTemperature: Gets or sets the calculated air outlet temperature, in K.
Gets or sets the calculated air outlet temperature, in K.
AirPressure: Gets or sets the air pressure, in Pa.
Gets or sets the air pressure, in Pa. Used when UseGlobalWeather is False.
Area: Gets or sets the external heat transfer area of the tubes, in m2, calculated in the geometry mode.
Gets or sets the external heat transfer area of the tubes, in m2, calculated in the geometry mode.
CalculationMode: Gets or sets the calculation mode: 0 = SpecifyOutletTemperature (process fluid outlet temperature given; heat load...
Gets or sets the calculation mode: 0 = SpecifyOutletTemperature (process fluid outlet temperature given; heat load and overall UA calculated), 1 = SpecifyGeometry (tube geometry given; outlet temperatures, tube pressure drop, overall UA, LMTD and area calculated), 2 = SpecifyUA (overall UA given; heat load and outlet temperatures calculated).
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.
ComponentName: Gets or sets the CAPE-OPEN component name for this unit operation.
Gets or sets the CAPE-OPEN component name for this unit operation.
ElectricalPowerConversionFactor: Gets or sets the fan electrical power per unit of fan speed, in kW/rpm.
Gets or sets the fan electrical power per unit of fan speed, in kW/rpm. The electrical power load is this factor times ActualFanSpeed.
ElectricalPowerLoad: Gets or sets the calculated fan electrical power, in kW, which is written to the power inlet energy stream.
Gets or sets the calculated fan electrical power, in kW, which is written to the power inlet energy stream.
ExchangerEfficiency: Gets or sets the calculated exchanger efficiency: heat load divided by the maximum theoretical heat exchange, in %.
Gets or sets the calculated exchanger efficiency: heat load divided by the maximum theoretical heat exchange, in %.
HeatLoad: Gets or sets the calculated heat removed from the process fluid, in kW.
Gets or sets the calculated heat removed from the process fluid, in kW.
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).
LMTD: Gets or sets the calculated log mean temperature difference, in K.
Gets or sets the calculated log mean temperature difference, in K.
LMTD_F: Gets or sets the LMTD correction factor F, calculated in the geometry mode.
Gets or sets the LMTD correction factor F, calculated in the geometry mode.
MaxHeatExchange: Gets or sets the calculated maximum theoretical heat exchange between the process fluid and the air, in kW.
Gets or sets the calculated maximum theoretical heat exchange between the process fluid and the air, in kW.
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).
OutletTemperature: Gets or sets the process fluid outlet temperature, in K.
Gets or sets the process fluid outlet temperature, in K. Input in the outlet temperature mode; calculated in the other modes.
OverallUA: Gets or sets the overall heat transfer coefficient times area (UA), in W/K.
Gets or sets the overall heat transfer coefficient times area (UA), in W/K. Input in the UA mode; calculated in the other modes.
PressureDrop: Gets or sets the process fluid (tube side) pressure drop, in Pa.
Gets or sets the process fluid (tube side) pressure drop, in Pa. Input in the outlet temperature and UA modes; calculated in the geometry mode.
ReferenceAirFlow: Gets or sets the air volumetric flow delivered at the reference fan speed, in m3/s.
Gets or sets the air volumetric flow delivered at the reference fan speed, in m3/s.
ReferenceFanSpeed: Gets or sets the reference fan speed, in rpm, at which the fan delivers ReferenceAirFlow.
Gets or sets the reference fan speed, in rpm, at which the fan delivers ReferenceAirFlow.
Tube_De: Gets or sets the tube external diameter, in mm.
Gets or sets the tube external diameter, in mm.
Tube_Di: Gets or sets the tube internal diameter, in mm.
Gets or sets the tube internal diameter, in mm.
Tube_Fouling: Gets or sets the tube fouling factor, in m2.K/W.
Gets or sets the tube fouling factor, in m2.K/W.
Tube_Length: Gets or sets the tube length, in m.
Gets or sets the tube length, in m.
Tube_NumberPerShell: Gets or sets the number of tubes in the bundle.
Gets or sets the number of tubes in the bundle.
Tube_PassesPerShell: Gets or sets the number of tube passes.
Gets or sets the number of tube passes.
Tube_Pitch: Gets or sets the tube pitch (center-to-center spacing), in mm.
Gets or sets the tube pitch (center-to-center spacing), in mm. It must be larger than the tube external diameter.
Tube_Roughness: Gets or sets the tube wall roughness, in mm.
Gets or sets the tube wall roughness, in mm.
Tube_ThermalConductivity: Gets or sets the tube wall thermal conductivity, in W/(m.K).
Gets or sets the tube wall thermal conductivity, in W/(m.K).
UseGlobalWeather: Gets or sets whether the air inlet temperature and pressure are taken from the flowsheet's current weather conditions.
Gets or sets whether the air inlet temperature and pressure are taken from the flowsheet's current weather conditions. When False (default), AirInletTemperature and AirPressure are used.
Methods¶
Calculate(object): Calculates the object.
Calculates the object.
| 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.
DeCalculate(): Decalculates the object.
Decalculates the object.
DisplayEditForm(): Opens the editor of this object.
Opens the editor of this object. A host that has no editor for it does nothing.
GetDefaultProperties(): Returns the identifiers of the properties shown by default for this unit operation: outlet temperature, overall UA...
Returns the identifiers of the properties shown by default for this unit operation: outlet temperature, overall UA, heat load, electrical power load, actual air flow, air inlet and outlet temperatures, maximum heat exchange and exchanger efficiency.
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.
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. |
GetPropertyDescription(string): Returns a description of the specified property.
Returns a description of the specified property. This unit operation returns the property identifier unchanged.
| Parameter | Type | Description |
|---|---|---|
p |
String |
The property identifier. |
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. |
GetReport(IUnitsOfMeasure, CultureInfo, string): Generates a plain-text results report for this unit operation.
Generates a plain-text results report for this unit operation.
| Parameter | Type | Description |
|---|---|---|
su |
IUnitsOfMeasure |
The unit system used for formatting output values. |
ci |
CultureInfo |
The culture info used for number formatting. |
numberformat |
String |
A .NET numeric format string (e.g. "G6") applied to output values. |
GetStructuredReport(): Generates a structured (tabular) results report for display in the UI.
Generates a structured (tabular) results report for display in the UI.
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. |
PerformPostCalcValidation(): Performs post-calculation validation (no-op for this unit operation).
Performs post-calculation validation (no-op for this unit operation).
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¶