Skip to main content

CircleCI codecov licence documentation Python

Overview

κALDo (kALDo) is an open-source Python package for computing vibrational, elastic, and thermal transport properties of crystalline, disordered, and amorphous materials from first principles and machine-learned interatomic potentials.

Built on the anharmonic lattice dynamics (ALD) framework, κALDo provides GPU- and CPU-accelerated implementations of:

  • Boltzmann Transport Equation (BTE) for crystals
  • Quasi-Harmonic Green-Kubo (QHGK) method for disordered and amorphous systems

The QHGK formalism uniquely extends thermal transport predictions beyond crystals to materials lacking long-range order, including glasses, alloys, and complex nanostructures.

Key Features

Transport Methods

Method Use Case Solvers
BTE Crystalline materials RTA, Self-consistent iteration, Full matrix inversion, Eigendecomposition
QHGK Amorphous/disordered materials Diffuson, locon, propagon decomposition

Force Constant Sources

κALDo interfaces with diverse computational tools:

  • Ab initio codes: Quantum ESPRESSO, VASP (DFPT)
  • MD packages: LAMMPS (with USER-PHONON)
  • Machine-learned potentials: NEP, MACE, MatterSim, Orb, DeepMD (via ASE)
  • External phonon codes: ShengBTE, phono3py, HiPhive
  • TDEP: Temperature-dependent effective potentials from MD trajectories

Physical Corrections

  • Isotopic scattering via Tamura perturbation theory
  • Non-analytical corrections (NAC) for polar materials (LO-TO splitting)
  • Finite-size effects and boundary scattering
  • Anharmonicity quantification (σ_A score)

Performance & Scalability

  • GPU acceleration via TensorFlow (5-10× speedup for N > 50 atoms)
  • Sparse tensor operations for memory efficiency
  • Multiple storage backends: formatted text, NumPy, HDF5, memory-only
  • Scales to 10,000+ atom systems for QHGK calculations

Quickstart

Run κALDo interactively on Google Colab:

Tutorial Description
Open In Colab Thermal transport in crystalline silicon (BTE)
Open In Colab Thermal transport in amorphous silicon (QHGK)

Installation

pip install kaldo

Docker deployment:

docker pull gbarbalinardo/kaldo:latest

Basic Usage

Example calculating thermal conductivity of SiC using the MatterSim machine-learned potential:

# Import kALDo classes and ASE
from kaldo.forceconstants import ForceConstants
from kaldo.phonons import Phonons
from kaldo.conductivity import Conductivity
import kaldo.controllers.plotter as plotter
from ase.build import bulk
from ase.optimize import BFGS
from ase.constraints import StrainFilter
from mattersim.forcefield import MatterSimCalculator

# Stage 1: Structure optimization
atoms = bulk('SiC', 'zincblende', a=4.35)
calc = MatterSimCalculator(device='cuda')
atoms.calc = calc

# Optimize lattice parameters and atomic positions
sf = StrainFilter(atoms)
opt = BFGS(sf)
opt.run(fmax=0.001)

# Stage 2: Compute force constants using finite differences
fc = ForceConstants(
    atoms=atoms,
    supercell=[10, 10, 10],
    third_supercell=[5, 5, 5],
    folder='fd_SiC_MatterSim'
)
fc.second.calculate(calc, delta_shift=0.03)
fc.third.calculate(calc, delta_shift=0.03)

# Stage 3: Calculate phonon properties
phonons = Phonons(
    forceconstants=fc,
    kpts=[15, 15, 15],
    temperature=300,
    is_classic=False,
    folder='ALD_SiC_MatterSim'
)

# Plot phonon dispersion
plotter.plot_dispersion(phonons, n_k_points=300)

# Stage 4: Calculate thermal conductivity
cond = Conductivity(phonons=phonons, method='inverse')

# Access results
kappa = cond.conductivity.sum(axis=0)
print(f"Thermal conductivity: {kappa.trace()/3:.1f} W/m/K")

Supported File Formats

Source Format String 2nd-Order Files 3rd-Order Files
NumPy numpy second.npy third.npz or third.npy
ESKM eskm Dyn.form THIRD
LAMMPS lammps Dyn.form THIRD
VASP + ShengBTE vasp-sheng FORCE_CONSTANTS_2ND or FORCE_CONSTANTS FORCE_CONSTANTS_3RD
QE + ShengBTE [1] qe-sheng espresso.ifc2 FORCE_CONSTANTS_3RD
VASP + d3q [2] vasp-d3q FORCE_CONSTANTS_2ND or FORCE_CONSTANTS FORCE_CONSTANTS_3RD_D3Q
QE + d3q qe-d3q espresso.ifc2 FORCE_CONSTANTS_3RD_D3Q
HiPhive hiphive model2.fcs model3.fcs
TDEP tdep infile.forceconstant infile.forceconstant_thirdorder

[1]: κALDo supports loading force constants with mixed formats. Here, it means that the second-order force constant comes from Quantum Espresso and the third-order force comes from thirdorder.py in ShengBTE. See examples on how to use thirdorder.py with Quantum Espresso. [2]: The second-order force constant comes from VASP and the third-order force constant comes from D3Q (Thermal2). See examples on how to use D3Q to calculate third order force constant for κALDo.

Theory Background

For detailed theoretical background on anharmonic lattice dynamics, the Boltzmann Transport Equation, and the Quasi-Harmonic Green-Kubo method, see the documentation.

Examples

Detailed examples for various materials and workflows are available in a stand-alone repository.

A recipe on phonon uncertainty quantification with PhononsEnsemble and PET-MAD committee models is on the Atomistic Cookbook.

Citations

If you use κALDo, please cite:

Reference When to Cite
[1] Any work using κALDo (2.0)
[2] Original κALDo implementation (v1)
[3] QHGK method for disordered materials
[4] Participation ratio analysis
[5] Finite-size thermal conductivity with BTE
[6] TDEP + path-integral MD workflows
[7] Isotopic scattering and hydrodynamic extrapolation

References

[1] G. Barbalinardo, Z. Chen, D.A. Folkner, B. Li, N.W. Lundgren, N. Troup, A. Fiorentino, D. Donadio, κALDo 2.0: Scalable thermal transport from first principles and machine learning potentials, Comput. Phys. Commun. 327, 110282 (2026).

[2] G. Barbalinardo, Z. Chen, N.W. Lundgren, D. Donadio, Efficient anharmonic lattice dynamics calculations of thermal transport in crystalline and disordered solids, J. Appl. Phys. 128, 135104 (2020).

[3] L. Isaeva, G. Barbalinardo, D. Donadio, S. Baroni, Modeling heat transport in crystals and glasses from a unified lattice-dynamical approach, Nat. Commun. 10, 3853 (2019).

[4] N.W. Lundgren, G. Barbalinardo, D. Donadio, Mode Localization and Suppressed Heat Transport in Amorphous Alloys, Phys. Rev. B 103, 024204 (2021).

[5] G. Barbalinardo, Z. Chen, H. Dong, Z. Fan, D. Donadio, Ultrahigh convergent thermal conductivity of carbon nanotubes from comprehensive atomistic modeling, Phys. Rev. Lett. 127, 025902 (2021).

[6] D.A. Folkner, Z. Chen, G. Barbalinardo, F. Knoop, D. Donadio, Elastic moduli and thermal conductivity of quantum materials at finite temperature, J. Appl. Phys. 136, 221101 (2024).

[7] A. Fiorentino, P. Pegolo, S. Baroni, D. Donadio, Effects of colored disorder on the heat conductivity of SiGe alloys from first principles, Phys. Rev. B 111, 134205 (2025).

Publications Using κALDo

See the publications page.

Documentation

Full API documentation: nanotheorygroup.github.io/kaldo

Contributing

We welcome contributions! Please visit our discussions page for questions, feature requests, and workflow sharing.

Copyright (c) 2022-2025, The kALDo Developers

Acknowledgements

We gratefully acknowledge support by the Investment Software Fellowships (grant No. ACI-1547580-479590) of the NSF Molecular Sciences Software Institute (grant No. ACI-1547580) at Virginia Tech.

Metadata

Release files for kaldo 2.3.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 kaldo 2.3.0
File Size Uploaded
kaldo-2.3.0.tar.gz 20.8 MB Details

Built distribution (wheel)

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

Total release size: 42.7 MB

Release files / kaldo-2.3.0.tar.gz

Download URL kaldo-2.3.0.tar.gz
Size 20.8 MB
Tags Source
SHA-256 checksum
How to use checksums
df83550b8feaddb69d802576aacae0b8375cd8ad3fb88757ca54eb030d60f798
BLAKE2b-256 checksum
How to use checksums
c488a5eb0c96733854a96ab1fde0bceb6bd8c74878495385cdbd3445eb1971c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.11

Release files / kaldo-2.3.0-py3-none-any.whl

Download URL kaldo-2.3.0-py3-none-any.whl
Size 21.9 MB
Tags Python 3
SHA-256 checksum
How to use checksums
ceda376e156c870066fe691aacf1a06f96605949990842bf187fb3023a7bd4b1
BLAKE2b-256 checksum
How to use checksums
1a128183c9e95ff56d9ec556003e0f157c341a385f18ba4a4711614f6f9f3362
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.11

Release history Release notifications | RSS feed

This release

2.3.0 This release

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.1.0

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

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