Skip to the content.

The neqsim.process.mechanicaldesign.heatexchanger package includes comprehensive TEMA (Tubular Exchanger Manufacturers Association) standard support for shell and tube heat exchanger design.

Table of Contents


Overview

Location: neqsim.process.mechanicaldesign.heatexchanger

Key Classes:

Standards Reference:


TEMA Designations

TEMA uses a three-letter code to specify heat exchanger configuration:

[Front Head] [Shell] [Rear Head]
    A          E        S       = AES type

Front Head Types (Stationary)

Type Name Description Application
A Channel & Removable Cover Bolted cover for tube access Most common
B Bonnet (Integral Cover) More economical Clean services
C Channel Integral with Tubesheet High pressure Process exchangers
N Channel Integral (Large) Similar to C Large sizes
D Special High Pressure Breech-lock design >1000 psi

Shell Types

Type Name Description ΔP Factor
E One-Pass Shell Most common, simplest 1.0
F Two-Pass with Longitudinal Baffle Better approach temp 0.8
G Split Flow Lower pressure drop 0.6
H Double Split Flow Very low ΔP 0.5
J Divided Flow Condensers 0.65
K Kettle Type Reboilers 0.7
X Cross Flow Gas cooling 0.3

Rear Head Types

Type Name Removable Bundle Thermal Expansion
L Fixed like B No Poor
M Fixed like A No Poor
N Fixed like N No Poor
P Outside Packed Floating Yes Good
S Floating with Backing Device Yes Good
T Pull-Through Floating Yes Good
U U-Tube Bundle Yes Excellent
W Externally Sealed Floating Yes Good

Common Configurations

Type Description Use Case
AES Most versatile, full access General process
BEM Fixed tubesheet, economical Clean fluids
AEU U-tube, thermal expansion High ΔT
AKT Kettle reboiler Distillation
BEU U-tube with bonnet Economical

TEMA Classes

Class Service Application Cost Factor
R Severe Refineries, petrochemical 1.0 (baseline)
C Moderate Chemical, general process 0.8
B Light HVAC, commercial 0.6

Class R Requirements (Most Stringent)

Class C Requirements

Class B Requirements


Shell and Tube Design Calculator

import neqsim.process.mechanicaldesign.heatexchanger.*;
import neqsim.process.mechanicaldesign.heatexchanger.TEMAStandard.*;

// Create calculator
ShellAndTubeDesignCalculator calc = new ShellAndTubeDesignCalculator();

// Set TEMA configuration
calc.setTemaDesignation("AES");
calc.setTemaClass(TEMAClass.R);

// Set thermal requirements
calc.setRequiredArea(150.0);  // m²

// Set design conditions
calc.setShellSidePressure(30.0);   // bara
calc.setTubeSidePressure(15.0);    // bara
calc.setDesignTemperature(200.0);  // °C

// Set tube parameters
calc.setTubeSize(StandardTubeSize.TUBE_3_4_INCH);
calc.setTubeLength(6096.0);  // mm (20 ft)
calc.setTubePasses(2);

// Run calculation
calc.calculate();

// Get results
System.out.println("Shell ID: " + calc.getShellInsideDiameter() + " mm");
System.out.println("Shell wall: " + calc.getShellWallThickness() + " mm");
System.out.println("Tube count: " + calc.getTubeCount());
System.out.println("Actual area: " + calc.getActualArea() + " m²");
System.out.println("Baffle count: " + calc.getBaffleCount());
System.out.println("Dry weight: " + calc.getTotalDryWeight() + " kg");
System.out.println("Total cost: $" + calc.getTotalCost());

// Get JSON report
String json = calc.toJson();

Tube Bundle Design

Standard Tube Sizes

Size OD (mm) OD (inch) Common BWG
3/8” 9.525 0.375 18, 20, 22
1/2” 12.7 0.500 16, 18, 20
5/8” 15.875 0.625 14, 16, 18
3/4” 19.05 0.750 14, 16, 18
1” 25.4 1.000 12, 14, 16

Tube Pitch Patterns

Pattern Angle Min Ratio Heat Transfer Cleaning
Triangular 30° 30° 1.25 Best Difficult
Rotated Triangular 60° 60° 1.25 Good Moderate
Square 90° 90° 1.25 Baseline Easy
Rotated Square 45° 45° 1.25 Good Moderate
// Set tube layout
calc.setPitchPattern(TubePitchPattern.TRIANGULAR_30);
calc.setTubePitchRatio(1.25);  // Pitch/OD ratio

// Calculate tube count
int tubeCount = TEMAStandard.estimateTubeCount(
    610.0,          // Shell ID (mm)
    19.05,          // Tube OD (mm)
    23.81,          // Tube pitch (mm)
    TubePitchPattern.TRIANGULAR_30,
    2               // Tube passes
);

Baffle Design

Baffle Types

Type Heat Transfer Pressure Drop Application
Single Segmental 1.0 1.0 Standard
Double Segmental 0.75 0.6 Lower ΔP
Triple Segmental 0.5 0.4 Very low ΔP
No-Tubes-In-Window 0.6 0.5 Long spans
Disc and Doughnut 0.5 0.55 Low ΔP
Rod Baffles 0.2 0.3 Vibration control

Baffle Spacing Limits

Per TEMA standards:

// Minimum baffle spacing
double minSpacing = TEMAStandard.getMinBaffleSpacing(
    610.0,          // Shell ID (mm)
    TEMAClass.R     // TEMA class
);

// Maximum baffle spacing
double maxSpacing = TEMAStandard.getMaxBaffleSpacing(610.0);

// Maximum unsupported tube span
double maxSpan = TEMAStandard.getMaxUnsupportedSpan(
    19.05,          // Tube OD (mm)
    "Carbon Steel"  // Tube material
);

Baffle Cut

Standard baffle cuts: 15%, 20%, 25%, 30%, 35%, 45%

Cut Effect
15-20% High heat transfer, high ΔP
25% Standard, balanced
30-35% Lower ΔP, reduced tube support
45% Very low ΔP, special applications

Materials and Sizing

Common Materials

Material Grade Allowable Stress (MPa) Application
Carbon Steel SA-516-70 137.9 Shell, tubesheets
Carbon Steel SA-179 103.4 Tubes
Stainless SA-240-316L 115.1 Corrosive service
Copper-Nickel SB-111-706 75.8 Seawater

Shell Wall Thickness

Per ASME Section VIII, Div. 1:

t = (P × R) / (S × E - 0.6 × P) + CA

Where:
t  = Wall thickness (mm)
P  = Design pressure (MPa)
R  = Shell inside radius (mm)
S  = Allowable stress (MPa)
E  = Joint efficiency
CA = Corrosion allowance (mm)

Tubesheet Thickness

Per TEMA:

t = G × √(0.785 × P / S) / η + CA

Where:
G  = Gasket diameter (mm)
P  = Design pressure (MPa)
S  = Allowable stress (MPa)
η  = Ligament efficiency
CA = Corrosion allowance (mm)

Cost Estimation

Weight-Based Estimation

// Get component weights
double shellWeight = calc.getShellWeight();
double tubeWeight = calc.getTubeWeight();
double tubesheetWeight = calc.getTubesheetWeight();
double headWeight = calc.getHeadWeight();
double baffleWeight = calc.getBaffleWeight();

// Total weights
double dryWeight = calc.getTotalDryWeight();
double operatingWeight = calc.getOperatingWeight();

// Cost estimate
double materialCost = calc.getMaterialCost();
double fabricationCost = calc.getFabricationCost();
double totalCost = calc.getTotalCost();

Cost Factors

Factor Impact on Cost
TEMA Class R vs B +40% for R
Floating head vs fixed +20-25%
Stainless vs carbon +300-400%
Pull-through vs split ring +5-10%
K-shell (kettle) +30%

Examples

Example 1: Process Heat Exchanger

// Oil cooler for offshore platform
ShellAndTubeDesignCalculator calc = new ShellAndTubeDesignCalculator();

calc.setTemaDesignation("AES");  // Floating head, easy maintenance
calc.setTemaClass(TEMAClass.R);  // Refinery grade

calc.setRequiredArea(200.0);
calc.setShellSidePressure(25.0);
calc.setTubeSidePressure(10.0);
calc.setDesignTemperature(150.0);

calc.setTubeSize(StandardTubeSize.TUBE_3_4_INCH);
calc.setTubeWallThickness(2.108);  // BWG 14
calc.setTubeLength(6096.0);        // 20 ft
calc.setTubePasses(4);

calc.setShellMaterial("Carbon Steel SA-516-70");
calc.setTubeMaterial("Stainless Steel SA-213-316L");

calc.calculate();

System.out.println(calc.toJson());

Example 2: Reboiler

// Kettle reboiler for distillation column
ShellAndTubeDesignCalculator calc = new ShellAndTubeDesignCalculator();

calc.setTemaDesignation("AKT");  // Kettle type, pull-through
calc.setTemaClass(TEMAClass.R);

calc.setRequiredArea(100.0);
calc.setShellSidePressure(5.0);   // Low pressure vapor space
calc.setTubeSidePressure(25.0);   // Steam or hot oil
calc.setDesignTemperature(250.0);

calc.calculate();

Example 3: Configuration Selection

// Recommend TEMA configuration
String config = TEMAStandard.recommendConfiguration(
    true,   // Needs mechanical cleaning
    true,   // Large temperature difference
    false,  // Not high pressure
    false   // Not hazardous
);
// Returns "AES"

// Get configuration details
TEMAConfiguration tema = TEMAStandard.getConfiguration(config);
System.out.println("Description: " + tema.getDescription());
System.out.println("Bundle removable: " + tema.isBundleRemovable());
System.out.println("Good thermal expansion: " + tema.hasGoodThermalExpansion());
System.out.println("Cost factor: " + tema.getCostFactor());

JSON Output Example

{
  "temaDesignation": "AES",
  "temaClass": "R",
  "shell": {
    "insideDiameter_mm": 610.0,
    "outsideDiameter_mm": 635.0,
    "wallThickness_mm": 12.7,
    "material": "Carbon Steel SA-516-70"
  },
  "tubes": {
    "count": 344,
    "outerDiameter_mm": 19.05,
    "wallThickness_mm": 2.108,
    "length_mm": 6096.0,
    "passes": 2,
    "pitch_mm": 23.81,
    "pitchPattern": "Triangular 30°",
    "material": "Carbon Steel SA-179"
  },
  "baffles": {
    "type": "Single Segmental",
    "count": 12,
    "spacing_mm": 457.0,
    "cut": 0.25
  },
  "area": {
    "required_m2": 150.0,
    "actual_m2": 158.4,
    "margin": 0.056
  },
  "weights": {
    "shell_kg": 1250.0,
    "tubes_kg": 2180.0,
    "tubesheets_kg": 580.0,
    "heads_kg": 420.0,
    "baffles_kg": 180.0,
    "totalDry_kg": 4610.0,
    "operating_kg": 5840.0
  },
  "costs": {
    "material_USD": 8500.0,
    "fabrication_USD": 25500.0,
    "total_USD": 34000.0
  }
}

See Also