reaxkit 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (142) hide show
  1. reaxkit-1.0.0/AUTHORS.md +20 -0
  2. reaxkit-1.0.0/LICENSE +21 -0
  3. reaxkit-1.0.0/PKG-INFO +128 -0
  4. reaxkit-1.0.0/README.md +101 -0
  5. reaxkit-1.0.0/pyproject.toml +49 -0
  6. reaxkit-1.0.0/setup.cfg +4 -0
  7. reaxkit-1.0.0/src/reaxkit/__init__.py +0 -0
  8. reaxkit-1.0.0/src/reaxkit/analysis/__init__.py +0 -0
  9. reaxkit-1.0.0/src/reaxkit/analysis/composed/RDF_analyzer.py +560 -0
  10. reaxkit-1.0.0/src/reaxkit/analysis/composed/__init__.py +0 -0
  11. reaxkit-1.0.0/src/reaxkit/analysis/composed/connectivity_analyzer.py +706 -0
  12. reaxkit-1.0.0/src/reaxkit/analysis/composed/coordination_analyzer.py +144 -0
  13. reaxkit-1.0.0/src/reaxkit/analysis/composed/electrostatics_analyzer.py +687 -0
  14. reaxkit-1.0.0/src/reaxkit/analysis/per_file/__init__.py +0 -0
  15. reaxkit-1.0.0/src/reaxkit/analysis/per_file/control_analyzer.py +165 -0
  16. reaxkit-1.0.0/src/reaxkit/analysis/per_file/eregime_analyzer.py +108 -0
  17. reaxkit-1.0.0/src/reaxkit/analysis/per_file/ffield_analyzer.py +305 -0
  18. reaxkit-1.0.0/src/reaxkit/analysis/per_file/fort13_analyzer.py +79 -0
  19. reaxkit-1.0.0/src/reaxkit/analysis/per_file/fort57_analyzer.py +106 -0
  20. reaxkit-1.0.0/src/reaxkit/analysis/per_file/fort73_analyzer.py +61 -0
  21. reaxkit-1.0.0/src/reaxkit/analysis/per_file/fort74_analyzer.py +65 -0
  22. reaxkit-1.0.0/src/reaxkit/analysis/per_file/fort76_analyzer.py +191 -0
  23. reaxkit-1.0.0/src/reaxkit/analysis/per_file/fort78_analyzer.py +154 -0
  24. reaxkit-1.0.0/src/reaxkit/analysis/per_file/fort79_analyzer.py +83 -0
  25. reaxkit-1.0.0/src/reaxkit/analysis/per_file/fort7_analyzer.py +393 -0
  26. reaxkit-1.0.0/src/reaxkit/analysis/per_file/fort99_analyzer.py +411 -0
  27. reaxkit-1.0.0/src/reaxkit/analysis/per_file/molfra_analyzer.py +359 -0
  28. reaxkit-1.0.0/src/reaxkit/analysis/per_file/params_analyzer.py +258 -0
  29. reaxkit-1.0.0/src/reaxkit/analysis/per_file/summary_analyzer.py +84 -0
  30. reaxkit-1.0.0/src/reaxkit/analysis/per_file/trainset_analyzer.py +84 -0
  31. reaxkit-1.0.0/src/reaxkit/analysis/per_file/vels_analyzer.py +95 -0
  32. reaxkit-1.0.0/src/reaxkit/analysis/per_file/xmolout_analyzer.py +528 -0
  33. reaxkit-1.0.0/src/reaxkit/cli.py +181 -0
  34. reaxkit-1.0.0/src/reaxkit/count_loc.py +276 -0
  35. reaxkit-1.0.0/src/reaxkit/data/alias.yaml +89 -0
  36. reaxkit-1.0.0/src/reaxkit/data/constants.yaml +27 -0
  37. reaxkit-1.0.0/src/reaxkit/data/reaxff_input_files_contents.yaml +186 -0
  38. reaxkit-1.0.0/src/reaxkit/data/reaxff_output_files_contents.yaml +301 -0
  39. reaxkit-1.0.0/src/reaxkit/data/units.yaml +38 -0
  40. reaxkit-1.0.0/src/reaxkit/help/__init__.py +0 -0
  41. reaxkit-1.0.0/src/reaxkit/help/help_index_loader.py +531 -0
  42. reaxkit-1.0.0/src/reaxkit/help/introspection_utils.py +131 -0
  43. reaxkit-1.0.0/src/reaxkit/io/__init__.py +0 -0
  44. reaxkit-1.0.0/src/reaxkit/io/base_handler.py +165 -0
  45. reaxkit-1.0.0/src/reaxkit/io/generators/__init__.py +0 -0
  46. reaxkit-1.0.0/src/reaxkit/io/generators/control_generator.py +123 -0
  47. reaxkit-1.0.0/src/reaxkit/io/generators/eregime_generator.py +341 -0
  48. reaxkit-1.0.0/src/reaxkit/io/generators/geo_generator.py +967 -0
  49. reaxkit-1.0.0/src/reaxkit/io/generators/trainset_generator.py +1758 -0
  50. reaxkit-1.0.0/src/reaxkit/io/generators/tregime_generator.py +113 -0
  51. reaxkit-1.0.0/src/reaxkit/io/generators/vregime_generator.py +164 -0
  52. reaxkit-1.0.0/src/reaxkit/io/generators/xmolout_generator.py +304 -0
  53. reaxkit-1.0.0/src/reaxkit/io/handlers/__init__.py +0 -0
  54. reaxkit-1.0.0/src/reaxkit/io/handlers/control_handler.py +209 -0
  55. reaxkit-1.0.0/src/reaxkit/io/handlers/eregime_handler.py +122 -0
  56. reaxkit-1.0.0/src/reaxkit/io/handlers/ffield_handler.py +812 -0
  57. reaxkit-1.0.0/src/reaxkit/io/handlers/fort13_handler.py +123 -0
  58. reaxkit-1.0.0/src/reaxkit/io/handlers/fort57_handler.py +143 -0
  59. reaxkit-1.0.0/src/reaxkit/io/handlers/fort73_handler.py +145 -0
  60. reaxkit-1.0.0/src/reaxkit/io/handlers/fort74_handler.py +155 -0
  61. reaxkit-1.0.0/src/reaxkit/io/handlers/fort76_handler.py +195 -0
  62. reaxkit-1.0.0/src/reaxkit/io/handlers/fort78_handler.py +142 -0
  63. reaxkit-1.0.0/src/reaxkit/io/handlers/fort79_handler.py +227 -0
  64. reaxkit-1.0.0/src/reaxkit/io/handlers/fort7_handler.py +264 -0
  65. reaxkit-1.0.0/src/reaxkit/io/handlers/fort99_handler.py +128 -0
  66. reaxkit-1.0.0/src/reaxkit/io/handlers/geo_handler.py +224 -0
  67. reaxkit-1.0.0/src/reaxkit/io/handlers/molfra_handler.py +184 -0
  68. reaxkit-1.0.0/src/reaxkit/io/handlers/params_handler.py +137 -0
  69. reaxkit-1.0.0/src/reaxkit/io/handlers/summary_handler.py +135 -0
  70. reaxkit-1.0.0/src/reaxkit/io/handlers/trainset_handler.py +658 -0
  71. reaxkit-1.0.0/src/reaxkit/io/handlers/vels_handler.py +293 -0
  72. reaxkit-1.0.0/src/reaxkit/io/handlers/xmolout_handler.py +174 -0
  73. reaxkit-1.0.0/src/reaxkit/utils/__init__.py +0 -0
  74. reaxkit-1.0.0/src/reaxkit/utils/alias.py +219 -0
  75. reaxkit-1.0.0/src/reaxkit/utils/cache.py +77 -0
  76. reaxkit-1.0.0/src/reaxkit/utils/constants.py +75 -0
  77. reaxkit-1.0.0/src/reaxkit/utils/equation_of_states.py +96 -0
  78. reaxkit-1.0.0/src/reaxkit/utils/exceptions.py +27 -0
  79. reaxkit-1.0.0/src/reaxkit/utils/frame_utils.py +175 -0
  80. reaxkit-1.0.0/src/reaxkit/utils/log.py +43 -0
  81. reaxkit-1.0.0/src/reaxkit/utils/media/__init__.py +0 -0
  82. reaxkit-1.0.0/src/reaxkit/utils/media/convert.py +90 -0
  83. reaxkit-1.0.0/src/reaxkit/utils/media/make_video.py +91 -0
  84. reaxkit-1.0.0/src/reaxkit/utils/media/plotter.py +812 -0
  85. reaxkit-1.0.0/src/reaxkit/utils/numerical/__init__.py +0 -0
  86. reaxkit-1.0.0/src/reaxkit/utils/numerical/extrema_finder.py +96 -0
  87. reaxkit-1.0.0/src/reaxkit/utils/numerical/moving_average.py +103 -0
  88. reaxkit-1.0.0/src/reaxkit/utils/numerical/numerical_calcs.py +75 -0
  89. reaxkit-1.0.0/src/reaxkit/utils/numerical/signal_ops.py +135 -0
  90. reaxkit-1.0.0/src/reaxkit/utils/path.py +55 -0
  91. reaxkit-1.0.0/src/reaxkit/utils/units.py +104 -0
  92. reaxkit-1.0.0/src/reaxkit/webui/__init__.py +0 -0
  93. reaxkit-1.0.0/src/reaxkit/webui/app.py +0 -0
  94. reaxkit-1.0.0/src/reaxkit/webui/components.py +0 -0
  95. reaxkit-1.0.0/src/reaxkit/webui/layouts.py +0 -0
  96. reaxkit-1.0.0/src/reaxkit/webui/utils.py +0 -0
  97. reaxkit-1.0.0/src/reaxkit/workflows/__init__.py +0 -0
  98. reaxkit-1.0.0/src/reaxkit/workflows/composed/__init__.py +0 -0
  99. reaxkit-1.0.0/src/reaxkit/workflows/composed/coordination_workflow.py +393 -0
  100. reaxkit-1.0.0/src/reaxkit/workflows/composed/electrostatics_workflow.py +587 -0
  101. reaxkit-1.0.0/src/reaxkit/workflows/composed/xmolout_fort7_workflow.py +343 -0
  102. reaxkit-1.0.0/src/reaxkit/workflows/meta/__init__.py +0 -0
  103. reaxkit-1.0.0/src/reaxkit/workflows/meta/help_workflow.py +136 -0
  104. reaxkit-1.0.0/src/reaxkit/workflows/meta/introspection_workflow.py +235 -0
  105. reaxkit-1.0.0/src/reaxkit/workflows/meta/make_video_workflow.py +61 -0
  106. reaxkit-1.0.0/src/reaxkit/workflows/meta/plotter_workflow.py +601 -0
  107. reaxkit-1.0.0/src/reaxkit/workflows/per_file/__init__.py +0 -0
  108. reaxkit-1.0.0/src/reaxkit/workflows/per_file/control_workflow.py +110 -0
  109. reaxkit-1.0.0/src/reaxkit/workflows/per_file/eregime_workflow.py +267 -0
  110. reaxkit-1.0.0/src/reaxkit/workflows/per_file/ffield_workflow.py +390 -0
  111. reaxkit-1.0.0/src/reaxkit/workflows/per_file/fort13_workflow.py +86 -0
  112. reaxkit-1.0.0/src/reaxkit/workflows/per_file/fort57_workflow.py +137 -0
  113. reaxkit-1.0.0/src/reaxkit/workflows/per_file/fort73_workflow.py +151 -0
  114. reaxkit-1.0.0/src/reaxkit/workflows/per_file/fort74_workflow.py +88 -0
  115. reaxkit-1.0.0/src/reaxkit/workflows/per_file/fort76_workflow.py +188 -0
  116. reaxkit-1.0.0/src/reaxkit/workflows/per_file/fort78_workflow.py +135 -0
  117. reaxkit-1.0.0/src/reaxkit/workflows/per_file/fort79_workflow.py +314 -0
  118. reaxkit-1.0.0/src/reaxkit/workflows/per_file/fort7_workflow.py +592 -0
  119. reaxkit-1.0.0/src/reaxkit/workflows/per_file/fort83_workflow.py +60 -0
  120. reaxkit-1.0.0/src/reaxkit/workflows/per_file/fort99_workflow.py +223 -0
  121. reaxkit-1.0.0/src/reaxkit/workflows/per_file/geo_workflow.py +554 -0
  122. reaxkit-1.0.0/src/reaxkit/workflows/per_file/molfra_workflow.py +577 -0
  123. reaxkit-1.0.0/src/reaxkit/workflows/per_file/params_workflow.py +135 -0
  124. reaxkit-1.0.0/src/reaxkit/workflows/per_file/summary_workflow.py +161 -0
  125. reaxkit-1.0.0/src/reaxkit/workflows/per_file/trainset_workflow.py +356 -0
  126. reaxkit-1.0.0/src/reaxkit/workflows/per_file/tregime_workflow.py +79 -0
  127. reaxkit-1.0.0/src/reaxkit/workflows/per_file/vels_workflow.py +309 -0
  128. reaxkit-1.0.0/src/reaxkit/workflows/per_file/vregime_workflow.py +75 -0
  129. reaxkit-1.0.0/src/reaxkit/workflows/per_file/xmolout_workflow.py +678 -0
  130. reaxkit-1.0.0/src/reaxkit.egg-info/PKG-INFO +128 -0
  131. reaxkit-1.0.0/src/reaxkit.egg-info/SOURCES.txt +140 -0
  132. reaxkit-1.0.0/src/reaxkit.egg-info/dependency_links.txt +1 -0
  133. reaxkit-1.0.0/src/reaxkit.egg-info/entry_points.txt +2 -0
  134. reaxkit-1.0.0/src/reaxkit.egg-info/requires.txt +15 -0
  135. reaxkit-1.0.0/src/reaxkit.egg-info/top_level.txt +1 -0
  136. reaxkit-1.0.0/tests/test_alias_resolution.py +109 -0
  137. reaxkit-1.0.0/tests/test_cli_help.py +84 -0
  138. reaxkit-1.0.0/tests/test_eregime_generator.py +81 -0
  139. reaxkit-1.0.0/tests/test_file_handler_base.py +80 -0
  140. reaxkit-1.0.0/tests/test_fort7_workflow.py +247 -0
  141. reaxkit-1.0.0/tests/test_rdf_analyzer.py +161 -0
  142. reaxkit-1.0.0/tests/test_xmolout_handler.py +139 -0
@@ -0,0 +1,20 @@
1
+ # Authors and Acknowledgments
2
+
3
+ **ReaxKit** was primarily developed by:
4
+
5
+ - **Ali Mohammadi Dinani** – Project lead; design, and architecture; developing handlers, analyzers, and workflows
6
+ - **Adri van Duin** - Supervision and support for ReaxKit; developing `xtob.f` and `place2.f` fortran codes used in `geo_generator.py`; developing ReaxFF
7
+
8
+ ### Code Contributions and Collaborations
9
+
10
+
11
+ Parts of this codebase were inspired by or adapted from work contributed by:
12
+
13
+ - **[Yun Kyung Shin]** – developed the `elastic_energy.f` and `elastic_geo.f` fortran codes used in `trainset_generator.py`
14
+ - **[Alireza Sepehrinezhad]** – developed the initial version of `make_eregime_sinusoidal` used in `eregime_generator.py` and `dipole_analyzer.py` code used in the `electrostatics_analyzers.py`
15
+
16
+ Their original contributions have been modified and integrated with permission.
17
+
18
+ ---
19
+
20
+ If you believe your contributions or ideas are reflected here and you’re not yet listed, please contact the maintainer.
reaxkit-1.0.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Ali Mohammadi Dinani
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the “Software”), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
reaxkit-1.0.0/PKG-INFO ADDED
@@ -0,0 +1,128 @@
1
+ Metadata-Version: 2.4
2
+ Name: reaxkit
3
+ Version: 1.0.0
4
+ Summary: A toolkit for parsing, analyzing, and visualizing ReaxFF simulation data.
5
+ Author-email: Ali Mohammadi <alimohammadi2265@gmail.com>, Adri van Duin <acv13@psu.edu>, Yun Kyung Shin <yks2@psu.edu>, Alireza Sepehrinezhad <alireza.sepehri@psu.edu>
6
+ License: MIT
7
+ Requires-Python: >=3.9
8
+ Description-Content-Type: text/markdown
9
+ License-File: LICENSE
10
+ License-File: AUTHORS.md
11
+ Requires-Dist: numpy
12
+ Requires-Dist: pandas
13
+ Requires-Dist: matplotlib
14
+ Requires-Dist: seaborn
15
+ Requires-Dist: scipy
16
+ Requires-Dist: tqdm
17
+ Requires-Dist: rich
18
+ Requires-Dist: freud-analysis
19
+ Requires-Dist: ovito
20
+ Requires-Dist: tabulate
21
+ Requires-Dist: ase
22
+ Requires-Dist: imageio
23
+ Requires-Dist: mp_api
24
+ Requires-Dist: PyYAML
25
+ Requires-Dist: rapidfuzz
26
+ Dynamic: license-file
27
+
28
+ # ReaxKit
29
+
30
+ **ReaxKit** is a modular, extensible Python toolkit for **pre‑processing, post‑processing, and analysis of ReaxFF** molecular dynamics simulations.
31
+ It provides a clean separation between file parsing, analysis routines, and reproducible workflows, with both **Python APIs** and a **CLI interface**.
32
+
33
+ ReaxKit is designed for researchers who want a transparent, scriptable bridge between raw ReaxFF files and quantitative, publication‑ready results.
34
+
35
+ ---
36
+
37
+ ## Key Capabilities
38
+
39
+ ### File IO (Parsing & Generation)
40
+ - Robust handlers for ReaxFF input and output files:
41
+ - `xmolout`, `fort.7`, `fort.13`, `molfra`, and more
42
+ - Input file generators:
43
+ - `control`, `geo`, `eregime`, `tregime`, and more
44
+ - Unified handler interface for consistent data access
45
+
46
+ ### Analysis
47
+ - Per‑file analyzers (one analyzer per ReaxFF file type)
48
+ - Composed analyzers that combine multiple data sources:
49
+ - Coordination numbers
50
+ - Connectivity graphs
51
+ - Electrostatics and dipoles
52
+ - Radial distribution functions (RDF)
53
+ - Numerical utilities for smoothing, extrema detection, and signal processing
54
+
55
+ ### Workflows
56
+ - Reproducible, CLI‑driven workflows for:
57
+ - Single‑file analysis
58
+ - Multi‑file composed analysis
59
+ - Plotting and media generation
60
+ - Designed to automate common ReaxFF post‑processing tasks
61
+
62
+ ### Visualization & Media
63
+ - Publication‑ready plotting utilities (2D, dual‑axis, tornado plots, 3D scatter, heatmaps)
64
+ - Trajectory and plot video generation
65
+
66
+ See the full documentation (API reference, tutorials, examples) on [ReaxKit Site](https://ali-m-dinani.github.io/reaxkit/).
67
+
68
+ ---
69
+
70
+ ## Project Layout
71
+
72
+ ```
73
+ src/reaxkit/
74
+ ├── analysis/ # Analysis routines (per-file and composed)
75
+ ├── io/ # File handlers and generators
76
+ ├── utils/ # Shared utilities (aliases, units, constants, numerics)
77
+ ├── workflows/ # CLI and automation workflows
78
+ ├── help/ # Introspection and help system
79
+ └── cli.py # Command-line entry point
80
+ ```
81
+
82
+ Additional resources:
83
+
84
+ - [Installation notes](docs/installation.md) — Full installation instructions (requires **Python ≥ 3.9**).
85
+ - [Quickstart](docs/quickstart.md) — Get up and running with core ReaxKit workflows in minutes.
86
+ - [Tutorials notes](docs/tutorials/index.md) and [source files](https://ali-m-dinani.github.io/reaxkit/tutorials/) — Step-by-step guides for common ReaxKit workflows and use cases.
87
+ - [Examples](docs/examples/README.md) and [source files](https://ali-m-dinani.github.io/reaxkit/examples/) — Minimal, runnable Python examples using public APIs.
88
+ - [ReaxFF Reference](docs/reaxff_reference/index.md) — Reference documentation for ReaxFF input and output files.
89
+ - [Contributing](docs/contributing.md) — Guidelines for contributing to ReaxKit.
90
+ - [File Templates](docs/file_templates/index.md) and [Docstring Conventions](docs/file_templates/docstrings.md) — Development guidelines and code templates.
91
+ - [AUTHORS.md](AUTHORS.md) — Full credits and acknowledgments.
92
+ - [LICENSE](LICENSE) — Full license terms under the **MIT License**
93
+
94
+ ---
95
+
96
+ ## Testing
97
+
98
+ Run unit tests with:
99
+
100
+ ```bash
101
+ pytest -s tests/
102
+ ```
103
+
104
+ to test the package and get the timing for their execution.
105
+
106
+ ---
107
+
108
+ ## Citation
109
+
110
+ If you use ReaxKit in your work, please cite:
111
+
112
+ ```text
113
+ Dinani, A. M., van Duin, A., Shin, Y. K., & Sepehrinezhad, A. (2025).
114
+ ReaxKit: A modular Python toolkit for ReaxFF simulation analysis.
115
+ Zenodo. https://doi.org/10.5281/zenodo.18485384
116
+
117
+ Source code: https://github.com/ali-m-dinani/reaxkit
118
+ ```
119
+
120
+ ---
121
+
122
+ ## Future Directions
123
+
124
+ * Add support for other analyzers including autocorrelation functions, thermodynamic properties calculations, etc.
125
+ * Develop GUI dashboard for interactive ReaxFF data inspection
126
+ * Implement ML-based trend prediction for simulation outputs
127
+
128
+ 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`.
@@ -0,0 +1,101 @@
1
+ # ReaxKit
2
+
3
+ **ReaxKit** is a modular, extensible Python toolkit for **pre‑processing, post‑processing, and analysis of ReaxFF** molecular dynamics simulations.
4
+ It provides a clean separation between file parsing, analysis routines, and reproducible workflows, with both **Python APIs** and a **CLI interface**.
5
+
6
+ ReaxKit is designed for researchers who want a transparent, scriptable bridge between raw ReaxFF files and quantitative, publication‑ready results.
7
+
8
+ ---
9
+
10
+ ## Key Capabilities
11
+
12
+ ### File IO (Parsing & Generation)
13
+ - Robust handlers for ReaxFF input and output files:
14
+ - `xmolout`, `fort.7`, `fort.13`, `molfra`, and more
15
+ - Input file generators:
16
+ - `control`, `geo`, `eregime`, `tregime`, and more
17
+ - Unified handler interface for consistent data access
18
+
19
+ ### Analysis
20
+ - Per‑file analyzers (one analyzer per ReaxFF file type)
21
+ - Composed analyzers that combine multiple data sources:
22
+ - Coordination numbers
23
+ - Connectivity graphs
24
+ - Electrostatics and dipoles
25
+ - Radial distribution functions (RDF)
26
+ - Numerical utilities for smoothing, extrema detection, and signal processing
27
+
28
+ ### Workflows
29
+ - Reproducible, CLI‑driven workflows for:
30
+ - Single‑file analysis
31
+ - Multi‑file composed analysis
32
+ - Plotting and media generation
33
+ - Designed to automate common ReaxFF post‑processing tasks
34
+
35
+ ### Visualization & Media
36
+ - Publication‑ready plotting utilities (2D, dual‑axis, tornado plots, 3D scatter, heatmaps)
37
+ - Trajectory and plot video generation
38
+
39
+ See the full documentation (API reference, tutorials, examples) on [ReaxKit Site](https://ali-m-dinani.github.io/reaxkit/).
40
+
41
+ ---
42
+
43
+ ## Project Layout
44
+
45
+ ```
46
+ src/reaxkit/
47
+ ├── analysis/ # Analysis routines (per-file and composed)
48
+ ├── io/ # File handlers and generators
49
+ ├── utils/ # Shared utilities (aliases, units, constants, numerics)
50
+ ├── workflows/ # CLI and automation workflows
51
+ ├── help/ # Introspection and help system
52
+ └── cli.py # Command-line entry point
53
+ ```
54
+
55
+ Additional resources:
56
+
57
+ - [Installation notes](docs/installation.md) — Full installation instructions (requires **Python ≥ 3.9**).
58
+ - [Quickstart](docs/quickstart.md) — Get up and running with core ReaxKit workflows in minutes.
59
+ - [Tutorials notes](docs/tutorials/index.md) and [source files](https://ali-m-dinani.github.io/reaxkit/tutorials/) — Step-by-step guides for common ReaxKit workflows and use cases.
60
+ - [Examples](docs/examples/README.md) and [source files](https://ali-m-dinani.github.io/reaxkit/examples/) — Minimal, runnable Python examples using public APIs.
61
+ - [ReaxFF Reference](docs/reaxff_reference/index.md) — Reference documentation for ReaxFF input and output files.
62
+ - [Contributing](docs/contributing.md) — Guidelines for contributing to ReaxKit.
63
+ - [File Templates](docs/file_templates/index.md) and [Docstring Conventions](docs/file_templates/docstrings.md) — Development guidelines and code templates.
64
+ - [AUTHORS.md](AUTHORS.md) — Full credits and acknowledgments.
65
+ - [LICENSE](LICENSE) — Full license terms under the **MIT License**
66
+
67
+ ---
68
+
69
+ ## Testing
70
+
71
+ Run unit tests with:
72
+
73
+ ```bash
74
+ pytest -s tests/
75
+ ```
76
+
77
+ to test the package and get the timing for their execution.
78
+
79
+ ---
80
+
81
+ ## Citation
82
+
83
+ If you use ReaxKit in your work, please cite:
84
+
85
+ ```text
86
+ Dinani, A. M., van Duin, A., Shin, Y. K., & Sepehrinezhad, A. (2025).
87
+ ReaxKit: A modular Python toolkit for ReaxFF simulation analysis.
88
+ Zenodo. https://doi.org/10.5281/zenodo.18485384
89
+
90
+ Source code: https://github.com/ali-m-dinani/reaxkit
91
+ ```
92
+
93
+ ---
94
+
95
+ ## Future Directions
96
+
97
+ * Add support for other analyzers including autocorrelation functions, thermodynamic properties calculations, etc.
98
+ * Develop GUI dashboard for interactive ReaxFF data inspection
99
+ * Implement ML-based trend prediction for simulation outputs
100
+
101
+ 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`.
@@ -0,0 +1,49 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "reaxkit"
7
+ version = "1.0.0"
8
+ description = "A toolkit for parsing, analyzing, and visualizing ReaxFF simulation data."
9
+ authors = [
10
+ { name = "Ali Mohammadi", email = "alimohammadi2265@gmail.com" },
11
+ { name = "Adri van Duin", email = "acv13@psu.edu" },
12
+ { name = "Yun Kyung Shin", email = "yks2@psu.edu" },
13
+ { name = "Alireza Sepehrinezhad", email = "alireza.sepehri@psu.edu" },
14
+ ]
15
+ readme = "README.md"
16
+ license = { text = "MIT" }
17
+
18
+ requires-python = ">=3.9"
19
+
20
+ dependencies = [
21
+ "numpy",
22
+ "pandas",
23
+ "matplotlib",
24
+ "seaborn",
25
+ "scipy",
26
+ "tqdm",
27
+ "rich",
28
+ "freud-analysis",
29
+ "ovito",
30
+ "tabulate",
31
+ "ase",
32
+ "imageio",
33
+ "mp_api",
34
+ "PyYAML",
35
+ "rapidfuzz",
36
+ ]
37
+
38
+ [project.scripts]
39
+ reaxkit = "reaxkit.cli:main"
40
+
41
+ [tool.setuptools]
42
+ package-dir = {"" = "src"}
43
+
44
+ [tool.setuptools.packages.find]
45
+ where = ["src"]
46
+
47
+ [tool.setuptools.package-data]
48
+ reaxkit = ["**/*.yaml"]
49
+
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
File without changes
File without changes