Skip to content

atomgptlab/alignn

Repository files navigation

alt text codecov PyPI version GitHub tag (latest by date) GitHub code size in bytes GitHub commit activity Downloads

📖 Full documentation: https://atomgptlab.github.io/alignn/

Table of Contents

ALIGNN & ALIGNN-FF (Introduction)

The Atomistic Line Graph Neural Network (paper) introduces a graph convolution layer that explicitly models both two- and three-body interactions in atomistic systems. The ALIGNN-FF variant (paper) extends this to a force-field for structurally and chemically diverse systems across 89 elements.

See docs/index.md for the full introduction.

ALIGNN layer schematic

Installation

See docs/installation.md for conda, GitHub, and pip installation methods.

Examples

See docs/training/ for dataset format and training examples:

Colab notebooks

Ready-to-run notebooks covering property prediction, force-field training, and pretrained-model usage. Click a badge to open in Colab.

Notebook Open in Colab Description
Regression task (graph-wise prediction) Open In Colab Single-output regression for 2D-material exfoliation energies.
ML force-field training from scratch Open In Colab Train an ALIGNN-FF force field for Silicon.
ALIGNN-FF: relaxation, EV curve, phonons, interfaces Open In Colab Pretrained ALIGNN-FF for relaxation, EV curves, phonons, and interfaces.
Scaling / timing comparison Open In Colab Scaling/timing analysis of universal MLFFs.
Melt-Quench MD Open In Colab Generate amorphous structures via molecular dynamics.
Miscellaneous training tasks Open In Colab Single-output, multi-output (phonon/electron DOS), classification, and pretrained usage.
Superconductor Tc Open In Colab Train a model for superconductor transition temperature.
Build id_prop.json from VASP runs Open In Colab Compile vasprun.xml files into id_prop.json for ALIGNN-FF training.

Using pre-trained models

See docs/pretrained/:

Web-apps

See docs/usage/webapps.md. Direct links: AtomGPT ALIGNN app, ALIGNN-FF app.

ALIGNN-FF ASE Calculator

from ase.build import bulk
from alignn.ff.unified_calculator import (
    AlignnUnifiedCalculator, AlignnUnifiedConfig)

cfg = AlignnUnifiedConfig(
    energy=True, forces=True, stress=True,
    properties=["formation_energy_peratom", "optb88vdw_bandgap"],
)
calc = AlignnUnifiedCalculator(cfg)          # models loaded once, reused

si = bulk("Si", "diamond", a=5.43); si.calc = calc
si.get_potential_energy(); si.get_forces(); si.get_stress()
print(calc.predictions())                    # extra property predictors

A single pydantic config selects the outputs (force-field energy/forces/stress plus any pretrained scalar property predictors). See docs/usage/ase-calculator.md for more, and the ASE docs page Calculators → ALIGNN.

Performances

See docs/performance.md for benchmark tables on JARVIS-DFT, Materials Project, QM9, hMOF, qMOF, OpenCatalyst, and other datasets. Also see JARVIS-Leaderboard.

Useful notes

See docs/notes.md for common pitfalls and FAQs.

References

See docs/references.md for the publication list.

How to contribute

See Contribution instructions and docs/contributing.md.

Correspondence

Please report bugs as GitHub issues or email drkamal@jhu.edu.

Funding support

Code of conduct

Please see Code of conduct.