AmorphGen

AmorphGen

Automated amorphous structure generation using machine-learning and classical interatomic potentials.

GitHub source PyPI License: MIT Issues

AmorphGen exposes three routes to amorphous structures: random placement from just a chemical formula, melt-and-quench MD from a crystal, and a hybrid workflow that anneals disordered inputs and quenches to low temperature. Random placement runs without a potential. Relaxation and MD use machine-learning interatomic potentials (MACE, CHGNet, SevenNet) or classical force fields (Buckingham, Lennard-Jones).

AmorphGen workflow: crystalline input or composition to amorphous structure

Get started

Generate one structure from a composition with the base package:

pip install amorphgen

# 16 formula units of In2O3 = 80 atoms
amorphgen --random-gen --composition "In2O3*16" --seed 42 \
    --format vasp --work-dir in2o3_random

The structure is written to in2o3_random/random_initial/. To relax an ensemble, install a calculator backend and add --relax:

pip install "amorphgen[mace]"
amorphgen --random-gen --composition "In2O3*16" -n 5 --seed 42 \
    --relax --model mace-mpa-0 --device cpu --format vasp \
    --work-dir in2o3_relaxed

Initial structures go in in2o3_relaxed/random_initial/ and relaxed structures in in2o3_relaxed/random_opt/. Placement provides starting configurations; check the relaxed density, bonding and convergence before using them in a study.

See Installation for platform and backend requirements, and Quickstart for the other workflows.

Note

These docs follow the repository’s main branch, which can contain features added after the latest PyPI release. See Changelog for release boundaries and the installation guide for installing from source.

Choose a workflow

Random generation

Start with a composition. Place atoms using estimated density, minimum separations and coordination targets, with optional relaxation using a potential.

--random-gen

Random structure generation
Melt-and-quench

Start with a crystal. Run the seven-stage pipeline, or share stages 1–4 before running separate quenches from high-temperature snapshots.

Default pipeline or --mq-ensemble

Melt-and-quench pipeline
Hybrid ensemble

Start with disordered structures. Run high-temperature equilibration, quenching, low-temperature equilibration and final relaxation (stages 4–7) for each input.

--hybrid-ensemble

Hybrid workflow

The Best practices & limitations guide covers choosing and checking a protocol. For multiple quenches, see MQ-ensemble workflow or Batch quench.

Analyse and configure

  • Analysis: RDFs, coordination, bond angles, rings, structure factors and plots, using the CLI or Python API.

  • Generate until converged: generate torch-sim batches until declared precision targets pass a statistically valid adaptive stopping rule.

  • YAML configuration: save a protocol, set temperatures and cooling rates, and control reproducibility.

  • HPC deployment: run and resume jobs on a cluster.

  • Tutorials: notebooks demonstrating the workflows.

  • Validation: a worked comparison with reference data and its limits.

Supported backends

Backend

Install

Example --model value

MACE

pip install "amorphgen[mace]"

mace-mpa-0

CHGNet

pip install "amorphgen[chgnet]"

chgnet

SevenNet

pip install "amorphgen[sevennet]"

sevennet, 7net-mf-ompa

Classical

Included in pip install amorphgen

buckingham, lennard-jones

Classical potentials require parameters appropriate to the system. See Calculator backends for model selection and backend compatibility, or run amorphgen --list-models for the registered model names.

The optional torch-sim engine batches relaxation and hybrid ensembles with MACE, SevenNet or Lennard-Jones. For MACE, install pip install "amorphgen[mace,torchsim]" and select --engine torchsim. It requires Python 3.12 or newer; hybrid MD supports NVT only. See the installation instructions.


Authors & Contact

Authors: Chaiyawat Kaewmeechai, Louie Slocombe and David O. Scanlon
Maintainer: Chaiyawat Kaewmeechai, University of Birmingham
Email: c[dot]kaewmeechai[at]bham[dot]ac[dot]uk

Bug reports / feature requests: Open an issue on GitHub.
For research collaborations or scientific questions, please email the maintainer above.


Citing AmorphGen

If you use AmorphGen in your research, cite the software version you used. The repository includes a CITATION.cff file; a BibTeX citation is:

@misc{amorphgen,
  author = {Kaewmeechai, Chaiyawat and Slocombe, Louie and Scanlon, David O.},
  title  = {AmorphGen: A Python package for amorphous structure generation
            with machine-learning and classical interatomic potentials},
  year   = {2026},
  url    = {https://github.com/SMTG-Bham/AmorphGen}
}

A Zenodo DOI for each tagged release will be added on first stable release. Please also cite the underlying machine-learning interatomic potential you use (MACE, CHGNet, SevenNet) and any reference structures or experimental data you compare against.


Indices and tables