Metadata-Version: 2.4
Name: reaxkit
Version: 3.1.0
Summary: A toolkit for parsing, analyzing, and visualizing ReaxFF simulation data.
Home-page: https://ali-m-dinani.github.io/reaxkit/
Author: Ali Mohammadi Dinani
Author-email: alimohammadi2265@gmail.com, Adri van Duin <acv13@psu.edu>, Yun Kyung Shin <yks2@psu.edu>, Alireza Sepehrinezhad <alireza.sepehri@psu.edu>, Seyed Mahmoud Mortazavi <mahmoud.mortazavi72@gmail.com>, Anirban Phukan <akp6421@psu.edu>, Jupjeet Dhingra <jvd6198@psu.edu>, Swarit Dwivedi <Swarit.Dwivedi@monash.edu>, Asma Ul Hosna <abh6073@psu.edu>, Mozhdeh Mirakhory <mjm8816@psu.edu>
License-Expression: MIT
Project-URL: Homepage, https://ali-m-dinani.github.io/reaxkit/
Project-URL: Documentation, https://ali-m-dinani.github.io/reaxkit/
Project-URL: Repository, https://github.com/ali-m-dinani/reaxkit
Project-URL: Issues, https://github.com/ali-m-dinani/reaxkit/issues
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: scipy
Requires-Dist: matplotlib>=3.6
Requires-Dist: tqdm
Requires-Dist: rich
Requires-Dist: tabulate
Requires-Dist: PyYAML
Requires-Dist: rapidfuzz
Requires-Dist: openpyxl>=3.1
Requires-Dist: pyarrow
Requires-Dist: threadpoolctl>=3.1
Requires-Dist: psutil>=5.9
Provides-Extra: plot
Requires-Dist: seaborn; extra == "plot"
Requires-Dist: plotly; extra == "plot"
Requires-Dist: imageio[ffmpeg]; extra == "plot"
Provides-Extra: webui
Requires-Dist: dash; extra == "webui"
Requires-Dist: dash_bootstrap_templates; extra == "webui"
Requires-Dist: fastapi; extra == "webui"
Provides-Extra: trajectory
Requires-Dist: MDAnalysis; extra == "trajectory"
Requires-Dist: freud-analysis; extra == "trajectory"
Requires-Dist: ovito; extra == "trajectory"
Provides-Extra: materials
Requires-Dist: ase; extra == "materials"
Requires-Dist: mp_api; extra == "materials"
Requires-Dist: pymatgen; extra == "materials"
Provides-Extra: graph
Requires-Dist: networkx; extra == "graph"
Requires-Dist: igraph; extra == "graph"
Provides-Extra: ml
Requires-Dist: dscribe; extra == "ml"
Requires-Dist: spacy; extra == "ml"
Requires-Dist: scikit-learn; extra == "ml"
Provides-Extra: io
Requires-Dist: h5py; extra == "io"
Requires-Dist: python-docx; extra == "io"
Requires-Dist: zstandard; extra == "io"
Provides-Extra: engines
Requires-Dist: lammps; extra == "engines"
Requires-Dist: plams; extra == "engines"
Provides-Extra: all
Requires-Dist: reaxkit[engines,graph,io,materials,ml,plot,trajectory,webui]; extra == "all"
Dynamic: license-file

# ReaxKit

**ReaxKit** is a modular, extensible Python toolkit for **pre‑processing, post‑processing, and analysis of ReaxFF** molecular dynamics simulations.
It provides a clean separation between file parsing, analysis routines, and reproducible workflows, with **Python APIs**, a **CLI interface**, and a **Dash-based GUI**.

ReaxKit is designed for researchers who want a transparent, scriptable bridge between raw ReaxFF data and quantitative, publication‑ready results.

---

## Key Capabilities

### Engine
- Shared engine abstractions for consistent parsing and generating input/output files across 3 different ReaxFF simulation engines, namely `ams`, `lammps`, `reaxff`
- Example IO and generator modules under the `reaxff` engine:
  - ReaxFF input and output files such as `xmolout`, `fort.7`, `fort.13`, `molfra`, and more
  - Input generators for `control`, `geo`, `eregime`, `tregime`, and related files

### Analysis
- Engine-agnostic analyzers built on ReaxKit's domain data models
- Analyzer tasks organized around separated request, result, and task objects
- Analysis components separated from engine IO so the same computations can be reused across scripts, workflows, web UI, and presentation modules

### Workflows
- Reproducible workflows organized by data handling, file tools, meta orchestration, presentation, and study design
- Automation paths for common ReaxFF pre-processing, analysis, post-processing, and presentation tasks

### Web UI
- Dash-based interface components for interactive ReaxFF data inspection
- Backend, UI, and presentation layers for browser-driven workflows

### Presentation
- Publication-ready plotting utilities:
  - 2D plots, dual-axis plots, tornado plots, 3D scatter, and heatmaps
- Video generators

### Utilities
- Shared data, media, and numerical utilities
- Common infrastructure used by analysis, workflows, web UI, and presentation modules

See the full documentation (API reference, tutorials, examples) on [ReaxKit Site](https://ali-m-dinani.github.io/reaxkit/).

---

## Project Layout

```
src/reaxkit/
├── analysis/        # Engine-agnostic analysis tasks
├── cli/             # Command-line entry points
├── core/            # Registries and shared core infrastructure
├── data/            # Packaged reference data and resources
├── domain/          # Central data models, requests, and results
├── engine/          # IO handlers and input generators
├── help/            # Introspection and help system
├── presentation/    # Plotting, active-site views, and media presentation
├── utils/           # Shared data, media, and numerical utilities
├── webui/           # Dash/web interface backend, UI, and presentation layers
└── workflows/       # Workflow orchestration and automation
```

---

##  Testing

Run unit tests with:

```bash
pytest -s tests/
```

to test the package and get the timing for their execution.

---

## Citation

If you use ReaxKit in your work, please cite:

```text
Mohammadi Dinani, A., et al. (2026).
ReaxKit: A Modular Python Toolkit for Preparing, Parsing, and Analyzing ReaxFF Molecular Dynamics Simulations.
arXiv:2609.22019. https://arxiv.org/abs/2609.22019

Source code: https://github.com/ali-m-dinani/reaxkit
Software archive: https://doi.org/10.5281/zenodo.18485384
```

---

## Future Directions

* Implement machine learning-based surrogate models for rapid property prediction and active-site identification.
* Develop a plugin system for user-contributed analysis routines and visualization components.
* Integrate with Jupyter notebooks for interactive analysis and visualization.

If you have any feature request, you can submit it through the ReaxKit's GitHub page, or directly sending an email to `Dinani@psu.edu`.

---
## Additional resources:

- [AUTHORS.md](AUTHORS.md) —  Full credits and acknowledgments.
- [LICENSE](LICENSE) — Full license terms under the **MIT License**
