Skip to content

⏳ vitrum

vitrum is a Python package designed for the generation, analysis, and simulation of disordered and glassy atomic structures. It provides a suite of tools for structural characterization, diffusion analysis, and tools for machine learning-driven potential development.

📖 Documentation

See the navigation on the left for detailed documentation, or the GitHub repository for source code.

📦 Installation

See Installation for full instructions, including optional dependency groups.

🚧 Active development

vitrum is under active development. As of 1.0, the public API follows semantic versioning — breaking changes will be reflected in a major version bump and noted in the changelog.

🚀 Examples

See the examples folder on GitHub for runnable Jupyter notebooks demonstrating scattering/RDF analysis, Qn speciation, and random structure generation, among others.

🎯 Scope and Functionality

vitrum offers:

1. Structural Characterization

  • Scattering Functions: Calculate partial and total Radial Distribution Functions (RDF) and Structure Factors (\(S(q)\)) for both Neutron and X-ray scattering (vitrum.scattering).
  • Ring Analysis: Analyze ring size distributions and statistics in network glasses (vitrum.rings).
  • Topological Analysis: Compute persistent homology to identify medium-range order and topological features (vitrum.persistent_homology).
  • Coordination & Angles: Analyze bond angle distributions and coordination environments (vitrum.coordination).

2. Dynamics & Diffusion

  • Diffusion Analysis: Calculate Mean Squared Displacement (MSD), diffusion coefficients, and Van Hove correlation functions (vitrum.diffusion).

3. Machine Learning & Workflows

  • BALACE Framework: A Batch Active Learning framework for Atomistic Simulations (vitrum.batch_active) (requires workflows dependencies).
    • Automated workflow for training Machine Learning Interatomic Potentials (MLIPs) based on ACE .
    • Integration with VASP and LAMMPS for data generation and active learning loops.
    • Job management via Fireworks and Jobflow.

📑 Citation

If you use vitrum in your work, please cite it. Each GitHub release is archived on Zenodo with a version-specific DOI; see CITATION.cff in the repository for the citation metadata.

DOI

👥 Author

Rasmus Christensen (rasmusc@bio.aau.dk)

⭐ Acknowledgements

vitrum relies on several powerful open-source packages: * ASE * Pymatgen * NumPy / SciPy / pandas * scikit-learn * Dionysus / DioDe * Atomate2 / Jobflow / Fireworks