atomman: Atomistic Manipulation Toolkit
Description
AtomMan: the Atomistic Manipulation Toolkit is a Python library for creating, representing, manipulating, and analyzing large-scale atomic systems of atoms. The focus of the package is to facilitate the rapid design and development of simulations that are fully documented and easily adaptable to new potentials, configurations, etc. The code has no requirements that limit which systems it can be used on, i.e. it should work on Linux, Mac and Windows computers.
Features:
Allows for efficient and fast calculations on millions of atoms, each with many freely defined per-atom properties.
Built-in tools for generating and analyzing crystalline defects, such as point defects, stacking faults, and dislocations.
Call LAMMPS directly from Python and instantly retrieve the resulting data or LAMMPS error statement.
Easily convert systems to/from the other Python atomic representations, such as ase.Atoms and pymatgen.Structure.
Can read and dump crystal structure information from a number of formats, such as LAMMPS data and dump files, and POSCAR.
Built-in unit conversions.
Installation
The atomman package is Python 3.7+ compatible.
The latest release can be installed using pip:
pip install atomman
or, alternatively using conda and conda-forge:
conda install atomman -c conda-forge
For Windows users, it is recommended to use an Anaconda distribution and use conda to install numpy, scipy, matplotlib, pandas and cython prior to installing atomman.
Alternatively, all code and documentation can be downloaded from GitHub.
The stable releases are available at https://github.com/usnistgov/atomman.
The working development versions are at https://github.com/lmhale99/atomman.
Tutorials
- Tutorials
- 0. Unit conversions
- 1. Defining atomic systems
- 1.1. Box class
- 1.2. Atoms class
- 1.3. System class
- 1.4. Load and dump conversions
- 1.4.1. system_model conversions
- 1.4.2. POSCAR conversions
- 1.4.3. CIF conversions
- 1.4.4. table conversions
- 1.4.5. LAMMPS data file conversions
- 1.4.6. LAMMPS dump file conversions
- 1.4.7. ase and phonopy conversions
- 1.4.8. pymatgen conversions
- 1.4.9. spglib conversions
- 1.4.10. prototype loading
- 1.4.11. crystal loading
- 1.4.12. DFT reference crystal loading
- 1.4.13. primitive cell dumping
- 1.4.14. Conventional and primitive cell conversion dumping
- 1.4.15. pdb dumping
- 1.4.16. LAMMPS NEB replica dumping-Copy1
- 1.4.16. LAMMPS NEB replica dumping
- 1.5. Settings and databases
- 2. LAMMPS functionality
- 2.1. Potential class
- 2.2. Running LAMMPS and the Log class
- 3. Basic support and analysis tools
- 3.1. ElasticConstants class
- 3.2. NeighborList class
- 3.3. Region selectors
- 3.4. Minimum energy paths
- 3.5. Cluster generators
- 4. Defect creation and analysis
- 4.1. Point defect generation
- 4.2. Free surface generator
- 4.3. Stacking fault generator
- 4.4. Volterra dislocation solutions
- 4.5. Gamma surface plotting
- 4.6. Dislocation analysis tools
- 4.7. Semidiscrete variational Peierls-Nabarro model
- 4.8. Strain class
- 4.9. Dislocation configurations generator
- 4.10 Differential Displacement Maps