Skip to content

Falling Film Evaporator

DWSIM Plus

Available with a DWSIM Plus (Patreon) subscription.

Falling film evaporator: heats the inlet liquid in a number of increments, each with a share of the pressure drop, and splits the result into a vapor outlet and a concentrated liquid outlet. The heat is set by an outlet temperature, an outlet vapor fraction, or the energy inlet stream. Ports: Material Inlet and Energy Inlet; Vapor Outlet and Concentrated Liquid.

DWSIM.UnitOperations.ExtensionPack.FallingFilmEvaporator
Assembly DWSIM.UnitOperations.ExtensionPack.dll · Object ← BaseClass ← UnitOpBaseClass ← FallingFilmEvaporator

At a glance

Falling Film Evaporator in the example flowsheet

Port Index Connected in the example
Inlet, material 0 Feed
Inlet, energy 1 Heating
Outlet, material 0 Vapor
Outlet, material 1 Concentrate

Example

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

fs = (Flowsheet.Create("FallingFilmExample")
      .WithCompounds("Water", "Ethylene glycol")
      .WithPropertyPackage(PropertyPackages.NRTL))

feed = (fs.AddMaterialStream("Feed")
        .At(Q.Celsius(60.0), Q.Bar(0.3))
        .SetCompoundMassFlow("Water", 4.0)              # kg/s
        .SetCompoundMassFlow("Ethylene glycol", 1.0))
vapor = fs.AddMaterialStream("Vapor")
concentrate = fs.AddMaterialStream("Concentrate")
steam = fs.AddEnergyStream("Heating")

# Evaporate until 60 % of the inlet moles leave as vapor, in 20 increments.
ffe = (fs.AddFallingFilmEvaporator("FFE-1")
       .WithCalculationMode(FallingFilmEvaporator.CalcMode.OutletVaporFraction)
       .WithOutletVaporFraction(0.6)
       .WithIncrementSteps(20)
       .ConnectFeed(feed)
       .ConnectEnergyFeed(steam, 1)                     # heating duty enters at port 1
       .ConnectProduct(vapor, 0)
       .ConnectProduct(concentrate, 1))

fs.AutoLayout()
fs.Solve()

c = concentrate.Object
glycol = c.GetCompoundMassFlow("Ethylene glycol") / c.GetMassFlow()
print(f"Heat load           = {ffe.Object.HeatLoad:.0f} kW")
print(f"Boiling temperature = {concentrate.TemperatureK - 273.15:.1f} C")
print(f"Vapor flow          = {vapor.Object.GetMassFlow():.3f} kg/s")
print(f"Concentrate flow    = {c.GetMassFlow():.3f} kg/s, {glycol * 100:.1f} wt% glycol")

Output

Heat load           = 6259 kW
Boiling temperature = 73.3 C
Vapor flow          = 2.588 kg/s
Concentrate flow    = 2.412 kg/s, 40.6 wt% glycol

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
Calculation Mode yes
Pressure Drop Pa yes
Increment yes
Outlet Temperature K yes
Outlet Vapor Fraction yes
Heat Load kW yes

Learn more

API members

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

Constructors

FallingFilmEvaporator(): Initializes a new default instance of the FallingFilmEvaporator class.

Initializes a new default instance of the FallingFilmEvaporator class.

public FallingFilmEvaporator()
Public Sub New()

FallingFilmEvaporator(string, string): Initializes a new instance of the FallingFilmEvaporator class with a name and description.

Initializes a new instance of the FallingFilmEvaporator 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.
public FallingFilmEvaporator(string Name, string Description)
Public Sub New(Name As String, Description As String)

Properties

CalculationMode: Gets or sets how the heat added is determined: OutletTemperature (0) heats up to...

Gets or sets how the heat added is determined: OutletTemperature (0) heats up to OutletTemperature; OutletVaporFraction (1, default) evaporates up to OutletVaporFraction; EnergyStream (2) adds the energy flow of the connected energy inlet stream. In the first two modes the computed heat load is written to the energy inlet stream.

public FallingFilmEvaporator.CalcMode CalculationMode { get; set; }
Public Property CalculationMode As FallingFilmEvaporator.CalcMode

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

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.

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

EvaporationProfile: Gets or sets the evaporation profile: one item per calculation increment with the temperature, pressure, heat added...

Gets or sets the evaporation profile: one item per calculation increment with the temperature, pressure, heat added and phase properties at that point. Calculated result.

public List<FallingFilmEvaporator.EvaporationProfileItem> EvaporationProfile { get; set; }
Public Property EvaporationProfile As List(Of FallingFilmEvaporator.EvaporationProfileItem)

HeatLoad: Gets or sets the total heat added to the process stream, in kW.

Gets or sets the total heat added to the process stream, in kW. Calculated result.

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

IncrementSteps: Gets or sets the number of increments the heating is divided into; each increment adds a row to...

Gets or sets the number of increments the heating is divided into; each increment adds a row to EvaporationProfile. Default 10.

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

IsPremium: Gets a value indicating whether this unit operation is a premium (DWSIM Patreon) unit operation.

Gets a value indicating whether this unit operation is a premium (DWSIM Patreon) unit operation. Always True; the object palette lists it under the Premium category.

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. Always False.

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

OutletTemperature: Gets or sets the specified outlet temperature, in K, used when CalculationMode is OutletTemperature.

Gets or sets the specified outlet temperature, in K, used when CalculationMode is OutletTemperature. Default 300 K.

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

OutletVaporFraction: Gets or sets the specified outlet vapor mole fraction, used when CalculationMode is...

Gets or sets the specified outlet vapor mole fraction, used when CalculationMode is OutletVaporFraction. Default 0.3.

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

PressureDrop: Gets or sets the total pressure drop across the evaporator, in Pa, distributed evenly over the increments.

Gets or sets the total pressure drop across the evaporator, in Pa, distributed evenly over the increments. Default 0.

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

Methods

Calculate(object): Calculates the object.

Calculates the object.

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

DeCalculate(): Decalculates the object.

Decalculates the object.

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

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

GetDefaultProperties(): Returns the identifiers of the properties shown by default for this unit operation.

Returns the identifiers of the properties shown by default for this unit operation.

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

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

Returns the description string for this unit operation type.

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

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

Returns the 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()

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

GetPropertyDescription(string): Returns the description of the specified property.

Returns the description of the specified property.

Parameter Type Description
p String The property name.
public override string GetPropertyDescription(string p)
Public Overrides Function GetPropertyDescription(p As String) 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

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.
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(): Generates a structured (tabular) results report for display in the UI.

Generates a structured (tabular) results report for display in the UI.

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

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

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 EditingForm_FallingFilm f
Public f As EditingForm_FallingFilm