⏳ 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) (requiresworkflowsdependencies).- 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.
👥 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