Skip to content

Double Pipe Heat Exchanger — Hot Oil Cooler

Problem

Design a horizontal counter-current double pipe heat exchanger to cool hot oil using cooling water under the following operating conditions.

  • Hot fluid: Process Oil
  • Hot fluid flow rate: 8,000 kg/h
  • Inlet temperature: 140°C
  • Outlet temperature: 90°C
  • Cold fluid: Water
  • Cooling water flow rate: 12,000 kg/h
  • Cooling water inlet temperature: 25°C
  • Overall heat-transfer coefficient (U): 350 W/m²·K
  • Maximum allowable tube-side pressure drop: 0.2 bar
  • Maximum allowable annulus-side pressure drop: 0.2 bar
  • Flow arrangement: Counter Current
  • Orientation: Horizontal

Code

from processpi.units import *
from processpi.components import *
from processpi.streams import MaterialStream
from processpi.equipment.heatexchangers import HeatExchangerEngine


# ============================================
# DEFINE COMPONENTS
# ============================================

oil = Oil()
water = Water()


# ============================================
# DEFINE MATERIAL STREAMS
# ============================================

hot_in = MaterialStream(
    "oil_in",
    component=oil,
    phase="liquid",
    temperature=Temperature(140, "C"),
    pressure=Pressure(2, "bar"),
    mass_flow=MassFlowRate(8000, "kg/h"),
)

hot_out = MaterialStream(
    "oil_out",
    component=oil,
    phase="liquid",
    temperature=Temperature(90, "C"),
)

cold_in = MaterialStream(
    "water_in",
    component=water,
    phase="liquid",
    temperature=Temperature(25, "C"),
    pressure=Pressure(1, "bar"),
    mass_flow=MassFlowRate(12000, "kg/h"),
)

# Outlet temperature calculated automatically
cold_out = MaterialStream(
    "water_out",
    component=water,
)


# ============================================
# CREATE DOUBLE PIPE MODEL
# ============================================

hx = HeatExchangerEngine(
    method="kern"
)

hx.fit(
    hx_type="double_pipe",

    hot_in=hot_in,
    hot_out=hot_out,

    cold_in=cold_in,
    cold_out=cold_out,

    U=HeatTransferCoefficient(350, "W/m2K"),

    shell_dp=Pressure(0.2, "bar"),
    tube_dp=Pressure(0.2, "bar"),

    orientation="horizontal",
    flow_arrangement="counter_current",

    mode="design",
)

results = hx.run()


# ============================================
# OUTPUT
# ============================================

print(results.summary())

# Complete engineering report
results.detailed_summary()

Output

Heat Exchanger Summary
------------------------------
Type                  : double_pipe
Method                : basic
Heat Duty             : 127.915 kW
Area                  : 4.170 m²
U Calculated          : 350.000 W/m²·K
Tube Velocity         : 2.419 m/s
Shell Velocity        : 0.255 m/s
Tube Pressure Drop    : 16.63 kPa
Shell Pressure Drop   : 355.35 Pa
Tube Count            : 4
Tube Length           : 6.0 m
Status                : OK

Warnings
------------------------------
• [HYDRAULIC_WARNING] Annulus velocity below recommended range for double-pipe exchanger

Discussion

This example demonstrates the design of a horizontal counter-current double pipe heat exchanger, a compact and economical solution commonly used for moderate heat duties, pilot plants, utility services, and applications involving relatively low flow rates.

The HeatExchangerEngine performs a complete thermal and hydraulic design based on the specified process conditions and design constraints.

During the calculation, the engine automatically determines:

  • Heat duty
  • Required heat-transfer area
  • Tube sizing
  • Number of tubes
  • Tube length
  • Tube-side velocity
  • Annulus-side velocity
  • Tube-side pressure drop
  • Annulus-side pressure drop
  • Overall heat-transfer performance
  • Engineering validation

Design Results

Parameter Value
Heat Exchanger Type Double Pipe
Design Method Basic
Flow Arrangement Counter Current
Orientation Horizontal
Heat Duty 127.92 kW
Required Area 4.17 m²
Overall U 350 W/m²·K
Tube Count 4
Tube Length 6.0 m
Tube Velocity 2.42 m/s
Annulus Velocity 0.255 m/s

The calculated tube-side velocity lies within a desirable operating range, promoting turbulent flow and efficient heat transfer inside the inner tube.

The calculated annulus velocity is relatively low, which may reduce shell-side heat-transfer performance. The engine identifies this condition automatically and reports it as a hydraulic warning while still producing a valid design.


Engineering Assessment

The calculated heat-transfer area satisfies the required thermal duty while remaining compact, making the design suitable for typical industrial double-pipe applications.

The warning generated by the engine indicates that the annulus-side velocity is below the recommended design range. Depending on the application, this may be improved by:

  • Reducing annulus flow area
  • Selecting a different pipe size combination
  • Increasing annulus-side flow rate
  • Considering a multi-pass arrangement

These changes can improve turbulence and increase the overall heat-transfer coefficient.


Typical Applications

Double pipe heat exchangers are commonly used for:

  • Hot oil cooling
  • Chemical process heating
  • Utility water services
  • Pilot plants
  • Laboratory-scale process equipment
  • High-pressure process streams
  • Small process heaters and coolers

Additional Reports

For the complete calculation results, use:

results.detailed_summary()

To inspect every engineering calculation performed during the design:

results.trace()

For diagnostic information including warnings, optimization actions, and convergence details:

results.debug_summary()