Interatomic Potentials¶
amorphouspy provides built-in support for classical interatomic potentials widely used in oxide glass simulations. Each potential generates complete LAMMPS input configuration ready for simulation.
Unified Interface¶
All potentials are accessed through a single function:
generate_potential(atoms_dict, potential_type="pmmcs")¶
from amorphouspy import get_structure_dict, generate_potential
structure_dict = get_structure_dict({"SiO2": 75, "Na2O": 15, "CaO": 10}, target_atoms=3000)
potential = generate_potential(structure_dict, potential_type="pmmcs")
Parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
atoms_dict |
dict |
— | Structure dictionary from get_structure_dict() |
potential_type |
str |
"pmmcs" |
One of "pmmcs", "bjp", "shik", "bmp-harmonic", "bmp-screened-harmonic", or "yang2026" |
Returns: A pd.DataFrame with columns:
| Column | Description |
|---|---|
Name |
Potential name identifier |
Filename |
Associated table files (if any) |
Model |
Model type descriptor |
Species |
List of element species |
Config |
List of LAMMPS input lines |
The Config column contains a list of strings — each string is a LAMMPS input command that sets up the pair style, pair coefficients, charges, and any additional parameters needed for the simulation.
Comparison¶
| Feature | PMMCS | BJP | SHIK | BMP-harm | BMP-shrm | Yang2026 |
|---|---|---|---|---|---|---|
| Element coverage | 28 elements | 4 elements (CAS) | 9 elements | 36 elements | 36 elements | 5 elements (Na/Ca borosilicate) |
| Functional form | Morse + \(r^{-12}\) | Born-Mayer-Huggins | Buckingham + \(r^{-24}\) | Morse + Buck + harmonic 3b | Morse + Buck + screened 3b | Buckingham |
| Coulomb solver | coul/dsf | born/coul/dsf | coul/dsf | DSF / Wolf / PPPM / Ewald | DSF / Wolf / PPPM / Ewald | DSF (hybrid/overlay) / PPPM / Ewald |
| Cation charges | Simple (multiples of 0.6) | Simple (multiples of 0.6) | Individually fitted | Simple (multiples of 0.6) | Simple (multiples of 0.6) | Scaled (×0.5 from formal) |
| Oxygen charge | Fixed (\(-1.2\)) | Fixed (\(-1.2\)) | Composition-dependent | Fixed (\(-1.2\)) | Fixed (\(-1.2\)) | Fixed (\(-0.945\)) |
| Three-body terms | No | No | No | Si/P triplets | Si/P/B/V triplets | No |
| Boron support | Yes | No | Yes | B-free only | Yes (alkali/AE systems) | Yes |
| Table files | No | No | Yes (auto-generated) | Yes (auto-generated) | Yes (auto-generated) | No |
| Best for | General oxide glasses | CAS systems | Si/Al/B oxide glasses | Multi-modifier silicates/phosphates | Borates and borosilicates | Na/Ca borosilicate glasses |
| Cutoff | 8.0 Å | 8.0 Å | 10.0 Å | 7.0 Å (SR), 8.0 Å (Coul) | 7.0 Å (SR), 8.0 Å (Coul) | 11.0 Å |
Choosing a Potential¶
- PMMCS — Use for general multi-component oxide glasses. Broadest element support (28 elements). Good default choice.
- BJP — Use for calcium aluminosilicate (CAS) systems. Specifically parameterized for Ca-Al-Si-O.
- SHIK — Use for silicate, aluminosilicate, and borosilicate glasses. Composition-dependent oxygen charge provides better accuracy for mixed-modifier systems.
- BMP-harm — Use for multi-modifier silicate or phosphosilicate glasses without boron. Explicit harmonic three-body terms improve angular ordering around Si and P.
- BMP-shrm — Use for borate and borosilicate glasses. The screened three-body form covers B and V triplets and is the recommended choice when boron is present.
- Yang2026 — Use for Na/Ca borosilicate glasses (Na, Ca, B, Si, O). Transferable classical potential validated against machine-learning-optimized parameters.
Detailed Guides¶
Each potential has its own detailed page:
- PMMCS (Pedone) — Morse + repulsive wall + Coulomb
- BJP (Bouhadja) — Born-Mayer-Huggins + Coulomb
- SHIK (Sundararaman) — Buckingham + \(r^{-24}\) + Coulomb
- BMP (Bertani–Menziani–Pedone) — Morse + Buckingham + three-body angular terms
- Yang2026 (Yang et al.) — Buckingham + Coulomb for Na/Ca borosilicate glasses