https://github.com/pyiron/structuretoolkit
build, analyse and visualise atomistic structures for materials science
https://github.com/pyiron/structuretoolkit
ase atomistic materials-science pyiron
Last synced: 4 months ago
JSON representation
build, analyse and visualise atomistic structures for materials science
- Host: GitHub
- URL: https://github.com/pyiron/structuretoolkit
- Owner: pyiron
- License: bsd-3-clause
- Created: 2023-03-03T20:37:02.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-02-06T05:22:36.000Z (4 months ago)
- Last Synced: 2026-02-06T13:43:10.630Z (4 months ago)
- Topics: ase, atomistic, materials-science, pyiron
- Language: Python
- Homepage:
- Size: 46.7 MB
- Stars: 8
- Watchers: 5
- Forks: 1
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Citation: CITATION.cff
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# structuretoolkit
[](https://github.com/pyiron/structuretoolkit/actions/workflows/pipeline.yml)
[](https://codecov.io/gh/pyiron/structuretoolkit)
Originally developed as part of the `pyiron_atomistics` module the `structuretoolkit` was release as standalone library
for analysing, building and visualising atomistic structures. Internally it uses the `ase.atoms.Atoms` class to
represent atomistic structures in python. The `structuretoolkit` is integrated inside `pyiron_atomistics`.
## Disclaimer
The `structuretoolkit` is currently under development.
## Example
```python
import structuretoolkit as stk
from ase.build import bulk
structure = bulk("Al", cubic=True)
stk.analyse.get_adaptive_cna_descriptors(structure)
stk.plot3d(structure)
```
## Features
### Analysis
* `stk.analyse.get_neighbors()`
* `stk.analyse.get_neighborhood()`
* `stk.analyse.get_equivalent_atoms()`
* `stk.analyse.get_steinhardt_parameters()`
* `stk.analyse.get_centro_symmetry_descriptors()`
* `stk.analyse.get_diamond_structure_descriptors()`
* `stk.analyse.get_adaptive_cna_descriptors()`
* `stk.analyse.get_voronoi_volumes()`
* `stk.analyse.find_solids()`
* `stk.analyse.get_mean_positions()`
* `stk.analyse.get_average_of_unique_labels()`
* `stk.analyse.get_interstitials()`
* `stk.analyse.get_layers()`
* `stk.analyse.get_voronoi_vertices()`
* `stk.analyse.get_voronoi_neighbors()`
* `stk.analyse.get_delaunay_neighbors()`
* `stk.analyse.get_cluster_positions()`
* `stk.analyse.get_strain()`
### Build
* `stk.build.get_grainboundary_info()`
* `stk.build.grainboundary()`
* `stk.build.high_index_surface()`
* `stk.build.get_high_index_surface_info()`
* `stk.build.sqs_structures()`
* `stk.build.B2()`
* `stk.build.C14()`
* `stk.build.C15()`
* `stk.build.C36()`
* `stk.build.D03()`
### Visualize
* `stk.visualize.plot3d()`
### Common
* `stk.common.ase_to_pymatgen()`
* `stk.common.pymatgen_to_ase()`
* `stk.common.pymatgen_read_from_file()`
* `stk.common.ase_to_pyscal()`
* `stk.common.apply_strain()`
* `stk.common.center_coordinates_in_unit_cell()`
* `stk.common.get_extended_positions()`
* `stk.common.get_vertical_length()`
* `stk.common.get_wrapped_coordinates()`
* `stk.common.select_index()`