This Python application designs and analyzes a shell-and-tube heat exchanger for use in Asset Performance Management (APM) systems. It supports both LMTD and epsilon-NTU sizing methods, counterflow and parallel flow arrangements, and reads all configuration and fluid property data from user-editable files.
- Reads input from
config.yaml
(flow rates, temperatures, pressures, geometry, etc.) - Fluid properties loaded from
fluids.csv
(density, Cp, viscosity) - Supports both counterflow and parallel flow
- Sizing by LMTD or epsilon-NTU method (set in config)
- Computes:
- Required heat transfer area
- Number of tubes
- Pressure drop (shell and tube sides)
- Outlet temperatures
- Effectiveness
- Generates plots:
temperature_distribution.png
: Temperature profile along the exchangereffectiveness_vs_ntu.png
: Effectiveness as a function of NTU
- Easily extensible for APM dashboard or API integration
- Clone or download this repository.
- Install dependencies:
pip install -r requirements.txt
- Edit
config.yaml
andfluids.csv
as needed for your scenario.
Run the main script:
python main.py
config.yaml
: Main configuration (see sample for required fields)fluids.csv
: Fluid property database (density, Cp, viscosity)
- Console output with all key results
- Plots saved as:
temperature_distribution.png
effectiveness_vs_ntu.png
- The code is modular and ready for integration into APM dashboards or APIs.
- Add new fluids to
fluids.csv
as needed. - Expand
utils.py
for more unit conversions or property correlations.
MIT License (or specify your own)