Skip to the content.

Heat Exchanger Mechanical Design

Overview

For deposits inside tubes and their effect on process heat recovery and outlet pressures, see Fouling thermal-hydraulic rating.

The HeatExchangerMechanicalDesign class provides sizing estimates for shell-and-tube, plate-and-frame, air cooler, and double-pipe exchangers. It can be attached to a full two-stream HeatExchanger or to single-stream Heater and Cooler units that supply an auxiliary utility specification. The mechanical design routine evaluates the candidate exchanger types, computes the required UA and approach temperatures, and selects a preferred configuration based on area, weight, or pressure-drop criteria.

Prerequisites

For geometry-based gasketed plate rating, use PlateHeatExchangerDesignCalculator. It adds Martin chevron correlations, channel and port losses, effectiveness–NTU, fouling, and separate frame and bolt plate limits. The generic PLATE_AND_FRAME selection described below remains an area estimate.

Two-Stream Heat Exchangers

For a HeatExchanger, the design routine uses the duty, stream inlet/outlet temperatures, and (if provided) UA or thermal effectiveness to compute the log-mean temperature difference (LMTD) and overall heat-transfer requirements. The selected exchanger geometry is exposed through HeatExchangerSizingResult.

HeatExchanger exchanger = new HeatExchanger("hx", hotStream, coldStream);
exchanger.run();

exchanger.initMechanicalDesign();
HeatExchangerMechanicalDesign design = exchanger.getMechanicalDesign();
design.calcDesign();

HeatExchangerSizingResult result = design.getSelectedSizingResult();
System.out.println(result.getType() + " area = " + result.getRequiredArea());

Single-Stream Heaters and Coolers

A Heater or Cooler needs a UtilityStreamSpecification so the mechanical design can derive the utility-side temperatures or heat capacity rate.

Heater heater = new Heater("heater", feed);
heater.setOutTemperature(80.0, "C");

UtilityStreamSpecification utility = new UtilityStreamSpecification();
utility.setSupplyTemperature(180.0, "C");
utility.setReturnTemperature(160.0, "C");
utility.setOverallHeatTransferCoefficient(650.0);
heater.setUtilitySpecification(utility);

heater.run();
heater.initMechanicalDesign();
HeatExchangerMechanicalDesign design = heater.getMechanicalDesign();
design.calcDesign();

The specification supports setting:

You can also configure the utility through convenience setters such as setUtilitySupplyTemperature, setUtilityReturnTemperature, setUtilityHeatCapacityRate, and setUtilityApproachTemperature.

Inspecting Sizing Alternatives

All evaluated designs are available through getSizingResults(). Use the selection helpers to control the preferred configuration:

design.setCandidateTypes(
    HeatExchangerType.SHELL_AND_TUBE,
    HeatExchangerType.PLATE_AND_FRAME);

design.setSelectionCriterion(SelectionCriterion.MIN_WEIGHT);
design.calcDesign();