rsspolymlp 0.4.0__tar.gz → 0.4.2__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.
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/LICENSE +1 -1
- {rsspolymlp-0.4.0/src/rsspolymlp.egg-info → rsspolymlp-0.4.2}/PKG-INFO +42 -41
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/README.md +41 -40
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/pyproject.toml +1 -1
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/analysis/ghost_minima.py +5 -5
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/analysis/phase_analysis.py +1 -1
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/analysis/rss_summarize.py +325 -176
- rsspolymlp-0.4.2/src/rsspolymlp/analysis/struct_matcher/assignment_algo.py +112 -0
- rsspolymlp-0.4.2/src/rsspolymlp/analysis/struct_matcher/gen_struct_rep.py +325 -0
- rsspolymlp-0.4.2/src/rsspolymlp/analysis/struct_matcher/identify_uniqstr.py +193 -0
- rsspolymlp-0.4.0/src/rsspolymlp/analysis/struct_matcher/invert_and_swap.py → rsspolymlp-0.4.2/src/rsspolymlp/analysis/struct_matcher/redrep_lattice.py +84 -0
- rsspolymlp-0.4.2/src/rsspolymlp/analysis/struct_matcher/redrep_position.py +312 -0
- rsspolymlp-0.4.2/src/rsspolymlp/analysis/struct_matcher/struct_match.py +275 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/api/cli_rsspolymlp.py +2 -2
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/api/cli_rsspolymlp_utils.py +26 -19
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/api/rsspolymlp.py +5 -4
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/api/rsspolymlp_utils.py +94 -72
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/rss/eliminate_duplicates.py +210 -198
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/rss/load_logfile.py +4 -1
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/rss/optimization_mlp.py +5 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/rss/random_struct.py +32 -7
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/pymatgen_utils.py +32 -5
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2/src/rsspolymlp.egg-info}/PKG-INFO +42 -41
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp.egg-info/SOURCES.txt +5 -3
- rsspolymlp-0.4.0/src/rsspolymlp/analysis/struct_matcher/reduced_position.py +0 -433
- rsspolymlp-0.4.0/src/rsspolymlp/analysis/struct_matcher/struct_match.py +0 -326
- rsspolymlp-0.4.0/src/rsspolymlp/analysis/unique_struct.py +0 -478
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/setup.cfg +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/__init__.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/analysis/__init__.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/analysis/eos.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/analysis/struct_matcher/__init__.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/analysis/struct_matcher/chiral_spg.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/api/__init__.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/api/cli_rsspolymlp_devkit.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/api/cli_rsspolymlp_plot.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/api/rsspolymlp_devkit.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/api/rsspolymlp_plot.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/common/__init__.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/common/atomic_energy.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/common/composition.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/common/convert_dict.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/common/interface_vasp.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/common/property.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/mlp_dev/dataset/compress_vasprun.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/mlp_dev/dataset/gen_mlp_dataset.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/mlp_dev/dataset/split_dataset.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/mlp_dev/estimate_cost.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/mlp_dev/model_selection/binary/gen_single_model.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/mlp_dev/model_selection/elemental/gen_hybrid_model.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/mlp_dev/model_selection/elemental/gen_single_model.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/mlp_dev/model_selection/n_feature.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/mlp_dev/model_selection/pypolymlp_gridsearch.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/mlp_dev/model_selection/reduce_grid.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/mlp_dev/pareto_opt_mlp.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/mlp_dev/polymlp_dev.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/rss/__init__.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/__init__.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/lammps_utils.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/matplot_util/__init__.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/matplot_util/custom_plt.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/matplot_util/examples/__init__.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/matplot_util/examples/example.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/matplot_util/examples/template.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/matplot_util/make_plot.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/opt_sscha/opt_geometry_sscha.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/opt_sscha/opt_position_sscha.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/opt_sscha/run_opt_sscha.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/opt_sscha/sscha_property.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/spglib_utils.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/vasp_util/__init__.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/vasp_util/api.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/vasp_util/gen_incar.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/vasp_util/gen_script.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp/utils/vasp_util/write_poscar.py +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp.egg-info/dependency_links.txt +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp.egg-info/entry_points.txt +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp.egg-info/requires.txt +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/src/rsspolymlp.egg-info/top_level.txt +0 -0
- {rsspolymlp-0.4.0 → rsspolymlp-0.4.2}/tests/test_cli_help.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: rsspolymlp
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.2
|
|
4
4
|
Summary: A framework for random structure search using polynomial MLPs
|
|
5
5
|
Author-email: Hayato Wakai <wakai@cms.mtl.kyoto-u.ac.jp>
|
|
6
6
|
Maintainer-email: Hayato Wakai <wakai@cms.mtl.kyoto-u.ac.jp>
|
|
@@ -29,29 +29,27 @@ Requires-Dist: matplotlib; extra == "tools"
|
|
|
29
29
|
Requires-Dist: seaborn; extra == "tools"
|
|
30
30
|
Dynamic: license-file
|
|
31
31
|
|
|
32
|
-
#
|
|
32
|
+
# Framework for random structure search using polynomial machine learning potentials
|
|
33
33
|
|
|
34
|
-
##
|
|
34
|
+
## How to use rsspolymlp
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
- [Workflow of RSS with polynomial MLPs](docs/rsspolymlp.md)
|
|
37
|
+
- Initial structure generation
|
|
38
|
+
- Global RSS with polynomial MLPs
|
|
39
|
+
- Unique structure identification and RSS result summarization
|
|
40
|
+
- Phase stability analysis
|
|
41
|
+
- [Development kit for polynomial MLPs](docs/rsspolymlp_dev.md)
|
|
42
|
+
- MLP dataset generation
|
|
43
|
+
- DFT dataset division
|
|
44
|
+
- Polynomial MLP development
|
|
45
|
+
- Pareto-optimal MLP selection
|
|
46
|
+
- Python API
|
|
47
|
+
- [RSS workflow](docs/api_rsspolymlp.md)
|
|
48
|
+
- [VASP calculation utilities](src/rsspolymlp/utils/vasp_util/readme.md)
|
|
49
|
+
- Single-point calculation
|
|
50
|
+
- Local geometry optimization
|
|
51
|
+
- [Matplotlib utilities](src/rsspolymlp/utils/matplot_util/readme.md)
|
|
37
52
|
|
|
38
|
-
“Systematic global structure search of bismuth-based binary systems under pressure using machine learning potentials”, [Phys. Rev. Materials 10, 093801 (2026)](https://doi.org/10.1103/k9sg-v7hl)
|
|
39
|
-
```
|
|
40
|
-
@article{Phys.Rev.Mater.10.093801,
|
|
41
|
-
title = {Systematic global structure search of bismuth-based binary systems under pressure using machine learning potentials},
|
|
42
|
-
author = {Wakai, Hayato and Ishiwata, Shintaro and Seko, Atsuto},
|
|
43
|
-
journal = {Phys. Rev. Mater.},
|
|
44
|
-
volume = {10},
|
|
45
|
-
issue = {9},
|
|
46
|
-
pages = {093801},
|
|
47
|
-
numpages = {28},
|
|
48
|
-
year = {2026},
|
|
49
|
-
month = {Sep},
|
|
50
|
-
publisher = {American Physical Society},
|
|
51
|
-
doi = {10.1103/k9sg-v7hl},
|
|
52
|
-
url = {https://link.aps.org/doi/10.1103/k9sg-v7hl}
|
|
53
|
-
}
|
|
54
|
-
```
|
|
55
53
|
|
|
56
54
|
## Installation
|
|
57
55
|
|
|
@@ -65,8 +63,8 @@ If you use `rsspolymlp` in your study, please cite the following articles.
|
|
|
65
63
|
- symfc
|
|
66
64
|
|
|
67
65
|
[Optional]
|
|
68
|
-
- matplotlib
|
|
69
|
-
-
|
|
66
|
+
- matplotlib, seaborn
|
|
67
|
+
- pymatgen
|
|
70
68
|
|
|
71
69
|
### How to install
|
|
72
70
|
- Install from conda-forge
|
|
@@ -89,22 +87,25 @@ conda install -c conda-forge scikit-learn joblib pypolymlp spglib symfc
|
|
|
89
87
|
pip install rsspolymlp
|
|
90
88
|
```
|
|
91
89
|
|
|
92
|
-
## How to use rsspolymlp
|
|
93
90
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
91
|
+
## Citation of rsspolymlp
|
|
92
|
+
|
|
93
|
+
If you use `rsspolymlp` in your study, please cite the following articles.
|
|
94
|
+
|
|
95
|
+
“Systematic global structure search of bismuth-based binary systems under pressure using machine learning potentials”, [Phys. Rev. Materials 10, 093801 (2026)](https://doi.org/10.1103/k9sg-v7hl)
|
|
96
|
+
```
|
|
97
|
+
@article{Phys.Rev.Mater.10.093801,
|
|
98
|
+
title = {Systematic global structure search of bismuth-based binary systems under pressure using machine learning potentials},
|
|
99
|
+
author = {Wakai, Hayato and Ishiwata, Shintaro and Seko, Atsuto},
|
|
100
|
+
journal = {Phys. Rev. Mater.},
|
|
101
|
+
volume = {10},
|
|
102
|
+
issue = {9},
|
|
103
|
+
pages = {093801},
|
|
104
|
+
numpages = {28},
|
|
105
|
+
year = {2026},
|
|
106
|
+
month = {Sep},
|
|
107
|
+
publisher = {American Physical Society},
|
|
108
|
+
doi = {10.1103/k9sg-v7hl},
|
|
109
|
+
url = {https://link.aps.org/doi/10.1103/k9sg-v7hl}
|
|
110
|
+
}
|
|
111
|
+
```
|
|
@@ -1,26 +1,24 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Framework for random structure search using polynomial machine learning potentials
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## How to use rsspolymlp
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
- [Workflow of RSS with polynomial MLPs](docs/rsspolymlp.md)
|
|
6
|
+
- Initial structure generation
|
|
7
|
+
- Global RSS with polynomial MLPs
|
|
8
|
+
- Unique structure identification and RSS result summarization
|
|
9
|
+
- Phase stability analysis
|
|
10
|
+
- [Development kit for polynomial MLPs](docs/rsspolymlp_dev.md)
|
|
11
|
+
- MLP dataset generation
|
|
12
|
+
- DFT dataset division
|
|
13
|
+
- Polynomial MLP development
|
|
14
|
+
- Pareto-optimal MLP selection
|
|
15
|
+
- Python API
|
|
16
|
+
- [RSS workflow](docs/api_rsspolymlp.md)
|
|
17
|
+
- [VASP calculation utilities](src/rsspolymlp/utils/vasp_util/readme.md)
|
|
18
|
+
- Single-point calculation
|
|
19
|
+
- Local geometry optimization
|
|
20
|
+
- [Matplotlib utilities](src/rsspolymlp/utils/matplot_util/readme.md)
|
|
6
21
|
|
|
7
|
-
“Systematic global structure search of bismuth-based binary systems under pressure using machine learning potentials”, [Phys. Rev. Materials 10, 093801 (2026)](https://doi.org/10.1103/k9sg-v7hl)
|
|
8
|
-
```
|
|
9
|
-
@article{Phys.Rev.Mater.10.093801,
|
|
10
|
-
title = {Systematic global structure search of bismuth-based binary systems under pressure using machine learning potentials},
|
|
11
|
-
author = {Wakai, Hayato and Ishiwata, Shintaro and Seko, Atsuto},
|
|
12
|
-
journal = {Phys. Rev. Mater.},
|
|
13
|
-
volume = {10},
|
|
14
|
-
issue = {9},
|
|
15
|
-
pages = {093801},
|
|
16
|
-
numpages = {28},
|
|
17
|
-
year = {2026},
|
|
18
|
-
month = {Sep},
|
|
19
|
-
publisher = {American Physical Society},
|
|
20
|
-
doi = {10.1103/k9sg-v7hl},
|
|
21
|
-
url = {https://link.aps.org/doi/10.1103/k9sg-v7hl}
|
|
22
|
-
}
|
|
23
|
-
```
|
|
24
22
|
|
|
25
23
|
## Installation
|
|
26
24
|
|
|
@@ -34,8 +32,8 @@ If you use `rsspolymlp` in your study, please cite the following articles.
|
|
|
34
32
|
- symfc
|
|
35
33
|
|
|
36
34
|
[Optional]
|
|
37
|
-
- matplotlib
|
|
38
|
-
-
|
|
35
|
+
- matplotlib, seaborn
|
|
36
|
+
- pymatgen
|
|
39
37
|
|
|
40
38
|
### How to install
|
|
41
39
|
- Install from conda-forge
|
|
@@ -58,22 +56,25 @@ conda install -c conda-forge scikit-learn joblib pypolymlp spglib symfc
|
|
|
58
56
|
pip install rsspolymlp
|
|
59
57
|
```
|
|
60
58
|
|
|
61
|
-
## How to use rsspolymlp
|
|
62
59
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
60
|
+
## Citation of rsspolymlp
|
|
61
|
+
|
|
62
|
+
If you use `rsspolymlp` in your study, please cite the following articles.
|
|
63
|
+
|
|
64
|
+
“Systematic global structure search of bismuth-based binary systems under pressure using machine learning potentials”, [Phys. Rev. Materials 10, 093801 (2026)](https://doi.org/10.1103/k9sg-v7hl)
|
|
65
|
+
```
|
|
66
|
+
@article{Phys.Rev.Mater.10.093801,
|
|
67
|
+
title = {Systematic global structure search of bismuth-based binary systems under pressure using machine learning potentials},
|
|
68
|
+
author = {Wakai, Hayato and Ishiwata, Shintaro and Seko, Atsuto},
|
|
69
|
+
journal = {Phys. Rev. Mater.},
|
|
70
|
+
volume = {10},
|
|
71
|
+
issue = {9},
|
|
72
|
+
pages = {093801},
|
|
73
|
+
numpages = {28},
|
|
74
|
+
year = {2026},
|
|
75
|
+
month = {Sep},
|
|
76
|
+
publisher = {American Physical Society},
|
|
77
|
+
doi = {10.1103/k9sg-v7hl},
|
|
78
|
+
url = {https://link.aps.org/doi/10.1103/k9sg-v7hl}
|
|
79
|
+
}
|
|
80
|
+
```
|
|
@@ -117,7 +117,7 @@ def get_ghost_minima_dists(dir_path):
|
|
|
117
117
|
|
|
118
118
|
def ghost_minima_candidates(result_paths):
|
|
119
119
|
# Prepare output directory: remove existing files if already exists
|
|
120
|
-
out_dir = "ghost_minima/
|
|
120
|
+
out_dir = "ghost_minima/ghost_minima_cands"
|
|
121
121
|
os.makedirs(out_dir, exist_ok=True)
|
|
122
122
|
for filename in os.listdir(out_dir):
|
|
123
123
|
if "POSCAR" in filename:
|
|
@@ -135,14 +135,14 @@ def ghost_minima_candidates(result_paths):
|
|
|
135
135
|
logname = os.path.basename(res_path).split(".json")[0]
|
|
136
136
|
for res in rss_results:
|
|
137
137
|
if res.get("is_ghost_minima"):
|
|
138
|
-
dest = f"ghost_minima/
|
|
138
|
+
dest = f"ghost_minima/ghost_minima_cands/POSCAR_{logname}_No{res['struct_tag']}"
|
|
139
139
|
shutil.copy(res["struct_path"], dest)
|
|
140
140
|
_res = res
|
|
141
141
|
_res.pop("structure", None)
|
|
142
|
-
_res["ghost_minima_poscar"] = f"POSCAR_{logname}_No{res['
|
|
142
|
+
_res["ghost_minima_poscar"] = f"POSCAR_{logname}_No{res['struct_tag']}"
|
|
143
143
|
ghost_minima_all.append(_res)
|
|
144
144
|
|
|
145
|
-
with open("ghost_minima/
|
|
145
|
+
with open("ghost_minima/ghost_minima_cands.dat", "w") as f:
|
|
146
146
|
for res in ghost_minima_all:
|
|
147
147
|
print(res, file=f)
|
|
148
148
|
print(f"Detected {len(ghost_minima_all)} potential ghost_minima")
|
|
@@ -151,7 +151,7 @@ def ghost_minima_candidates(result_paths):
|
|
|
151
151
|
def detect_actual_ghost_minima(dft_path):
|
|
152
152
|
# Load ghost_minima candidates
|
|
153
153
|
ghost_minima_all = []
|
|
154
|
-
with open("ghost_minima/
|
|
154
|
+
with open("ghost_minima/ghost_minima_cands.dat") as f:
|
|
155
155
|
for line in f:
|
|
156
156
|
ghost_minima_all.append(ast.literal_eval(line.strip()))
|
|
157
157
|
|
|
@@ -293,7 +293,7 @@ class ConvexHullAnalyzer:
|
|
|
293
293
|
[r["is_ghost_minima"] for r in rss_results]
|
|
294
294
|
),
|
|
295
295
|
"struct_tag": np.array(
|
|
296
|
-
[f"POSCAR_{logname}_No{r['
|
|
296
|
+
[f"POSCAR_{logname}_No{r['struct_tag']}" for r in rss_results]
|
|
297
297
|
),
|
|
298
298
|
}
|
|
299
299
|
|