Skip to main content

Creating Streams

In this section, we use the classic 4SP1 example (Papoulias & Grossmann, 1983) to demonstrate how to define streams in EnergyIntegrationWebApp.

Consider the four-stream problem 1 (4SP1) shown below. The stream data in Table 1 are taken from Papoulias & Grossmann (1983).

StreamsFCp (kW/°C)Ts (°C)Tt (°C)Q (kW)
C1 (Cold)7.6260160+762
H2 (Hot)8.7916093-589
C3 (Cold)6.08116260+876
H4 (Hot)10.55249138-1171
S (Steam)270270
CW (Cooling water)3882
Table 1. Data for problem 4SP1.

Process Streams

For process streams, the framework requires at least the following parameters:

  • stream name
  • stream flow rate, on either a mass or molar basis, F
  • inlet temperature, Tin
  • outlet temperature, Tout
  • per-side temperature contribution, Tcont
  • molar heat capacity at constant pressure, Cp
  • heat-transfer coefficient, HTC

The corresponding editing area in the web app looks like this:

Name
Type
Kind
F
Tin
Tout
h1
hot
Common
value
mol/s
value
°C
value
°C
Stream detail
hot / Common
Pressure & composition
P_in
value
bar
P_out
value
bar
frac (comma-separated)
0.5,0.5
Thermophysical
H model
value
J/(mol·K)
Cp (molar heat capacity at constant pressure)
value
J/(mol·K)
Hvap is used for isothermal streams only.
HTC (heat transfer coefficient)
value
W/(m²·K)
Special
Tcont (ΔT)
value
K
min_TD (ΔT)
0
K
superheating_deg (ΔT)
0
K
subcooling_deg (ΔT)
0
K
Cost & pricing
cost (numeric; backend interprets)
0
-
pricing_basis
Energy

Let us begin with the flow-related inputs. Stream tables reported in the literature usually cannot be used directly in this framework, so some conversion is required first. In Table 1, FCp denotes the heat-capacity flow rate, that is, the product of the molar flow rate and the constant-pressure molar heat capacity, or equivalently the product of the mass flow rate and the specific heat capacity. In this framework, however, the stream flow rate and the constant-pressure molar or mass heat capacity must be entered separately. You therefore need to split the published FCp value into those two parts. The split itself is arbitrary. For example, if FCp = 7.62 kW/°C, you may set F = 1 kmol/s and the molar heat capacity to 7.62 J/(kmol*K), or set F = 7.62 kmol/s and the molar heat capacity to 1 J/(kmol*K). The result is the same.

Another point worth noting is the notation used in Table 1. Here, Ts denotes the supply temperature and Tt denotes the target temperature. In the context of heat exchanger networks, supply temperature is equivalent to inlet temperature, and target temperature is equivalent to outlet temperature. Therefore, for stream C1, you should set Tin = 60°C and Tout = 160°C.

F
Tin
Tout
value
kmol/s
60
°C
160
°C

Next, click the small triangle button at the far left of the stream row. This opens the Stream detail panel.

The field Special > Tcont (ΔT) represents the per-side temperature contribution. It is used to split the minimum approach temperature into two parts, one assigned to the hot side and the other to the cold side. When a hot stream exchanges heat with a cold stream, the minimum temperature difference between them is treated as the sum of their individual Tcont values.

In this example, we assume a minimum approach temperature of 10 K and split it equally between the hot and cold sides, so we set Tcont as 5 °C. The paper does not provide heat-transfer coefficients for the individual streams because this case study is used for energy targeting rather than economic optimization. For that reason, we simply set HTC as 1 kW/(K*m^2).

Next, enter 7.62 in Thermophysical-Cp and choose the unit J/(mol*K).

You will also see an advanced Hcoeff6 checkbox. If you enable it, six numeric input fields appear. These six fields correspond to the six coefficients in the enthalpy expression below.

Thermophysical
advanced Hcoeff6
Hcoeff6 (SI assumed). The second input is Cp.
a0
a1
a2
a3
a4
a5
H(T)=a0+a1T+a2T2+a3T3+a4T4+a5T5H(T) = a_0 + a_1 T + a_2 T^2 + a_3 T^3 + a_4 T^4 + a_5 T^5
(1)

The second coefficient in this expression is the constant-pressure molar or mass heat capacity. In most cases, the molar or mass heat capacity of a stream can be treated as constant. When that is the case, simply leave advanced Hcoeff6 unchecked and enter the value directly in the Cp field.

To add more streams, use the buttons at the top of the page:

Utilities

Table 1 also includes steam, which acts as the hot utility, and cooling water, which acts as the cold utility. However, their heat duties Q are unknown, and their FCp values are also unknown. In the context of this framework, that means the flow rates of steam and cooling water are not fixed in advance, while their molar or specific heat capacities are still treated as constants. At a given temperature and pressure, the heat capacity of steam or water is a physical property and does not vary arbitrarily with the optimization problem.

To model that situation, specify the flow rate as a range. The framework will then automatically treat it as a decision variable. Click the mode toggle button in the flow-rate field to switch from fixed mode to variable mode. You will then see two numeric inputs, corresponding to the lower and upper bounds of the flow rate. In almost all examples, the lower bound can simply be set to 0. The upper bound only needs to be a reasonable initial estimate. For this example, you need to estimate the maximum amount of steam and cooling water that might be used. Do not worry about being too conservative here: providing an upper bound up to roughly 1000 times larger than the optimum is usually still numerically stable. For this example, use the following input:

F
0
1000
kmol/s

Because steam releases heat at essentially constant temperature, we have Tin = Tout. In that case, the actual heat released by the stream is determined by its molar or mass enthalpy of vaporization rather than by its heat capacity. Whenever a stream has Tin = Tout, you should provide a latent-heat parameter, Hvap, instead of heat-capacity coefficients. Enter 100 in Thermophysical-Hvap with unit J/mol. Because the steam stream has Tin = Tout, any value entered for Cp will be ignored automatically.

Utilities are usually not free, so we use the cost field to define the utility price. The pricing_basis can be either energy or flowrate. In classical heat exchanger network synthesis problems, pricing based on energy is the more common choice. Here we set cost = 200, meaning that each 1 kJ of utility consumption costs 200 units of currency.

All other fields in Stream detail can be left blank in this example.

You can define the cooling-water stream in the same way. For the cooling-water stream, set Cp to 1 J/(mol*K) and Tcont to 5 K.

Finally, after all streams have been defined, your stream list may look like this:

Name
Type
Kind
F
Tin
Tout
C1
cold
Common
1 kmol/s
60 °C
160 °C
H2
hot
Common
1 kmol/s
160 °C
93 °C
C3
cold
Common
1 kmol/s
116 °C
260 °C
H4
hot
Common
1 kmol/s
249 °C
138 °C
HU1
hot
IsothermalFixed
0..1000 kmol/s
270 °C
270 °C
CU1
cold
Common
0..1000 kmol/s
38 °C
82 °C

Checks

The Interval Configuration section below the stream list can be left unchanged. The default settings are sufficient for this example.

Interval Configuration
Intervals: auto / maxΔT: auto / Nodes: auto
Grid
node_rule
inout (Tin & Tout)
T_interval_method
default (from_streams)
maxΔT (K)
e.g. 10
maxnumT
e.g. 50
T_nodes_specified (K, descending; comma/space/newline separated)
e.g. 450, 400, 350
use_clapeyron
Forbidden match
Q_lb/Q_ub can be used to forbid matches or enforce min/max exchange. Leave all empty to ignore.
None.

Below Interval Configuration, the Validation panel reports missing required values and entries that do not satisfy the expected format. Use those messages as guidance whenever necessary. Before proceeding, you must resolve all validation errors until the panel turns green and displays "No issues."

Validation
No issues.

Build the Network

Once everything is ready, click the button in the upper-right corner. The application will then build the heat exchanger network automatically.

In the next section, we will discuss how to interpret the plots and tables produced after the network has been built.

References

Papoulias, S. A., & Grossmann, I. E. (1983). A Structural Optimization Approach in Process Synthesis—II. Heat Recovery Networks. Computers & Chemical Engineering, 7(6), 707–721. https://doi.org/10.1016/0098-1354(83)85023-6