Skip to main content
Logo

HEACalculator

License: GPL v3 Python Platforms

Tests Lint

DOI DOI

HEACalculator is a Python tool for calculating phenomenological parameters based on thermodynamics and physics to predict the formation of solid solutions in High Entropy Alloys (HEAs). It provides a CLI (Typer), a GUI (PyQt6), and a Python API.

Report a Bug | Request a Feature | Documentation


Installation

Choose the workflow that matches how you want to use HEACalculator.

Add to a Project with uv

Use this when HEACalculator should be installed inside a project's environment.

uv add HEACalculator
uv add "HEACalculator[gui]"

Use as a Standalone Tool with uv

Use this when you want uv to manage HEACalculator as a CLI tool rather than a project dependency.

Persistent install:

uv tool install HEACalculator
HEACalculator --help

One-off run without installing permanently:

uvx HEACalculator search single FeCoCrNi

With GUI support:

uv tool install "HEACalculator[gui]"
HEACalculator gui

or

uvx --from "HEACalculator[gui]" HEACalculator gui

Install with pip

Use this if you are not using uv.

pip install HEACalculator          # CLI only
pip install "HEACalculator[gui]"   # with GUI support

Usage

Command Line Interface

Run HEACalculator without arguments to display the help text.

HEACalculator


Single Alloy Calculations

HEACalculator_SearchSingle

HEACalculator search single <ALLOY> calculates all parameters and predictions for the given alloy and prints results to stdout.

HEACalculator search single FeCoCrNi

Append --json to get a machine-readable JSON output with raw numeric values instead of formatted text:

HEACalculator search single FeCoCrNi --json

Range Screening

HEACalculator_SearchRange

HEACalculator search range calculates all parameters and predictions for a composition range over a set of elements. Compositions are evaluated in parallel across all available CPU cores, so large screens complete significantly faster.

HEACalculator search range --elements "Al Ti V" --start 0 --end 100 --step 5

Append --csv or --json to get CSV or newline-delimited JSON instead of formatted text, and redirect it to a file with >:

HEACalculator search range --elements "Al Ti V" --start 0 --end 100 --step 5 --csv > results.csv
HEACalculator search range --elements "Al Ti V" --start 0 --end 100 --step 5 --json > results.ndjson

CSV Batch Calculations

HEACalculator search csv <FILE> calculates all parameters and predictions for every alloy listed in a CSV file.

HEACalculator search csv alloys.csv

If your CSV uses a different column name, override it with --column/-c:

HEACalculator search csv alloys.csv --column Alloy

Append --json to get newline-delimited JSON (one object per alloy) instead of CSV rows:

HEACalculator search csv alloys.csv --json

Graphical User Interface

HEACalculator gui

The GUI has two pages, switched via the navigation buttons on the left:


Parameters page (single alloy)

HEACalculator_GUI-Parameters
  1. Select elements from the periodic table (percentages are distributed equally by default)
  2. Adjust the at% values in the composition table as needed
  3. Click Calculate
  4. Click Save to export results as CSV

Batch Calculations page (range screening)

HEACalculator_GUI-RangeSearch

Equivalent to search range.

  1. Select elements from the periodic table
  2. Set the composition range and step size
  3. Click Search
  4. Click Save to export results as CSV

Python API

HEACalculator can also be imported as a library. The CLI and GUI both use the same HEACalculator class.


Single Alloy Calculations

HEACalculator(<ALLOY>) calculates all parameters and predictions for the given alloy. Printing it gives the same report as search single.

from HEACalculator import HEACalculator

hea = HEACalculator("FeCoCrNi")
print(hea)

Individual properties are available through hea.thermo, and solid solution predictions through hea.predictor:

hea.thermo.mixing_enthalpy                 # -3.75 kJ/mol
hea.thermo.mixing_entropy                  # 11.53 J/K.mol
hea.thermo.valence_electron_concentration  # 8.25
hea.thermo.omega                           # 5.75
hea.thermo.omega_at(800)                   # Omega at 800 K

hea.predictor.microstructure               # "FCC"
hea.predictor.model_1                      # "Solid Solution"
hea.predictor.model_7()                    # method, accepts optional parameters

Use get_dict() to get raw numeric values, the same data as --json. NaN values are returned as None:

import json

json.dumps(hea.get_dict())

Range Screening

HEACalculator.screen calculates many alloys in parallel. It takes a list of formulas or the output of find_all_comps, which generates the same compositions as search range. By default it uses all CPU cores; set n_workers to limit this. It yields fully calculated HEACalculator objects in input order.

import pandas as pd

from HEACalculator import HEACalculator
from HEACalculator.utils import find_all_comps

if __name__ == "__main__":  # required by multiprocessing on macOS and Windows
    compositions = find_all_comps("Al Ti V", start=0, end=100, step=5)
    results = pd.DataFrame(calc.get_dict() for calc in HEACalculator.screen(compositions, n_workers=4))

Features

  • Property calculations

    • Density
    • Melting Temperature
    • Mixing Enthalpy 1 2
    • Miedema Mixing Enthalpy 3
    • Mixing Entropy
    • Formation Enthalpy 4
    • Valence Electron Concentration (VEC)
    • Hume-Rothery Electron-to-Atom Ratio (e/a) 5
  • Parameters and predictions

    • Expected Microstructure 6
    • Delta Parameter (Atomic Size Difference) 7 8
    • Delta Parameter (CN12 Atomic Size Difference) 7 9
    • Electronegativity Difference (Allen CE scale) 10 11
    • Electronegativity Difference (Pauling scale) 12
    • Omega Parameter 13
    • Gamma Parameter 14
    • Lambda Parameter 15
    • Phi Parameter 16 17 18
    • Solid Solution Prediction Models
      • Model 1 13
      • Model 2 19
      • Model 3 14
      • Model 4 15
      • Model 5 16
      • Model 6 4
      • Model 7 20
      • Model 8 3

License

This project is licensed under the GNU GPLv3 License. See the LICENSE file for details.


Citation

If you use HEACalculator in your research, please cite the following:

Sarıtürk, D., Kalay, Y. E., & Arróyave, R. (2026). HEACalculator: An Open-Source Python Tool for Thermodynamic Property Calculation and Solid Solution Prediction in High-Entropy Alloys. arXiv. https://doi.org/10.48550/arXiv.2606.19661

Sarıtürk, D. (2019). HEACalculator. Zenodo. https://doi.org/10.5281/zenodo.3590318

BibTeX:

@misc{sariturk_2026_arxiv,
  author    = {Sarıtürk, Doğuhan and Kalay, Yunus Eren and Arróyave, Raymundo},
  title     = {{HEACalculator}: An Open-Source {Python} Tool for Thermodynamic Property Calculation and Solid Solution Prediction in High-Entropy Alloys},
  year      = 2026,
  publisher = {arXiv},
  doi       = {10.48550/arXiv.2606.19661},
  url       = {https://doi.org/10.48550/arXiv.2606.19661},
}

@software{sariturk_2019_3590318,
  author    = {Sarıtürk, Doğuhan},
  title     = {HEACalculator},
  year      = 2019,
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.3590318},
  url       = {https://doi.org/10.5281/zenodo.3590318},
}
  1. Zhang, Y.; Zuo, T.T.; Tang, Z.; Gao, M.C.; Dahmen, K.A.; Liaw, P.K.; Lu, Z.P. Prog. Mater. Sci. 2014, 61, 1–93. ↩

  2. Takeuchi, A.; Inoue, A. Mater. Trans. 2005, 46(12), 2817–2829. ↩

  3. King, D.J.M.; Middleburgh, S.C.; McGregor, A.G.; Cortie, M.B. Acta Mater. 2016, 104, 172–179. ↩ ↩2

  4. Troparevsky, M.C.; Morris, J.R.; Kent, P.R.C.; Lupini, A.R.; Stocks, G.M. Phys. Rev. X 2015, 5(1), 011041. ↩ ↩2

  5. Hume-Rothery, W.; Smallman, R.E.; Haworth, C.W. The Structure of Metals and Alloys, 5th ed.; Institute of Metals: London, 1969. ↩

  6. Guo, S.; Ng, C.; Lu, J.; Liu, C.T. J. Appl. Phys. 2011, 109, 103505. ↩

  7. Fang, S.S.; Xiao, X.S.; Xia, L.; Li, W.H.; Dong, Y.D. J. Non-Cryst. Solids 2003, 321, 120–125. ↩ ↩2

  8. Guo, S.; Liu, C.T. Prog. Nat. Sci.: Mater. Int. 2011, 21, 433–446, Table 1. ↩

  9. Kittel, C. Introduction to Solid State Physics, 8th ed.; Wiley, 2005; Chapter 3, Table 9. ↩

  10. Mann, J.B.; Meek, T.L.; Allen, L.C. J. Am. Chem. Soc. 2000, 122, 2780–2783. ↩

  11. Mann, J.B.; Meek, T.L.; Knight, E.T.; Capitani, J.F.; Allen, L.C. J. Am. Chem. Soc. 2000, 122, 5132–5137. ↩

  12. Haynes, W.M. CRC Handbook of Chemistry and Physics, 95th ed.; CRC Press: Boca Raton, FL, 2014. ISBN 9781482208689. ↩

  13. Yang, X.; Zhang, Y. Mater. Chem. Phys. 2012, 132, 233–238. ↩ ↩2

  14. Wang, Z.; Huang, Y.; Yang, Y.; Wang, J.; Liu, C.T. Scr. Mater. 2015, 94, 28–31. ↩ ↩2

  15. Singh, A.K.; Kumar, N.; Dwivedi, A.; Subramaniam, A. Intermetallics 2014, 53, 112–119. ↩ ↩2

  16. Ye, Y.F.; Wang, Q.; Lu, J.; Liu, C.T.; Yang, Y. Scr. Mater. 2015, 104, 53–55. ↩ ↩2

  17. Ye, Y.F.; Wang, Q.; Lu, J.; Liu, C.T.; Yang, Y. Intermetallics 2015, 59, 75–80. ↩

  18. Mansoori, G.A.; Carnahan, N.F.; Starling, K.E.; Leland, T.W., Jr. J. Chem. Phys. 1971, 54, 1523–1525. ↩

  19. Guo, S.; Hu, Q.; Ng, C.; Liu, C.T. Intermetallics 2013, 41, 96–103. ↩

  20. Senkov, O.N.; Miracle, D.B. J. Alloys Compd. 2016, 658, 603–607. ↩

Metadata

Release files for HEACalculator 2.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for HEACalculator 2.2.0
File Size Uploaded
heacalculator-2.2.0.tar.gz 662.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for HEACalculator 2.2.0
File Interpreter ABI Platform
heacalculator-2.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / heacalculator-2.2.0.tar.gz

Download URL heacalculator-2.2.0.tar.gz
Size 662.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e1facddfe399338c1cf9c3ecdfad679665d41f9d7c3eb94b2d32f12364dd8dd7
BLAKE2b-256 checksum
How to use checksums
d459dbd5e9ac02c5762c90d376b7aab72e47e392851092a5d8bf958641917593
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / heacalculator-2.2.0-py3-none-any.whl

Download URL heacalculator-2.2.0-py3-none-any.whl
Size 344.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1912ccfb31c850bed76e80ed5ffdd50db7b7d41b76aa7f6ec939b9888ab66dda
BLAKE2b-256 checksum
How to use checksums
3149762163f42622a8f76090633b1aa1a6b3c2c5c0fe52dd25eba917e3360720
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

2.2.0 This release

2 release files

2.1.0

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page