ion-CSP 2.0.2__tar.gz → 2.0.4__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 (86) hide show
  1. ion_csp-2.0.4/.github/workflows/build.yml +34 -0
  2. ion_csp-2.0.4/.github/workflows/python-package-conda.yml +43 -0
  3. ion_csp-2.0.4/.github/workflows/python-publish.yml +70 -0
  4. {ion_csp-2.0.2 → ion_csp-2.0.4}/.gitignore +1 -1
  5. ion_csp-2.0.4/MANIFEST.in +2 -0
  6. ion_csp-2.0.4/PKG-INFO +236 -0
  7. ion_csp-2.0.4/README.md +207 -0
  8. ion_csp-2.0.4/SECURITY.md +21 -0
  9. ion_csp-2.0.4/environment.yml +20 -0
  10. ion_csp-2.0.4/examples/example_usage.py +4 -0
  11. {ion_csp-2.0.2 → ion_csp-2.0.4}/param/INCAR_1 +2 -2
  12. {ion_csp-2.0.2 → ion_csp-2.0.4}/param/INCAR_2 +2 -2
  13. {ion_csp-2.0.2 → ion_csp-2.0.4}/pyproject.toml +6 -6
  14. {ion_csp-2.0.2 → ion_csp-2.0.4}/requirements.txt +2 -1
  15. ion_csp-2.0.4/scripts/main_usage.py +4 -0
  16. ion_csp-2.0.4/setup.cfg +7 -0
  17. ion_csp-2.0.4/setup.py +33 -0
  18. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/__init__.py +2 -2
  19. ion_csp-2.0.4/src/ion_CSP/__main__.py +5 -0
  20. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/gen_opt.py +1 -1
  21. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/identify_molecules.py +3 -3
  22. ion_csp-2.0.4/src/ion_CSP/task_manager.py +396 -0
  23. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/vasp_processing.py +3 -3
  24. ion_csp-2.0.4/src/ion_CSP.egg-info/PKG-INFO +236 -0
  25. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP.egg-info/SOURCES.txt +11 -5
  26. ion_csp-2.0.4/src/ion_CSP.egg-info/entry_points.txt +2 -0
  27. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP.egg-info/requires.txt +2 -1
  28. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/run_convert_SMILES.py +8 -21
  29. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/run_empirical_estimate.py +8 -21
  30. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/run_vasp_processing.py +5 -5
  31. ion_csp-2.0.4/tests/test1_task_manager1.py +121 -0
  32. ion_csp-2.0.4/tests/test_task_manager.py +178 -0
  33. {ion_csp-2.0.2 → ion_csp-2.0.4}/uv.lock +47 -7
  34. ion_csp-2.0.2/PKG-INFO +0 -83
  35. ion_csp-2.0.2/README.md +0 -33
  36. ion_csp-2.0.2/examples/example_usage.py +0 -6
  37. ion_csp-2.0.2/scripts/main_usage.py +0 -6
  38. ion_csp-2.0.2/setup.cfg +0 -32
  39. ion_csp-2.0.2/setup.py +0 -20
  40. ion_csp-2.0.2/src/ion_CSP/app.py +0 -201
  41. ion_csp-2.0.2/src/ion_CSP.egg-info/PKG-INFO +0 -83
  42. ion_csp-2.0.2/src/ion_CSP.egg-info/entry_points.txt +0 -2
  43. ion_csp-2.0.2/tests/example.txt +0 -1
  44. ion_csp-2.0.2/tests/test.py +0 -23
  45. ion_csp-2.0.2/tests/test_main.py +0 -16
  46. {ion_csp-2.0.2 → ion_csp-2.0.4}/.dockerignore +0 -0
  47. {ion_csp-2.0.2 → ion_csp-2.0.4}/.vscode/settings.json +0 -0
  48. {ion_csp-2.0.2 → ion_csp-2.0.4}/CHANGELOG.md +0 -0
  49. {ion_csp-2.0.2 → ion_csp-2.0.4}/CODE_OF_CONDUCT.md +0 -0
  50. {ion_csp-2.0.2 → ion_csp-2.0.4}/CONTRIBUTING.md +0 -0
  51. {ion_csp-2.0.2 → ion_csp-2.0.4}/Dockerfile +0 -0
  52. {ion_csp-2.0.2 → ion_csp-2.0.4}/LICENSE +0 -0
  53. {ion_csp-2.0.2 → ion_csp-2.0.4}/docs/example_usage_CSP.py +0 -0
  54. {ion_csp-2.0.2 → ion_csp-2.0.4}/docs/example_usage_EE.py +0 -0
  55. {ion_csp-2.0.2 → ion_csp-2.0.4}/docs/index.md +0 -0
  56. {ion_csp-2.0.2 → ion_csp-2.0.4}/docs/usage.md +0 -0
  57. {ion_csp-2.0.2 → ion_csp-2.0.4}/makefile +0 -0
  58. {ion_csp-2.0.2 → ion_csp-2.0.4}/model/model.pt +0 -0
  59. {ion_csp-2.0.2 → ion_csp-2.0.4}/model/options/README.md +0 -0
  60. {ion_csp-2.0.2 → ion_csp-2.0.4}/model/options/model.ckpt-4000000.pt +0 -0
  61. {ion_csp-2.0.2 → ion_csp-2.0.4}/param/INCAR_0 +0 -0
  62. {ion_csp-2.0.2 → ion_csp-2.0.4}/param/POTCAR_C +0 -0
  63. {ion_csp-2.0.2 → ion_csp-2.0.4}/param/POTCAR_H +0 -0
  64. {ion_csp-2.0.2 → ion_csp-2.0.4}/param/POTCAR_N +0 -0
  65. {ion_csp-2.0.2 → ion_csp-2.0.4}/param/POTCAR_O +0 -0
  66. {ion_csp-2.0.2 → ion_csp-2.0.4}/param/g16_sub.sh +0 -0
  67. {ion_csp-2.0.2 → ion_csp-2.0.4}/param/sub.sh +0 -0
  68. {ion_csp-2.0.2 → ion_csp-2.0.4}/scripts/main_CSP.sh +0 -0
  69. {ion_csp-2.0.2 → ion_csp-2.0.4}/scripts/main_EE.sh +0 -0
  70. /ion_csp-2.0.2/scripts/main.sh → /ion_csp-2.0.4/scripts/main_usage.sh +0 -0
  71. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/__init__.py +0 -0
  72. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/convert_SMILES.py +0 -0
  73. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/empirical_estimate.py +0 -0
  74. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/log_and_time.py +0 -0
  75. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/mlp_opt.py +0 -0
  76. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/read_mlp_density.py +0 -0
  77. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/steps_opt_monitor.sh +0 -0
  78. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/upload_download.py +0 -0
  79. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP.egg-info/dependency_links.txt +0 -0
  80. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP.egg-info/top_level.txt +0 -0
  81. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/main_CSP.py +0 -0
  82. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/main_EE.py +0 -0
  83. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/run_gen_opt.py +0 -0
  84. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/run_read_mlp_density.py +0 -0
  85. {ion_csp-2.0.2 → ion_csp-2.0.4}/src/run_upload_download.py +0 -0
  86. {ion_csp-2.0.2 → ion_csp-2.0.4}/tests/__init__.py +0 -0
@@ -0,0 +1,34 @@
1
+ name: CI Build
2
+
3
+ on: [push, pull_request]
4
+
5
+ jobs:
6
+ build:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ matrix:
10
+ python-version: [3.11]
11
+
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+
15
+ - name: Set up Conda
16
+ uses: conda-incubator/setup-miniconda@v3
17
+ with:
18
+ auto-activate-base: false
19
+ channels: conda-forge,defaults
20
+
21
+ - name: Create environment
22
+ run: |
23
+ conda env create -f environment.yml --name ion-csp-env
24
+ conda init bash
25
+ conda activate ion-csp-env
26
+
27
+ - name: Install dependencies
28
+ run: |
29
+ pip install -r requirements.txt
30
+ pip install setuptools-scm
31
+
32
+ - name: Build package
33
+ run: |
34
+ python -m build
@@ -0,0 +1,43 @@
1
+ name: Python Package using Conda
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ build-linux:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ max-parallel: 5
10
+
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+ - name: Set up Python 3.11
14
+ uses: actions/setup-python@v3
15
+ with:
16
+ python-version: '3.11'
17
+ - name: Add conda to system path
18
+ run: |
19
+ # $CONDA is an environment variable pointing to the root of the miniconda directory
20
+ echo $CONDA/bin >> $GITHUB_PATH
21
+ - name: Install dependencies
22
+ run: |
23
+ conda env update --file environment.yml --name ion-csp-env
24
+ conda init
25
+ conda activate ion-csp-env
26
+ - name: Install dependencies
27
+ run: |
28
+ pip install -r requirements.txt
29
+ pip install setuptools-scm
30
+ - name: Build package
31
+ run: |
32
+ python -m build
33
+ - name: Lint with flake8
34
+ run: |
35
+ conda install flake8
36
+ # stop the build if there are Python syntax errors or undefined names
37
+ flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
38
+ # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
39
+ flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
40
+ - name: Test with pytest
41
+ run: |
42
+ conda install pytest
43
+ pytest
@@ -0,0 +1,70 @@
1
+ # This workflow will upload a Python Package to PyPI when a release is created
2
+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
3
+
4
+ # This workflow uses actions that are not certified by GitHub.
5
+ # They are provided by a third-party and are governed by
6
+ # separate terms of service, privacy policy, and support
7
+ # documentation.
8
+
9
+ name: Upload Python Package
10
+
11
+ on:
12
+ release:
13
+ types: [published]
14
+
15
+ permissions:
16
+ contents: read
17
+
18
+ jobs:
19
+ release-build:
20
+ runs-on: ubuntu-latest
21
+
22
+ steps:
23
+ - uses: actions/checkout@v4
24
+
25
+ - uses: actions/setup-python@v5
26
+ with:
27
+ python-version: "3.11"
28
+
29
+ - name: Build release distributions
30
+ run: |
31
+ # NOTE: put your own distribution build steps here.
32
+ python -m pip install build
33
+ python -m build
34
+
35
+ - name: Upload distributions
36
+ uses: actions/upload-artifact@v4
37
+ with:
38
+ name: release-dists
39
+ path: dist/
40
+
41
+ pypi-publish:
42
+ runs-on: ubuntu-latest
43
+ needs:
44
+ - release-build
45
+ permissions:
46
+ # IMPORTANT: this permission is mandatory for trusted publishing
47
+ id-token: write
48
+
49
+ # Dedicated environments with protections for publishing are strongly recommended.
50
+ # For more information, see: https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#deployment-protection-rules
51
+ environment:
52
+ name: pypi
53
+ # OPTIONAL: uncomment and update to include your PyPI project URL in the deployment status:
54
+ # url: https://pypi.org/p/YOURPROJECT
55
+ #
56
+ # ALTERNATIVE: if your GitHub Release name is the PyPI project version string
57
+ # ALTERNATIVE: exactly, uncomment the following line instead:
58
+ # url: https://pypi.org/project/YOURPROJECT/${{ github.event.release.name }}
59
+
60
+ steps:
61
+ - name: Retrieve release distributions
62
+ uses: actions/download-artifact@v4
63
+ with:
64
+ name: release-dists
65
+ path: dist/
66
+
67
+ - name: Publish release distributions to PyPI
68
+ uses: pypa/gh-action-pypi-publish@release/v1
69
+ with:
70
+ packages-dir: dist/
@@ -32,4 +32,4 @@ slurm-*.out
32
32
  server_config
33
33
  *.yaml
34
34
  model_ori.pt
35
- yz_opt/
35
+ logs/*
@@ -0,0 +1,2 @@
1
+ include README.md
2
+ include LICENSE
ion_csp-2.0.4/PKG-INFO ADDED
@@ -0,0 +1,236 @@
1
+ Metadata-Version: 2.4
2
+ Name: ion_CSP
3
+ Version: 2.0.4
4
+ Summary: Crystal Structure Design Software Based on Molecular/Ionic Configuration.
5
+ Home-page: https://github.com/bagabaga007/ion_CSP
6
+ Author: Ze Yang
7
+ Author-email: Ze Yang <yangze1995007@163.com>
8
+ License-Expression: MIT
9
+ Keywords: ion_crystal, crystal_structure_prediction
10
+ Classifier: Programming Language :: Python :: 3
11
+ Classifier: Operating System :: OS Independent
12
+ Requires-Python: >=3.11
13
+ Description-Content-Type: text/markdown
14
+ License-File: LICENSE
15
+ Requires-Dist: ase==3.23.0
16
+ Requires-Dist: deepmd-kit==3.0.1
17
+ Requires-Dist: torch==2.5.0
18
+ Requires-Dist: dpdispatcher==0.6.7
19
+ Requires-Dist: numpy==1.26.4
20
+ Requires-Dist: paramiko==3.5.1
21
+ Requires-Dist: pyxtal==1.0.4
22
+ Requires-Dist: phonopy==2.28.0
23
+ Requires-Dist: rdkit==2024.3.3
24
+ Requires-Dist: pytest==8.3.4
25
+ Dynamic: author
26
+ Dynamic: home-page
27
+ Dynamic: license-file
28
+ Dynamic: requires-python
29
+
30
+ # Crystal Structure Design Software V2.0
31
+
32
+ ## 项目概述
33
+ 基于分子/离子构型的晶体结构设计软件通过结合经验公式、机器学习势函数微调、第一性原理分步优化和分子/离子识别技术,实现了从分子/离子构型出发的高效晶体结构筛选。该软件采用模块化设计,支持全流程自动化材料筛选,在保证预测精度的同时显著提升计算效率。
34
+
35
+ ## 功能特性
36
+ ### 核心功能
37
+ - **双模块工作流**
38
+ - **EE模块**:基于经验评估的离子组合生成
39
+ - **CSP模块**:基于离子晶体结构预测的优化筛选
40
+ - **智能任务管理**
41
+ - 实时进程监控(PID跟踪)
42
+ - 日志文件自动符号链接
43
+ - 进程安全终止与资源清理
44
+ - **高级日志系统**
45
+ - 分页浏览(10条/页)
46
+ - 模块过滤(CSP/EE)
47
+ - 软链接解析显示实际路径
48
+
49
+ ### 技术特性
50
+ - 跨平台支持(Linux/Docker)
51
+ - 基于Python 3.11+的面向对象架构
52
+ - 集成psutil进程管理
53
+ - 结构化日志记录系统
54
+
55
+ ## 安装指南
56
+ ### 环境要求
57
+ | 组件 | 最低版本 |
58
+ |-------------|----------|
59
+ | Python | 3.11 |
60
+ | psutil | 5.9 |
61
+ | Docker | 20.10 |
62
+ | ase | 3.23.0 |
63
+ | deepmd-kit | 3.0.1 |
64
+ | torch | 2.5.0 |
65
+ | dpdispatcher| 0.6.7 |
66
+ | numpy | 1.26.4 |
67
+ | paramiko | 3.5.1 |
68
+ | pyxtal | 1.0.4 |
69
+ | phonopy | 2.28.0 |
70
+ | rdkit | 2023.03.3|
71
+
72
+ ### 安装步骤
73
+ ```bash
74
+ # 创建虚拟环境
75
+ python -m venv venv
76
+ source venv/bin/activate # Linux/Mac
77
+
78
+ # 安装依赖
79
+ pip install ion-csp
80
+ ```
81
+
82
+ ## 快速入门
83
+ ### 交互模式
84
+ ```bash
85
+ ion-csp
86
+ ```
87
+ 启动交互式命令行界面,支持以下操作:
88
+ - 模块选择
89
+ - 日志查看
90
+ - 进程管理
91
+
92
+ ### 脚本调用
93
+ #### EE模块示例
94
+ ```bash
95
+ ./scripts/main_EE.sh examples/example_1
96
+ ```
97
+ 从SMILES表格生成离子组合
98
+
99
+ #### CSP模块示例
100
+ ```bash
101
+ ./scripts/main_CSP.sh examples/example_2
102
+ ```
103
+ 从离子组合生成并优化晶体结构
104
+
105
+ ## 技术架构
106
+ ```mermaid
107
+ graph TD
108
+ A[用户界面] --> B[任务管理器]
109
+ B --> C[EE模块]
110
+ B --> D[CSP模块]
111
+ B --> E[日志系统]
112
+ B --> F[任务调度]
113
+ C --> G[经验评估引擎]
114
+ D --> H[晶体预测引擎]
115
+ E --> I[结构化日志]
116
+ F --> J[进程终止]
117
+ ```
118
+
119
+ ## 贡献指南
120
+ 1. Fork仓库并创建特性分支
121
+ 2. 编写单元测试覆盖新功能
122
+ 3. 提交Pull Request时注明关联Issue
123
+ 4. 遵循PEP8代码规范
124
+
125
+ ## 许可证
126
+ 本项目采用MIT许可证,详见LICENSE文件。
127
+
128
+ ## 技术支持
129
+ - **文档更新**:2025年5月
130
+ - **最新版本**:v2.0.4
131
+ - **问题追踪**:https://github.com/bagabaga007/ion_CSP/issues
132
+
133
+ ---
134
+
135
+ # Crystal Structure Design Software V2.0
136
+
137
+ ## Project Overview
138
+ This software enables efficient crystal structure screening from molecular/ion configurations by integrating empirical formulas, tuned machine learning potentials, stepwise first-principles optimization, and molecular/ion recognition techniques. The modular architecture ensures extensibility and maintainability while maintaining prediction accuracy.
139
+
140
+ ## Key Features
141
+ ### Core Functionalities
142
+ - **Dual-Module Workflow**
143
+ - **EE Module**: Empirical evaluation-based ion combination generation
144
+ - **CSP Module**: Ion crystal structure prediction and optimization
145
+ - **Intelligent Task Management**
146
+ - Real-time process monitoring (PID tracking)
147
+ - Automatic log file symlink creation
148
+ - Safe process termination with resource cleanup
149
+ - **Advanced Logging System**
150
+ - Paginated log viewing (10 entries/page)
151
+ - Module-based filtering (CSP/EE)
152
+ - Symlink resolution for actual log paths
153
+
154
+ ### Technical Specifications
155
+ - Cross-platform support (Linux/Docker)
156
+ - Object-oriented architecture with Python 3.11+
157
+ - Integrated process management via psutil
158
+ - Structured logging system
159
+
160
+ ## Installation
161
+ ### Prerequisites
162
+ | Component | Min Version |
163
+ |-------------|-------------|
164
+ | Python | 3.11 |
165
+ | psutil | 5.9 |
166
+ | Docker | 20.10 |
167
+ | ase | 3.23.0 |
168
+ | deepmd-kit | 3.0.1 |
169
+ | torch | 2.5.0 |
170
+ | dpdispatcher| 0.6.7 |
171
+ | numpy | 1.26.4 |
172
+ | paramiko | 3.5.1 |
173
+ | pyxtal | 1.0.4 |
174
+ | phonopy | 2.28.0 |
175
+ | rdkit | 2023.03.3|
176
+
177
+ ### Installation Steps
178
+ ```bash
179
+ # Create virtual environment
180
+ python -m venv venv
181
+ source venv/bin/activate # Linux/Mac
182
+
183
+ # Install dependencies
184
+ pip install ion-csp
185
+ ```
186
+
187
+ ## Quick Start
188
+ ### Interactive Mode
189
+ ```bash
190
+ ion-csp
191
+ ```
192
+ Launches CLI interface with:
193
+ - Module selection
194
+ - Log management
195
+ - Process control
196
+
197
+ ### Script Execution
198
+ #### EE Module Example
199
+ ```bash
200
+ ./scripts/main_EE.sh examples/example_1
201
+ ```
202
+ Generates ion combinations from SMILES tables
203
+
204
+ #### CSP Module Example
205
+ ```bash
206
+ ./scripts/main_CSP.sh examples/example_2
207
+ ```
208
+ Optimizes crystal structures from ion combinations
209
+
210
+ ## Technical Architecture
211
+ ```mermaid
212
+ graph TD
213
+ A[User Interface] --> B[Task Manager]
214
+ B --> C[EE Module]
215
+ B --> D[CSP Module]
216
+ B --> E[Log System]
217
+ B --> F[Task Scheduler]
218
+ C --> G[Empirical Evaluation Engine]
219
+ D --> H[Crystal Prediction Engine]
220
+ E --> I[Structured Logs]
221
+ F --> J[Process Termination]
222
+ ```
223
+
224
+ ## Contribution Guide
225
+ 1. Fork repository and create feature branch
226
+ 2. Write unit tests for new features
227
+ 3. Submit PR with issue reference
228
+ 4. Follow PEP8 coding standards
229
+
230
+ ## License
231
+ MIT License, see LICENSE file.
232
+
233
+ ## Support
234
+ - Documentation last updated: May 2025
235
+ - Latest version: v2.0.4
236
+ - Issue tracker: https://github.com/bagabaga007/ion_CSP/issues
@@ -0,0 +1,207 @@
1
+ # Crystal Structure Design Software V2.0
2
+
3
+ ## 项目概述
4
+ 基于分子/离子构型的晶体结构设计软件通过结合经验公式、机器学习势函数微调、第一性原理分步优化和分子/离子识别技术,实现了从分子/离子构型出发的高效晶体结构筛选。该软件采用模块化设计,支持全流程自动化材料筛选,在保证预测精度的同时显著提升计算效率。
5
+
6
+ ## 功能特性
7
+ ### 核心功能
8
+ - **双模块工作流**
9
+ - **EE模块**:基于经验评估的离子组合生成
10
+ - **CSP模块**:基于离子晶体结构预测的优化筛选
11
+ - **智能任务管理**
12
+ - 实时进程监控(PID跟踪)
13
+ - 日志文件自动符号链接
14
+ - 进程安全终止与资源清理
15
+ - **高级日志系统**
16
+ - 分页浏览(10条/页)
17
+ - 模块过滤(CSP/EE)
18
+ - 软链接解析显示实际路径
19
+
20
+ ### 技术特性
21
+ - 跨平台支持(Linux/Docker)
22
+ - 基于Python 3.11+的面向对象架构
23
+ - 集成psutil进程管理
24
+ - 结构化日志记录系统
25
+
26
+ ## 安装指南
27
+ ### 环境要求
28
+ | 组件 | 最低版本 |
29
+ |-------------|----------|
30
+ | Python | 3.11 |
31
+ | psutil | 5.9 |
32
+ | Docker | 20.10 |
33
+ | ase | 3.23.0 |
34
+ | deepmd-kit | 3.0.1 |
35
+ | torch | 2.5.0 |
36
+ | dpdispatcher| 0.6.7 |
37
+ | numpy | 1.26.4 |
38
+ | paramiko | 3.5.1 |
39
+ | pyxtal | 1.0.4 |
40
+ | phonopy | 2.28.0 |
41
+ | rdkit | 2023.03.3|
42
+
43
+ ### 安装步骤
44
+ ```bash
45
+ # 创建虚拟环境
46
+ python -m venv venv
47
+ source venv/bin/activate # Linux/Mac
48
+
49
+ # 安装依赖
50
+ pip install ion-csp
51
+ ```
52
+
53
+ ## 快速入门
54
+ ### 交互模式
55
+ ```bash
56
+ ion-csp
57
+ ```
58
+ 启动交互式命令行界面,支持以下操作:
59
+ - 模块选择
60
+ - 日志查看
61
+ - 进程管理
62
+
63
+ ### 脚本调用
64
+ #### EE模块示例
65
+ ```bash
66
+ ./scripts/main_EE.sh examples/example_1
67
+ ```
68
+ 从SMILES表格生成离子组合
69
+
70
+ #### CSP模块示例
71
+ ```bash
72
+ ./scripts/main_CSP.sh examples/example_2
73
+ ```
74
+ 从离子组合生成并优化晶体结构
75
+
76
+ ## 技术架构
77
+ ```mermaid
78
+ graph TD
79
+ A[用户界面] --> B[任务管理器]
80
+ B --> C[EE模块]
81
+ B --> D[CSP模块]
82
+ B --> E[日志系统]
83
+ B --> F[任务调度]
84
+ C --> G[经验评估引擎]
85
+ D --> H[晶体预测引擎]
86
+ E --> I[结构化日志]
87
+ F --> J[进程终止]
88
+ ```
89
+
90
+ ## 贡献指南
91
+ 1. Fork仓库并创建特性分支
92
+ 2. 编写单元测试覆盖新功能
93
+ 3. 提交Pull Request时注明关联Issue
94
+ 4. 遵循PEP8代码规范
95
+
96
+ ## 许可证
97
+ 本项目采用MIT许可证,详见LICENSE文件。
98
+
99
+ ## 技术支持
100
+ - **文档更新**:2025年5月
101
+ - **最新版本**:v2.0.4
102
+ - **问题追踪**:https://github.com/bagabaga007/ion_CSP/issues
103
+
104
+ ---
105
+
106
+ # Crystal Structure Design Software V2.0
107
+
108
+ ## Project Overview
109
+ This software enables efficient crystal structure screening from molecular/ion configurations by integrating empirical formulas, tuned machine learning potentials, stepwise first-principles optimization, and molecular/ion recognition techniques. The modular architecture ensures extensibility and maintainability while maintaining prediction accuracy.
110
+
111
+ ## Key Features
112
+ ### Core Functionalities
113
+ - **Dual-Module Workflow**
114
+ - **EE Module**: Empirical evaluation-based ion combination generation
115
+ - **CSP Module**: Ion crystal structure prediction and optimization
116
+ - **Intelligent Task Management**
117
+ - Real-time process monitoring (PID tracking)
118
+ - Automatic log file symlink creation
119
+ - Safe process termination with resource cleanup
120
+ - **Advanced Logging System**
121
+ - Paginated log viewing (10 entries/page)
122
+ - Module-based filtering (CSP/EE)
123
+ - Symlink resolution for actual log paths
124
+
125
+ ### Technical Specifications
126
+ - Cross-platform support (Linux/Docker)
127
+ - Object-oriented architecture with Python 3.11+
128
+ - Integrated process management via psutil
129
+ - Structured logging system
130
+
131
+ ## Installation
132
+ ### Prerequisites
133
+ | Component | Min Version |
134
+ |-------------|-------------|
135
+ | Python | 3.11 |
136
+ | psutil | 5.9 |
137
+ | Docker | 20.10 |
138
+ | ase | 3.23.0 |
139
+ | deepmd-kit | 3.0.1 |
140
+ | torch | 2.5.0 |
141
+ | dpdispatcher| 0.6.7 |
142
+ | numpy | 1.26.4 |
143
+ | paramiko | 3.5.1 |
144
+ | pyxtal | 1.0.4 |
145
+ | phonopy | 2.28.0 |
146
+ | rdkit | 2023.03.3|
147
+
148
+ ### Installation Steps
149
+ ```bash
150
+ # Create virtual environment
151
+ python -m venv venv
152
+ source venv/bin/activate # Linux/Mac
153
+
154
+ # Install dependencies
155
+ pip install ion-csp
156
+ ```
157
+
158
+ ## Quick Start
159
+ ### Interactive Mode
160
+ ```bash
161
+ ion-csp
162
+ ```
163
+ Launches CLI interface with:
164
+ - Module selection
165
+ - Log management
166
+ - Process control
167
+
168
+ ### Script Execution
169
+ #### EE Module Example
170
+ ```bash
171
+ ./scripts/main_EE.sh examples/example_1
172
+ ```
173
+ Generates ion combinations from SMILES tables
174
+
175
+ #### CSP Module Example
176
+ ```bash
177
+ ./scripts/main_CSP.sh examples/example_2
178
+ ```
179
+ Optimizes crystal structures from ion combinations
180
+
181
+ ## Technical Architecture
182
+ ```mermaid
183
+ graph TD
184
+ A[User Interface] --> B[Task Manager]
185
+ B --> C[EE Module]
186
+ B --> D[CSP Module]
187
+ B --> E[Log System]
188
+ B --> F[Task Scheduler]
189
+ C --> G[Empirical Evaluation Engine]
190
+ D --> H[Crystal Prediction Engine]
191
+ E --> I[Structured Logs]
192
+ F --> J[Process Termination]
193
+ ```
194
+
195
+ ## Contribution Guide
196
+ 1. Fork repository and create feature branch
197
+ 2. Write unit tests for new features
198
+ 3. Submit PR with issue reference
199
+ 4. Follow PEP8 coding standards
200
+
201
+ ## License
202
+ MIT License, see LICENSE file.
203
+
204
+ ## Support
205
+ - Documentation last updated: May 2025
206
+ - Latest version: v2.0.4
207
+ - Issue tracker: https://github.com/bagabaga007/ion_CSP/issues
@@ -0,0 +1,21 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ Use this section to tell people about which versions of your project are
6
+ currently being supported with security updates.
7
+
8
+ | Version | Supported |
9
+ | ------- | ------------------ |
10
+ | 5.1.x | :white_check_mark: |
11
+ | 5.0.x | :x: |
12
+ | 4.0.x | :white_check_mark: |
13
+ | < 4.0 | :x: |
14
+
15
+ ## Reporting a Vulnerability
16
+
17
+ Use this section to tell people how to report a vulnerability.
18
+
19
+ Tell them where to go, how often they can expect to get an update on a
20
+ reported vulnerability, what to expect if the vulnerability is accepted or
21
+ declined, etc.
@@ -0,0 +1,20 @@
1
+ name: ion-csp-env
2
+ channels:
3
+ - conda-forge
4
+ - defaults
5
+ dependencies:
6
+ - python=3.11
7
+ - pip
8
+ - setuptools
9
+ - wheel
10
+ - setuptools-scm
11
+ - ase=3.23.0
12
+ - numpy=1.26.4
13
+ - paramiko=3.5.1
14
+ - pyxtal=1.0.4
15
+ - phonopy=2.28.0
16
+ - rdkit=2023.03.3
17
+ - pip:
18
+ - torch==2.5.0
19
+ - deepmd-kit==3.0.1
20
+ - dpdispatcher==0.6.7
@@ -0,0 +1,4 @@
1
+ from ion_CSP.task_manager import main
2
+
3
+ if __name__ == "__main__":
4
+ main()
@@ -4,7 +4,7 @@ PREC = Accurate
4
4
  ENCUT = 600 # 800
5
5
  EDIFF = 1e-4 # 1e-6
6
6
  IBRION = 2
7
- ISIF = 3
7
+ ISIF = 8
8
8
  NSW = 300 # 200
9
9
  ISMEAR = 0 ; SIGMA = 0.05
10
10
  POTIM = 0.05
@@ -16,4 +16,4 @@ LWAVE = FALSE
16
16
  #Finer optimization
17
17
  EDIFFG = -0.05 # 1e-4
18
18
  KSPACING = 0.7 # 0.25
19
- IVDW = 11
19
+ IVDW = 12
@@ -4,7 +4,7 @@ PREC = Accurate
4
4
  ENCUT = 800
5
5
  EDIFF = 1e-6
6
6
  IBRION = 2
7
- ISIF = 3
7
+ ISIF = 8
8
8
  NSW = 300 # 200
9
9
  ISMEAR = 0 ; SIGMA = 0.05
10
10
  POTIM = 0.05
@@ -16,4 +16,4 @@ LWAVE = FALSE
16
16
  #Finer optimization
17
17
  EDIFFG = -0.02
18
18
  KSPACING = 0.5
19
- IVDW = 11
19
+ IVDW = 12