claythe3ed/solar-absorption-fridge

Solar-powered NH3-H2O absorption refrigerator for off-grid cooling — thermodynamic model, CAD, P&ID

Python

1

20 commits

updated Oct 5, 2026

See the code

See what people are saying

SourceMessageScoreDate

I’m looking for people who work with ammonia refrigeration / absorption refrigeration / pressure vessels to tear apart my preliminary design (r/Physics)

I’m developing a 200 W solar-powered NH₃–H₂O absorption refrigerator for off-grid use in Sudan. The project is open on GitHub and contains the current thermodynamic model, component specifications, CAD, CFD work, BOM, validation work, and design documentation:…

0

Oct 5, 2026

README

Solar Absorption Fridge

Solar Absorption Fridge — Engineering Diagram

Solar-powered NH₃-H₂O absorption refrigeration system for off-grid use. Designed for household deployment in Sudan and similar climates.

License: MIT Python 3.12+ CoolProp teqp Release Status


Overview

A research-stage design and simulation repository for a solar-powered absorption refrigerator. Its stated performance values are model targets, not independently demonstrated prototype results or a released build design.

Not approved for fabrication, pressure testing, ammonia charging, or operation. This project contains unresolved pressure, material, geometry, and safety issues. Do not build from the repository; see the build-release gate.

We welcome independent technical review from engineers and researchers worldwide. See the engineering validation call.

ParameterValue
Cooling capacity200 W
Cold box150 L (2 to 8 °C)
Working pairNH₃ (refrigerant) + H₂O (absorbent)
COP0.424
Solar collectorCPC, 1.59 m² aperture
Generator temperature135 °C
Operating pressures2.36 bar (low) / 15.55 bar (high)

Full design in docs/DESIGN_SUMMARY.md.


Why this exists

CoolProp's HEOS backend requires departure-function parameters (βij, γij) for every binary pair. For ammonia-water (CAS 7664-41-7 + 7732-18-5), those parameters are not available.

This is a deliberate design choice, not an oversight. As clarified by the CoolProp maintainer in CoolProp Issue #341:

"I think this is a little bit out of scope to use non-reference-grade models in CoolProp for a system that wants a reference-grade implementation."

CoolProp's scope is limited to reference-grade formulations (Helmholtz free energy, IAPWS-2001). The Gibbs-excess class of models — including Ziegler-Trepp — is explicitly out of scope.

This project provides a validated engineering alternative for users who need ammonia-water mixture properties without a REFPROP license.


Three paths for NH₃-H₂O properties

PathStatusAccuracyLicense
CoolProp (pure components)Works todayNIST-traceable, < 0.1%MIT
teqp AmmoniaWaterTillnerRothWorks on x86_64IAPWS-2001 referenceMIT
Ziegler-Trepp (this repo)Validated±0.63 °C vs CoolPropMIT

Validation Results

The Ziegler-Trepp implementation was validated against CoolProp for pure components and published literature for the mixture.

TestComputedReferenceError
Pure NH₃ at 15.5 bar39.70 °C40.0 °C (CoolProp)0.30 °C
Pure NH₃ at 10 bar24.65 °C24.9 °C (CoolProp)0.25 °C
Pure H₂O at 1 bar98.98 °C99.6 °C (NIST)0.62 °C
y_NH₃ at 15.5 bar, x=0.250.90590.90–0.92 (Herold)in band
Cycle COP (T_gen = 135 °C)0.4240.4–0.6 (published)within band
Energy balance closure0.00 W0.00 W (ideal)exact

Full numerical comparison against teqp (IAPWS-2001): 12 points, P = 1 to 25 bar, max error 0.63 °C, mean error 0.32 °C.

See src/thermo/comparison/teqp_vs_zt.py and results/logs/ for details.


Testing Notes

Five independent approaches were tested. Full summary:

ApproachStatusNotes
CoolProp (pure components)✅ WorksNIST-traceable, < 0.1% error
Ziegler-Trepp (this repo)✅ ValidatedMax 0.63 °C error vs CoolProp
teqp AmmoniaWaterTillnerRoth✅ LoadsAPI functional, get_Ar01() verified
teqp VLE solvers⚠️ Unstable56 grid attempts, 0 physical results
CoolProp HEOS mixture❌ No dataNo binary pair for NH₃-H₂O

Details

  • CoolProp does not include binary interaction parameters for NH₃-H₂O. Documented at Issue #341.
  • teqp 0.23.2 loads AmmoniaWaterTillnerRoth and exposes the full API. However, the mixture VLE solvers (mixture_VLE_px, mix_VLE_Tp) fail to converge for NH₃-H₂O with physically plausible initial guesses. Documented at teqp Issue #193.
  • Ziegler-Trepp (this repository) is the validated engineering alternative. It is a Gibbs-excess model, not a Helmholtz reference formulation, which is why it is not suitable for direct inclusion in CoolProp.

Quick Start

git clone https://github.com/claythe3ed/solar-absorption-fridge.git
cd solar-absorption-fridge

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Thermodynamic validation
python src/thermo/ziegler_trepp_props.py

# Full cycle model
python src/thermo/cycle_model.py

# teqp vs Ziegler-Trepp comparison
python src/thermo/comparison/teqp_vs_zt.py

# Solar collector sizing
python src/geometry/solar_collector.py

# Mechanical components sizing
python src/geometry/components_sizing.py

# Bill of Materials
python src/geometry/bom_quantities.py

Requirements

· Python 3.12 or newer · CoolProp 8.0 · numpy, scipy, matplotlib · teqp 0.23.2 (optional, for validation)


Design Summary

Component Specification Cooling capacity 200 W Cold box 150 L, target 2–8 °C COP 0.424 Working pair NH₃ (refrigerant) + H₂O (absorbent) Generator / receiver 200 mm × 4 m carbon steel, 2.5 mm wall, 48.5 kg Solar collector CPC, 400 mm aperture, 3.98 m length, 1.59 m² Condenser 7.5 m × 15 mm finned steel, air-cooled Evaporator 6.37 m × 10 mm finned steel, in cold box Solution heat exchanger 70% effectiveness, 277 W duty Solution tanks 3.0 L rich + 2.3 L poor Operating pressures 2.36 bar (low) / 15.55 bar (high)

Full design in docs/DESIGN_SUMMARY.md.


Thermodynamic Model

· Pure components (NH₃, H₂O): CoolProp 8.0 (NIST-accurate) · Mixture (NH₃-H₂O): Ziegler-Trepp (1984) Gibbs-excess model · Coefficients E1–E16 cross-validated between two independent sources (Kherris 2013, Sadhukhan et al.) · Bubble and dew points: Patek & Klomfar (1995) · Reference validation: teqp 0.23.2 (AmmoniaWaterTillnerRoth) · 12 pure-component points, max error 0.63 °C · Full mixture VLE comparison: convergence issues documented


CAD Models

All models generated by Python scripts in FreeCAD 1.0 (headless).

Component Dimensions Script Generator 200 mm OD × 4 m, 2.5 mm wall cad/scripts/generator.py CPC Mirror 400 mm × 3980 mm parabolic cad/scripts/all_components.py Condenser 15 mm × 7.5 m, 5 rings cad/scripts/all_components.py Evaporator 10 mm × 6.37 m, 7 rings cad/scripts/all_components.py Cold Box 700 × 700 × 800 mm hollow cad/scripts/all_components.py

Assembly renders in results/plots/.


Bill of Materials

35 items across 8 categories. Quantities only — no prices, since the SDG/USD rate is not stable.

Full list in results/bom.csv. Generator script: src/geometry/bom_quantities.py.


Project Structure

solar-absorption-fridge/
├── src/
│   ├── thermo/              # Thermodynamic models
│   │   ├── ziegler_trepp_props.py
│   │   ├── cycle_model.py
│   │   ├── ammonia_properties.py
│   │   └── comparison/      # teqp vs ZT validation
│   ├── geometry/            # Solar, components, BOM, P&ID
│   └── main.py
├── cad/
│   ├── scripts/             # FreeCAD generator scripts
│   ├── step/                # STEP files
│   └── stl/                 # STL files
├── docs/
│   ├── DESIGN_SUMMARY.md
│   ├── SESSION_SUMMARY.md
│   ├── images/              # Engineering diagrams
│   ├── datasheets/          # Coefficient tables
│   ├── patents/             # Reference patents
│   └── report/              # PDF report + HTML source
├── results/
│   ├── plots/               # P&ID, assembly renders
│   ├── logs/                # Simulation logs
│   └── bom.csv              # Bill of Materials
└── notes/
    └── log.md               # Development journal

Documentation

· Design Report (PDF) — 6-page Swiss-design report · Wiki — Detailed design notes · CoolProp Issue #341 — NH₃-H₂O binary pair gap · teqp Issue #193 — ARM64 build + VLE findings · Design Summary — Components and cycle data · Session Summary — Development log


References

· Ziegler & Trepp (1984), Int. J. Refrigeration 7(2):101–106 · Patek & Klomfar (1995), Int. J. Refrigeration 18(4):228–234 · Tillner-Roth & Friend (1998), J. Phys. Chem. Ref. Data 27(1):63–96 · Kherris et al. (2013), Thermal Science 17(3):891–902 · Herold, Radermacher, Klein — Absorption Chillers and Heat Pumps, CRC Press


Related Work

· teqp — Same author as CoolProp. Provides AmmoniaWaterTillnerRoth() as a direct implementation of Tillner-Roth & Friend (1998). Recommended by the CoolProp maintainer. · CoolProp Issue #341 — The long-standing gap this project documents and works around.


License

MIT — see LICENSE.


Author

Muhammad Ali (@claythe3ed)

absorption-chiller
ammonia-water
coolprop
cpc-concentrator
off-grid
refrigeration
solar-energy
sudan
thermodynamics
tillner-roth
ziegler-trepp

claythe3ed/solar-absorption-fridge

Solar-powered NH3-H2O absorption refrigerator for off-grid cooling — thermodynamic model, CAD, P&ID

Python

1

20 commits

updated Oct 5, 2026

See the code

See what people are saying

SourceMessageScoreDate

I’m looking for people who work with ammonia refrigeration / absorption refrigeration / pressure vessels to tear apart my preliminary design (r/Physics)

I’m developing a 200 W solar-powered NH₃–H₂O absorption refrigerator for off-grid use in Sudan. The project is open on GitHub and contains the current thermodynamic model, component specifications, CAD, CFD work, BOM, validation work, and design documentation:…

0

Oct 5, 2026

README

Solar Absorption Fridge

Solar Absorption Fridge — Engineering Diagram

Solar-powered NH₃-H₂O absorption refrigeration system for off-grid use. Designed for household deployment in Sudan and similar climates.

License: MIT Python 3.12+ CoolProp teqp Release Status


Overview

A research-stage design and simulation repository for a solar-powered absorption refrigerator. Its stated performance values are model targets, not independently demonstrated prototype results or a released build design.

Not approved for fabrication, pressure testing, ammonia charging, or operation. This project contains unresolved pressure, material, geometry, and safety issues. Do not build from the repository; see the build-release gate.

We welcome independent technical review from engineers and researchers worldwide. See the engineering validation call.

ParameterValue
Cooling capacity200 W
Cold box150 L (2 to 8 °C)
Working pairNH₃ (refrigerant) + H₂O (absorbent)
COP0.424
Solar collectorCPC, 1.59 m² aperture
Generator temperature135 °C
Operating pressures2.36 bar (low) / 15.55 bar (high)

Full design in docs/DESIGN_SUMMARY.md.


Why this exists

CoolProp's HEOS backend requires departure-function parameters (βij, γij) for every binary pair. For ammonia-water (CAS 7664-41-7 + 7732-18-5), those parameters are not available.

This is a deliberate design choice, not an oversight. As clarified by the CoolProp maintainer in CoolProp Issue #341:

"I think this is a little bit out of scope to use non-reference-grade models in CoolProp for a system that wants a reference-grade implementation."

CoolProp's scope is limited to reference-grade formulations (Helmholtz free energy, IAPWS-2001). The Gibbs-excess class of models — including Ziegler-Trepp — is explicitly out of scope.

This project provides a validated engineering alternative for users who need ammonia-water mixture properties without a REFPROP license.


Three paths for NH₃-H₂O properties

PathStatusAccuracyLicense
CoolProp (pure components)Works todayNIST-traceable, < 0.1%MIT
teqp AmmoniaWaterTillnerRothWorks on x86_64IAPWS-2001 referenceMIT
Ziegler-Trepp (this repo)Validated±0.63 °C vs CoolPropMIT

Validation Results

The Ziegler-Trepp implementation was validated against CoolProp for pure components and published literature for the mixture.

TestComputedReferenceError
Pure NH₃ at 15.5 bar39.70 °C40.0 °C (CoolProp)0.30 °C
Pure NH₃ at 10 bar24.65 °C24.9 °C (CoolProp)0.25 °C
Pure H₂O at 1 bar98.98 °C99.6 °C (NIST)0.62 °C
y_NH₃ at 15.5 bar, x=0.250.90590.90–0.92 (Herold)in band
Cycle COP (T_gen = 135 °C)0.4240.4–0.6 (published)within band
Energy balance closure0.00 W0.00 W (ideal)exact

Full numerical comparison against teqp (IAPWS-2001): 12 points, P = 1 to 25 bar, max error 0.63 °C, mean error 0.32 °C.

See src/thermo/comparison/teqp_vs_zt.py and results/logs/ for details.


Testing Notes

Five independent approaches were tested. Full summary:

ApproachStatusNotes
CoolProp (pure components)✅ WorksNIST-traceable, < 0.1% error
Ziegler-Trepp (this repo)✅ ValidatedMax 0.63 °C error vs CoolProp
teqp AmmoniaWaterTillnerRoth✅ LoadsAPI functional, get_Ar01() verified
teqp VLE solvers⚠️ Unstable56 grid attempts, 0 physical results
CoolProp HEOS mixture❌ No dataNo binary pair for NH₃-H₂O

Details

  • CoolProp does not include binary interaction parameters for NH₃-H₂O. Documented at Issue #341.
  • teqp 0.23.2 loads AmmoniaWaterTillnerRoth and exposes the full API. However, the mixture VLE solvers (mixture_VLE_px, mix_VLE_Tp) fail to converge for NH₃-H₂O with physically plausible initial guesses. Documented at teqp Issue #193.
  • Ziegler-Trepp (this repository) is the validated engineering alternative. It is a Gibbs-excess model, not a Helmholtz reference formulation, which is why it is not suitable for direct inclusion in CoolProp.

Quick Start

git clone https://github.com/claythe3ed/solar-absorption-fridge.git
cd solar-absorption-fridge

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Thermodynamic validation
python src/thermo/ziegler_trepp_props.py

# Full cycle model
python src/thermo/cycle_model.py

# teqp vs Ziegler-Trepp comparison
python src/thermo/comparison/teqp_vs_zt.py

# Solar collector sizing
python src/geometry/solar_collector.py

# Mechanical components sizing
python src/geometry/components_sizing.py

# Bill of Materials
python src/geometry/bom_quantities.py

Requirements

· Python 3.12 or newer · CoolProp 8.0 · numpy, scipy, matplotlib · teqp 0.23.2 (optional, for validation)


Design Summary

Component Specification Cooling capacity 200 W Cold box 150 L, target 2–8 °C COP 0.424 Working pair NH₃ (refrigerant) + H₂O (absorbent) Generator / receiver 200 mm × 4 m carbon steel, 2.5 mm wall, 48.5 kg Solar collector CPC, 400 mm aperture, 3.98 m length, 1.59 m² Condenser 7.5 m × 15 mm finned steel, air-cooled Evaporator 6.37 m × 10 mm finned steel, in cold box Solution heat exchanger 70% effectiveness, 277 W duty Solution tanks 3.0 L rich + 2.3 L poor Operating pressures 2.36 bar (low) / 15.55 bar (high)

Full design in docs/DESIGN_SUMMARY.md.


Thermodynamic Model

· Pure components (NH₃, H₂O): CoolProp 8.0 (NIST-accurate) · Mixture (NH₃-H₂O): Ziegler-Trepp (1984) Gibbs-excess model · Coefficients E1–E16 cross-validated between two independent sources (Kherris 2013, Sadhukhan et al.) · Bubble and dew points: Patek & Klomfar (1995) · Reference validation: teqp 0.23.2 (AmmoniaWaterTillnerRoth) · 12 pure-component points, max error 0.63 °C · Full mixture VLE comparison: convergence issues documented


CAD Models

All models generated by Python scripts in FreeCAD 1.0 (headless).

Component Dimensions Script Generator 200 mm OD × 4 m, 2.5 mm wall cad/scripts/generator.py CPC Mirror 400 mm × 3980 mm parabolic cad/scripts/all_components.py Condenser 15 mm × 7.5 m, 5 rings cad/scripts/all_components.py Evaporator 10 mm × 6.37 m, 7 rings cad/scripts/all_components.py Cold Box 700 × 700 × 800 mm hollow cad/scripts/all_components.py

Assembly renders in results/plots/.


Bill of Materials

35 items across 8 categories. Quantities only — no prices, since the SDG/USD rate is not stable.

Full list in results/bom.csv. Generator script: src/geometry/bom_quantities.py.


Project Structure

solar-absorption-fridge/
├── src/
│   ├── thermo/              # Thermodynamic models
│   │   ├── ziegler_trepp_props.py
│   │   ├── cycle_model.py
│   │   ├── ammonia_properties.py
│   │   └── comparison/      # teqp vs ZT validation
│   ├── geometry/            # Solar, components, BOM, P&ID
│   └── main.py
├── cad/
│   ├── scripts/             # FreeCAD generator scripts
│   ├── step/                # STEP files
│   └── stl/                 # STL files
├── docs/
│   ├── DESIGN_SUMMARY.md
│   ├── SESSION_SUMMARY.md
│   ├── images/              # Engineering diagrams
│   ├── datasheets/          # Coefficient tables
│   ├── patents/             # Reference patents
│   └── report/              # PDF report + HTML source
├── results/
│   ├── plots/               # P&ID, assembly renders
│   ├── logs/                # Simulation logs
│   └── bom.csv              # Bill of Materials
└── notes/
    └── log.md               # Development journal

Documentation

· Design Report (PDF) — 6-page Swiss-design report · Wiki — Detailed design notes · CoolProp Issue #341 — NH₃-H₂O binary pair gap · teqp Issue #193 — ARM64 build + VLE findings · Design Summary — Components and cycle data · Session Summary — Development log


References

· Ziegler & Trepp (1984), Int. J. Refrigeration 7(2):101–106 · Patek & Klomfar (1995), Int. J. Refrigeration 18(4):228–234 · Tillner-Roth & Friend (1998), J. Phys. Chem. Ref. Data 27(1):63–96 · Kherris et al. (2013), Thermal Science 17(3):891–902 · Herold, Radermacher, Klein — Absorption Chillers and Heat Pumps, CRC Press


Related Work

· teqp — Same author as CoolProp. Provides AmmoniaWaterTillnerRoth() as a direct implementation of Tillner-Roth & Friend (1998). Recommended by the CoolProp maintainer. · CoolProp Issue #341 — The long-standing gap this project documents and works around.


License

MIT — see LICENSE.


Author

Muhammad Ali (@claythe3ed)

absorption-chiller
ammonia-water
coolprop
cpc-concentrator
off-grid
refrigeration
solar-energy
sudan
thermodynamics
tillner-roth
ziegler-trepp