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.
- ion_csp-2.0.4/.github/workflows/build.yml +34 -0
- ion_csp-2.0.4/.github/workflows/python-package-conda.yml +43 -0
- ion_csp-2.0.4/.github/workflows/python-publish.yml +70 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/.gitignore +1 -1
- ion_csp-2.0.4/MANIFEST.in +2 -0
- ion_csp-2.0.4/PKG-INFO +236 -0
- ion_csp-2.0.4/README.md +207 -0
- ion_csp-2.0.4/SECURITY.md +21 -0
- ion_csp-2.0.4/environment.yml +20 -0
- ion_csp-2.0.4/examples/example_usage.py +4 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/param/INCAR_1 +2 -2
- {ion_csp-2.0.2 → ion_csp-2.0.4}/param/INCAR_2 +2 -2
- {ion_csp-2.0.2 → ion_csp-2.0.4}/pyproject.toml +6 -6
- {ion_csp-2.0.2 → ion_csp-2.0.4}/requirements.txt +2 -1
- ion_csp-2.0.4/scripts/main_usage.py +4 -0
- ion_csp-2.0.4/setup.cfg +7 -0
- ion_csp-2.0.4/setup.py +33 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/__init__.py +2 -2
- ion_csp-2.0.4/src/ion_CSP/__main__.py +5 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/gen_opt.py +1 -1
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/identify_molecules.py +3 -3
- ion_csp-2.0.4/src/ion_CSP/task_manager.py +396 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/vasp_processing.py +3 -3
- ion_csp-2.0.4/src/ion_CSP.egg-info/PKG-INFO +236 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP.egg-info/SOURCES.txt +11 -5
- ion_csp-2.0.4/src/ion_CSP.egg-info/entry_points.txt +2 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP.egg-info/requires.txt +2 -1
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/run_convert_SMILES.py +8 -21
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/run_empirical_estimate.py +8 -21
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/run_vasp_processing.py +5 -5
- ion_csp-2.0.4/tests/test1_task_manager1.py +121 -0
- ion_csp-2.0.4/tests/test_task_manager.py +178 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/uv.lock +47 -7
- ion_csp-2.0.2/PKG-INFO +0 -83
- ion_csp-2.0.2/README.md +0 -33
- ion_csp-2.0.2/examples/example_usage.py +0 -6
- ion_csp-2.0.2/scripts/main_usage.py +0 -6
- ion_csp-2.0.2/setup.cfg +0 -32
- ion_csp-2.0.2/setup.py +0 -20
- ion_csp-2.0.2/src/ion_CSP/app.py +0 -201
- ion_csp-2.0.2/src/ion_CSP.egg-info/PKG-INFO +0 -83
- ion_csp-2.0.2/src/ion_CSP.egg-info/entry_points.txt +0 -2
- ion_csp-2.0.2/tests/example.txt +0 -1
- ion_csp-2.0.2/tests/test.py +0 -23
- ion_csp-2.0.2/tests/test_main.py +0 -16
- {ion_csp-2.0.2 → ion_csp-2.0.4}/.dockerignore +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/.vscode/settings.json +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/CHANGELOG.md +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/CODE_OF_CONDUCT.md +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/CONTRIBUTING.md +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/Dockerfile +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/LICENSE +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/docs/example_usage_CSP.py +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/docs/example_usage_EE.py +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/docs/index.md +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/docs/usage.md +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/makefile +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/model/model.pt +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/model/options/README.md +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/model/options/model.ckpt-4000000.pt +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/param/INCAR_0 +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/param/POTCAR_C +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/param/POTCAR_H +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/param/POTCAR_N +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/param/POTCAR_O +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/param/g16_sub.sh +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/param/sub.sh +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/scripts/main_CSP.sh +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/scripts/main_EE.sh +0 -0
- /ion_csp-2.0.2/scripts/main.sh → /ion_csp-2.0.4/scripts/main_usage.sh +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/__init__.py +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/convert_SMILES.py +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/empirical_estimate.py +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/log_and_time.py +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/mlp_opt.py +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/read_mlp_density.py +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/steps_opt_monitor.sh +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP/upload_download.py +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP.egg-info/dependency_links.txt +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/ion_CSP.egg-info/top_level.txt +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/main_CSP.py +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/main_EE.py +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/run_gen_opt.py +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/run_read_mlp_density.py +0 -0
- {ion_csp-2.0.2 → ion_csp-2.0.4}/src/run_upload_download.py +0 -0
- {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/
|
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
|
ion_csp-2.0.4/README.md
ADDED
@@ -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
|
@@ -4,7 +4,7 @@ PREC = Accurate
|
|
4
4
|
ENCUT = 600 # 800
|
5
5
|
EDIFF = 1e-4 # 1e-6
|
6
6
|
IBRION = 2
|
7
|
-
ISIF =
|
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 =
|
19
|
+
IVDW = 12
|
@@ -4,7 +4,7 @@ PREC = Accurate
|
|
4
4
|
ENCUT = 800
|
5
5
|
EDIFF = 1e-6
|
6
6
|
IBRION = 2
|
7
|
-
ISIF =
|
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 =
|
19
|
+
IVDW = 12
|