A Julian abstract interface for atomic structures.
AtomsBase is an abstract interface for representation of atomic geometries in Julia. It aims to be a lightweight means of facilitating interoperability between various tools including ...
- Chemical simulation engines:
- Integration with third party-libraries:
- ASEconvert.jl (integration with the Atomistic Simulation Environment)
- I/O with standard file formats (.cif, .xyz, ...)
- E.g. AtomIO.jl
- automatic differentiation and machine learning systems
- ChemistryFeaturization.jl (featurization of atomic systems)
- numerical tools: sampling, integration schemes, etc.
- visualization (e.g. plot recipes)
Currently, the design philosophy is to be as lightweight as possible with a small set of required function dispatches to make adopting the interface easy. We also provide a couple of standard flexible implementations of the interface that we envision to be broadly applicable. If features beyond these are required we encourage developers to open PRs or provide their own implementations. For more on how to use the package, see the documentation.
The following (not all yet-registered) packages currently make use of AtomsBase:
- ASEPotential
- ASEconvert
- AtomIO: I/O for atomic structures, also wraps some ASE functionality
- Atomistic: integrated workflow for MD simulations, part of CESMIX
- AutoBZCore.jl: Brillouin-zone integration
- BFPIS
- ChemistryFeaturization: Interface for featurization of atomic structures for input into machine learning models, part of Chemellia
- DFTK: density functional theory simulations
- ExtXYZ: Parser for extended XYZ files
- InteratomicPotentials: implementations of a variety of interatomic potentials, also part of CESMIX
- Molly: molecular dynamics simulations
- Xtals: I/O and structure representation for crystals