CrystOD 0.3.6__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.
- crystod-0.3.6/CrystOD.egg-info/PKG-INFO +191 -0
- crystod-0.3.6/CrystOD.egg-info/SOURCES.txt +79 -0
- crystod-0.3.6/CrystOD.egg-info/dependency_links.txt +1 -0
- crystod-0.3.6/CrystOD.egg-info/entry_points.txt +8 -0
- crystod-0.3.6/CrystOD.egg-info/requires.txt +18 -0
- crystod-0.3.6/CrystOD.egg-info/top_level.txt +1 -0
- crystod-0.3.6/LICENSE +30 -0
- crystod-0.3.6/PKG-INFO +191 -0
- crystod-0.3.6/README.md +151 -0
- crystod-0.3.6/crystod/CIR_data.txt.gz +0 -0
- crystod-0.3.6/crystod/__init__.py +98 -0
- crystod-0.3.6/crystod/__main__.py +5 -0
- crystod-0.3.6/crystod/_api.py +69 -0
- crystod-0.3.6/crystod/atomic_levels.py +134 -0
- crystod-0.3.6/crystod/band_pyscf.py +446 -0
- crystod-0.3.6/crystod/basis_function.py +1105 -0
- crystod-0.3.6/crystod/brillouin_zone.py +436 -0
- crystod-0.3.6/crystod/bz.py +32 -0
- crystod-0.3.6/crystod/bz_supercell.py +259 -0
- crystod-0.3.6/crystod/cli/__init__.py +21 -0
- crystod-0.3.6/crystod/cli/bz.py +192 -0
- crystod-0.3.6/crystod/cli/common.py +87 -0
- crystod-0.3.6/crystod/cli/group.py +566 -0
- crystod-0.3.6/crystod/cli/mag.py +128 -0
- crystod-0.3.6/crystod/cli/main.py +971 -0
- crystod-0.3.6/crystod/cli/md.py +202 -0
- crystod-0.3.6/crystod/cli/mol.py +290 -0
- crystod-0.3.6/crystod/cli/phonon.py +499 -0
- crystod-0.3.6/crystod/coset.py +252 -0
- crystod-0.3.6/crystod/crystal_orbital_diagram.py +1704 -0
- crystod-0.3.6/crystod/crystal_orbital_pyscf.py +2166 -0
- crystod-0.3.6/crystod/crystal_orbital_spgrep.py +1123 -0
- crystod-0.3.6/crystod/decompose_irrep.py +124 -0
- crystod-0.3.6/crystod/direct_product.py +180 -0
- crystod-0.3.6/crystod/dirpro_line_names.py +199 -0
- crystod-0.3.6/crystod/dos_pyscf.py +334 -0
- crystod-0.3.6/crystod/generate_basis_function.py +135 -0
- crystod-0.3.6/crystod/group.py +69 -0
- crystod-0.3.6/crystod/irreptables_compat.py +183 -0
- crystod-0.3.6/crystod/isoir.py +823 -0
- crystod-0.3.6/crystod/isotropy_subgroup.py +1237 -0
- crystod-0.3.6/crystod/ligand_field.py +136 -0
- crystod-0.3.6/crystod/mag.py +24 -0
- crystod-0.3.6/crystod/md.py +25 -0
- crystod-0.3.6/crystod/md_summary.py +111 -0
- crystod-0.3.6/crystod/mo_diagram.py +2067 -0
- crystod-0.3.6/crystod/mo_diagram_fragment.py +702 -0
- crystod-0.3.6/crystod/mo_diagram_pyscf.py +1111 -0
- crystod-0.3.6/crystod/modulation.py +1516 -0
- crystod-0.3.6/crystod/mol.py +40 -0
- crystod-0.3.6/crystod/molecular_salc.py +642 -0
- crystod-0.3.6/crystod/multiplet.py +562 -0
- crystod-0.3.6/crystod/multiplet_energy.py +1017 -0
- crystod-0.3.6/crystod/multiplet_visualize.py +709 -0
- crystod-0.3.6/crystod/operations.py +310 -0
- crystod-0.3.6/crystod/orbital_hybridization_spgrep.py +786 -0
- crystod-0.3.6/crystod/phonon.py +54 -0
- crystod-0.3.6/crystod/phonon_fatband.py +400 -0
- crystod-0.3.6/crystod/phonon_irreps.py +418 -0
- crystod-0.3.6/crystod/phonon_lt.py +209 -0
- crystod-0.3.6/crystod/phonon_subgroups.py +868 -0
- crystod-0.3.6/crystod/phonon_vector.py +1045 -0
- crystod-0.3.6/crystod/point_charge_field.py +319 -0
- crystod-0.3.6/crystod/poscar2cif.py +389 -0
- crystod-0.3.6/crystod/runtime_compat.py +161 -0
- crystod-0.3.6/crystod/salc.py +41 -0
- crystod-0.3.6/crystod/show_kpoints.py +105 -0
- crystod-0.3.6/crystod/spacegroup_product.py +882 -0
- crystod-0.3.6/crystod/spglib_compat.py +28 -0
- crystod-0.3.6/crystod/spin_basis.py +751 -0
- crystod-0.3.6/crystod/star_of_k.py +198 -0
- crystod-0.3.6/crystod/symmetry_mode.py +1067 -0
- crystod-0.3.6/crystod/vesta_element_rgb.json +127 -0
- crystod-0.3.6/crystod/vibration_modes.py +645 -0
- crystod-0.3.6/crystod/vibration_viewer.py +147 -0
- crystod-0.3.6/crystod/visualize_basis.py +1439 -0
- crystod-0.3.6/crystod/visualize_eht.py +447 -0
- crystod-0.3.6/crystod/visualize_pyscf.py +507 -0
- crystod-0.3.6/crystod/xdatcar_adp.py +537 -0
- crystod-0.3.6/pyproject.toml +79 -0
- crystod-0.3.6/setup.cfg +4 -0
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: CrystOD
|
|
3
|
+
Version: 0.3.6
|
|
4
|
+
Summary: Symmetry analysis toolkit for crystal orbital diagrams (SALC), space-group irreps, phonon irreps and modulations.
|
|
5
|
+
Author: Yasuhide Mochizuki, Hiroki Koiso
|
|
6
|
+
Maintainer-email: Yasuhide Mochizuki <mochizuki@rs.tus.ac.jp>
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
Project-URL: Homepage, https://mochizuki-tus.github.io/CrystOD/
|
|
9
|
+
Project-URL: Documentation, https://mochizuki-tus.github.io/CrystOD/
|
|
10
|
+
Project-URL: Repository, https://github.com/ahntaeyoung1212/CrystOD
|
|
11
|
+
Project-URL: Issues, https://github.com/ahntaeyoung1212/CrystOD/issues
|
|
12
|
+
Keywords: crystallography,space group,irreducible representation,phonon,SALC,crystal orbital,symmetry
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Requires-Python: >=3.9
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
Requires-Dist: phonopy
|
|
23
|
+
Requires-Dist: spglib
|
|
24
|
+
Requires-Dist: spgrep
|
|
25
|
+
Requires-Dist: ase
|
|
26
|
+
Requires-Dist: numpy
|
|
27
|
+
Requires-Dist: scipy
|
|
28
|
+
Requires-Dist: sympy
|
|
29
|
+
Requires-Dist: pandas
|
|
30
|
+
Requires-Dist: matplotlib
|
|
31
|
+
Requires-Dist: seekpath
|
|
32
|
+
Requires-Dist: pymatgen
|
|
33
|
+
Requires-Dist: pyscf
|
|
34
|
+
Provides-Extra: doc
|
|
35
|
+
Requires-Dist: sphinx; extra == "doc"
|
|
36
|
+
Requires-Dist: myst-parser; extra == "doc"
|
|
37
|
+
Requires-Dist: sphinx-book-theme; extra == "doc"
|
|
38
|
+
Requires-Dist: sphinx-copybutton; extra == "doc"
|
|
39
|
+
Dynamic: license-file
|
|
40
|
+
|
|
41
|
+
# CrystOD
|
|
42
|
+
|
|
43
|
+
**Cryst**al **O**rbital **D**iagram — a Python package and command-line toolset for the
|
|
44
|
+
symmetry analysis of crystals and molecules: crystal-orbital and SALC irreducible
|
|
45
|
+
representations, space-group irrep direct products, isotropy subgroups, phonon irreps,
|
|
46
|
+
symmetry-adapted phonon modulations, molecular point groups and MO diagrams.
|
|
47
|
+
|
|
48
|
+
**Documentation: <https://mochizuki-tus.github.io/CrystOD/>**
|
|
49
|
+
|
|
50
|
+
Every irrep label follows one convention throughout — the ISO-IR (ISOTROPY, Miller–Love)
|
|
51
|
+
tables, which ship inside the package — at the special k points and equally on symmetry
|
|
52
|
+
lines, planes and general points.
|
|
53
|
+
|
|
54
|
+
## The seven commands
|
|
55
|
+
|
|
56
|
+
| command | what it gives you |
|
|
57
|
+
|---|---|
|
|
58
|
+
| `crystod` | crystal-orbital / SALC irreps from atomic orbitals, orbital hybridization, crystal-orbital diagrams (extended Hückel or PySCF), band structure, DOS, 3D SALC viewers |
|
|
59
|
+
| `crystod-group` | direct products of point- and space-group irreps, reducible-representation decomposition, ligand-field splitting, polynomial basis functions, coset decompositions, isotropy subgroups, multi-electron terms, POSCAR ↔ CIF, symmetry-mode (AMPLIMODES-style) analysis |
|
|
60
|
+
| `crystod-bz` | interactive 3D Brillouin zones, automatic or manual k-paths, supercell (folded) BZs, special k points of any space group |
|
|
61
|
+
| `crystod-phonon` | phonon irrep labeling, element-projected fatbands, longitudinal/transverse bands, eigenvector VESTA export, symmetry-adapted modulations, symmetry-only vibration bases, isotropy subgroups of imaginary modes |
|
|
62
|
+
| `crystod-mag` | symmetry-adapted spin bases (cluster multipoles / SAMM) with ready-to-paste VASP `MAGMOM` or Quantum ESPRESSO input |
|
|
63
|
+
| `crystod-md` | atomic displacement parameters (ADPs) and time-averaged cells from an MD trajectory |
|
|
64
|
+
| `crystod-mol` | molecular point groups, molecular SALCs, and MO diagrams from symmetry + overlap (or PySCF) |
|
|
65
|
+
|
|
66
|
+
Several of these are offline counterparts of the Bilbao Crystallographic Server and
|
|
67
|
+
ISOTROPY tools (DIRPRO, ISOSUBGROUP, AMPLIMODES) and were cross-validated against them;
|
|
68
|
+
see the documentation for the validation details.
|
|
69
|
+
|
|
70
|
+
## Installation
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pip install crystod
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Requires Python 3.9 or later. The main dependencies (`phonopy`, `spglib`, `spgrep`,
|
|
77
|
+
`ase`, `seekpath`, `pymatgen`, `pyscf`, `numpy`, `scipy`, `sympy`, `pandas`,
|
|
78
|
+
`matplotlib`) are installed automatically.
|
|
79
|
+
|
|
80
|
+
To also get the worked examples and the test suite, clone the repository instead:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
conda create -n crystod python=3.11 && conda activate crystod
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
git clone https://github.com/ahntaeyoung1212/CrystOD.git && cd CrystOD && pip install -e .
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Quick start
|
|
91
|
+
|
|
92
|
+
Irreps of the Sc 3d crystal orbitals of ScF₃ at every special k point:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
crystod -c 221_PPOSCAR_ScF3 --element Sc --orbital d
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Which space groups can the imaginary phonons of cubic SrTiO₃ condense into — and the
|
|
99
|
+
distorted structures themselves:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
crystod-phonon --subgroup -c 221_PPOSCAR_SrTiO3 --dim "4 4 4" --qpoint R --modulate
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Freeze a chosen mode combination into a structure (a unit cell plus `FORCE_SETS` is all
|
|
106
|
+
you need):
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
crystod-phonon --modulation -c 221_PPOSCAR_ScF3 --qpoint 0.5 0.5 0.5 --mode 1 2 3 --amplitude 0.3
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Which subgroup a distortion of a given irrep and order-parameter direction leaves behind:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
crystod-group --parent Pm-3m --irrep R4+
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
An MO diagram of a molecule from symmetry and overlap alone:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
crystod-mol --diagram --xyz XYZ_CH4.xyz
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Every command prints its own examples with `--help`, and the documentation shows the
|
|
125
|
+
output of each one.
|
|
126
|
+
|
|
127
|
+
## Python API
|
|
128
|
+
|
|
129
|
+
Every analysis is also a Python function, grouped into one module per command, so a part
|
|
130
|
+
of CrystOD can be used inside another program:
|
|
131
|
+
|
|
132
|
+
```python
|
|
133
|
+
import crystod
|
|
134
|
+
|
|
135
|
+
subgroups = crystod.group.isotropy_subgroups("Pm-3m", "R4+")
|
|
136
|
+
results = crystod.phonon.scan_imaginary_modes(phonon) # a live phonopy object
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
`crystod.salc`, `crystod.group`, `crystod.phonon`, `crystod.bz`, `crystod.mag`,
|
|
140
|
+
`crystod.md`, `crystod.mol`. Attribute access is lazy, so `import crystod` plus all seven
|
|
141
|
+
domains costs ~0.09 s and pulls in nothing heavier than NumPy — phonopy, spgrep, PySCF
|
|
142
|
+
and matplotlib load only when a function that needs them is called.
|
|
143
|
+
|
|
144
|
+
## Testing
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
python testsuite.py
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Runs the full regression suite (35 sections) against the data in `example/`; a section
|
|
151
|
+
can be run alone with `python testsuite.py 27`.
|
|
152
|
+
|
|
153
|
+
## Data sources and acknowledgements
|
|
154
|
+
|
|
155
|
+
- Irrep tables: **ISO-IR** dataset of the ISOTROPY Software Suite, shipped as
|
|
156
|
+
`crystod/CIR_data.txt.gz` — H. T. Stokes, B. J. Campbell and R. Cordes,
|
|
157
|
+
*Acta Cryst.* **A69**, 388–395 (2013), <https://iso.byu.edu>.
|
|
158
|
+
- Isotropy subgroups validated against **ISOSUBGROUP** — H. T. Stokes, S. van Orden and
|
|
159
|
+
B. J. Campbell, *J. Appl. Cryst.* **49**, 1849–1853 (2016).
|
|
160
|
+
- Symmetry-mode analysis validated against **AMPLIMODES** — D. Orobengoa, C. Capillas,
|
|
161
|
+
M. I. Aroyo and J. M. Perez-Mato, *J. Appl. Cryst.* **42**, 820–833 (2009).
|
|
162
|
+
- Built on phonopy, spglib, spgrep, ASE, seekpath, pymatgen and PySCF.
|
|
163
|
+
|
|
164
|
+
## Contributors
|
|
165
|
+
|
|
166
|
+
- **Yasuhide Mochizuki** — Tokyo University of Science ([mochizuki@rs.tus.ac.jp](mailto:mochizuki@rs.tus.ac.jp))
|
|
167
|
+
- **Hiroki Koiso** — Institute of Science Tokyo
|
|
168
|
+
|
|
169
|
+
## Citation
|
|
170
|
+
|
|
171
|
+
If you use CrystOD in your research, please cite:
|
|
172
|
+
|
|
173
|
+
> H. Koiso, S. Yoshida, T. Nagai, T. Isobe, A. Nakajima, and Y. Mochizuki,
|
|
174
|
+
> "Thermal expansion and phase stability of BF3 (B = Sc, Y, La, Al, Ga, In) from first
|
|
175
|
+
> principles", [Physical Review B **110**, 064104 (2024)](https://doi.org/10.1103/PhysRevB.110.064104).
|
|
176
|
+
|
|
177
|
+
```bibtex
|
|
178
|
+
@article{CrystOD,
|
|
179
|
+
title = {Thermal expansion and phase stability of $B$F$_3$ ($B$ = Sc, Y, La, Al, Ga, In) from first principles},
|
|
180
|
+
author = {Koiso, Hiroki and Yoshida, Suguru and Nagai, Takayuki and Isobe, Toshihiro and Nakajima, Akira and Mochizuki, Yasuhide},
|
|
181
|
+
journal = {Phys. Rev. B},
|
|
182
|
+
volume = {110},
|
|
183
|
+
pages = {064104},
|
|
184
|
+
year = {2024},
|
|
185
|
+
doi = {10.1103/PhysRevB.110.064104},
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## License
|
|
190
|
+
|
|
191
|
+
MIT License — see [LICENSE](LICENSE).
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
CrystOD.egg-info/PKG-INFO
|
|
5
|
+
CrystOD.egg-info/SOURCES.txt
|
|
6
|
+
CrystOD.egg-info/dependency_links.txt
|
|
7
|
+
CrystOD.egg-info/entry_points.txt
|
|
8
|
+
CrystOD.egg-info/requires.txt
|
|
9
|
+
CrystOD.egg-info/top_level.txt
|
|
10
|
+
crystod/CIR_data.txt.gz
|
|
11
|
+
crystod/__init__.py
|
|
12
|
+
crystod/__main__.py
|
|
13
|
+
crystod/_api.py
|
|
14
|
+
crystod/atomic_levels.py
|
|
15
|
+
crystod/band_pyscf.py
|
|
16
|
+
crystod/basis_function.py
|
|
17
|
+
crystod/brillouin_zone.py
|
|
18
|
+
crystod/bz.py
|
|
19
|
+
crystod/bz_supercell.py
|
|
20
|
+
crystod/coset.py
|
|
21
|
+
crystod/crystal_orbital_diagram.py
|
|
22
|
+
crystod/crystal_orbital_pyscf.py
|
|
23
|
+
crystod/crystal_orbital_spgrep.py
|
|
24
|
+
crystod/decompose_irrep.py
|
|
25
|
+
crystod/direct_product.py
|
|
26
|
+
crystod/dirpro_line_names.py
|
|
27
|
+
crystod/dos_pyscf.py
|
|
28
|
+
crystod/generate_basis_function.py
|
|
29
|
+
crystod/group.py
|
|
30
|
+
crystod/irreptables_compat.py
|
|
31
|
+
crystod/isoir.py
|
|
32
|
+
crystod/isotropy_subgroup.py
|
|
33
|
+
crystod/ligand_field.py
|
|
34
|
+
crystod/mag.py
|
|
35
|
+
crystod/md.py
|
|
36
|
+
crystod/md_summary.py
|
|
37
|
+
crystod/mo_diagram.py
|
|
38
|
+
crystod/mo_diagram_fragment.py
|
|
39
|
+
crystod/mo_diagram_pyscf.py
|
|
40
|
+
crystod/modulation.py
|
|
41
|
+
crystod/mol.py
|
|
42
|
+
crystod/molecular_salc.py
|
|
43
|
+
crystod/multiplet.py
|
|
44
|
+
crystod/multiplet_energy.py
|
|
45
|
+
crystod/multiplet_visualize.py
|
|
46
|
+
crystod/operations.py
|
|
47
|
+
crystod/orbital_hybridization_spgrep.py
|
|
48
|
+
crystod/phonon.py
|
|
49
|
+
crystod/phonon_fatband.py
|
|
50
|
+
crystod/phonon_irreps.py
|
|
51
|
+
crystod/phonon_lt.py
|
|
52
|
+
crystod/phonon_subgroups.py
|
|
53
|
+
crystod/phonon_vector.py
|
|
54
|
+
crystod/point_charge_field.py
|
|
55
|
+
crystod/poscar2cif.py
|
|
56
|
+
crystod/runtime_compat.py
|
|
57
|
+
crystod/salc.py
|
|
58
|
+
crystod/show_kpoints.py
|
|
59
|
+
crystod/spacegroup_product.py
|
|
60
|
+
crystod/spglib_compat.py
|
|
61
|
+
crystod/spin_basis.py
|
|
62
|
+
crystod/star_of_k.py
|
|
63
|
+
crystod/symmetry_mode.py
|
|
64
|
+
crystod/vesta_element_rgb.json
|
|
65
|
+
crystod/vibration_modes.py
|
|
66
|
+
crystod/vibration_viewer.py
|
|
67
|
+
crystod/visualize_basis.py
|
|
68
|
+
crystod/visualize_eht.py
|
|
69
|
+
crystod/visualize_pyscf.py
|
|
70
|
+
crystod/xdatcar_adp.py
|
|
71
|
+
crystod/cli/__init__.py
|
|
72
|
+
crystod/cli/bz.py
|
|
73
|
+
crystod/cli/common.py
|
|
74
|
+
crystod/cli/group.py
|
|
75
|
+
crystod/cli/mag.py
|
|
76
|
+
crystod/cli/main.py
|
|
77
|
+
crystod/cli/md.py
|
|
78
|
+
crystod/cli/mol.py
|
|
79
|
+
crystod/cli/phonon.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
[console_scripts]
|
|
2
|
+
crystod = crystod.cli:main
|
|
3
|
+
crystod-bz = crystod.cli.bz:main
|
|
4
|
+
crystod-group = crystod.cli.group:main
|
|
5
|
+
crystod-mag = crystod.cli.mag:main
|
|
6
|
+
crystod-md = crystod.cli.md:main
|
|
7
|
+
crystod-mol = crystod.cli.mol:main
|
|
8
|
+
crystod-phonon = crystod.cli.phonon:main
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
crystod
|
crystod-0.3.6/LICENSE
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-2026 Yasuhide Mochizuki and Hiroki Koiso
|
|
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.
|
|
22
|
+
|
|
23
|
+
----------------------------------------------------------------------
|
|
24
|
+
|
|
25
|
+
Bundled data: crystod/CIR_data.txt.gz contains the ISO-IR tables of the
|
|
26
|
+
ISOTROPY Software Suite (H. T. Stokes, B. J. Campbell and R. Cordes,
|
|
27
|
+
"Tabulated irreducible representations of the crystallographic space
|
|
28
|
+
groups", Acta Cryst. A69, 388-395 (2013); iso.byu.edu/irtables.php).
|
|
29
|
+
Please cite that work when the irreducible-representation tables are used
|
|
30
|
+
in published research.
|
crystod-0.3.6/PKG-INFO
ADDED
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: CrystOD
|
|
3
|
+
Version: 0.3.6
|
|
4
|
+
Summary: Symmetry analysis toolkit for crystal orbital diagrams (SALC), space-group irreps, phonon irreps and modulations.
|
|
5
|
+
Author: Yasuhide Mochizuki, Hiroki Koiso
|
|
6
|
+
Maintainer-email: Yasuhide Mochizuki <mochizuki@rs.tus.ac.jp>
|
|
7
|
+
License-Expression: MIT
|
|
8
|
+
Project-URL: Homepage, https://mochizuki-tus.github.io/CrystOD/
|
|
9
|
+
Project-URL: Documentation, https://mochizuki-tus.github.io/CrystOD/
|
|
10
|
+
Project-URL: Repository, https://github.com/ahntaeyoung1212/CrystOD
|
|
11
|
+
Project-URL: Issues, https://github.com/ahntaeyoung1212/CrystOD/issues
|
|
12
|
+
Keywords: crystallography,space group,irreducible representation,phonon,SALC,crystal orbital,symmetry
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
18
|
+
Classifier: Operating System :: OS Independent
|
|
19
|
+
Requires-Python: >=3.9
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
License-File: LICENSE
|
|
22
|
+
Requires-Dist: phonopy
|
|
23
|
+
Requires-Dist: spglib
|
|
24
|
+
Requires-Dist: spgrep
|
|
25
|
+
Requires-Dist: ase
|
|
26
|
+
Requires-Dist: numpy
|
|
27
|
+
Requires-Dist: scipy
|
|
28
|
+
Requires-Dist: sympy
|
|
29
|
+
Requires-Dist: pandas
|
|
30
|
+
Requires-Dist: matplotlib
|
|
31
|
+
Requires-Dist: seekpath
|
|
32
|
+
Requires-Dist: pymatgen
|
|
33
|
+
Requires-Dist: pyscf
|
|
34
|
+
Provides-Extra: doc
|
|
35
|
+
Requires-Dist: sphinx; extra == "doc"
|
|
36
|
+
Requires-Dist: myst-parser; extra == "doc"
|
|
37
|
+
Requires-Dist: sphinx-book-theme; extra == "doc"
|
|
38
|
+
Requires-Dist: sphinx-copybutton; extra == "doc"
|
|
39
|
+
Dynamic: license-file
|
|
40
|
+
|
|
41
|
+
# CrystOD
|
|
42
|
+
|
|
43
|
+
**Cryst**al **O**rbital **D**iagram — a Python package and command-line toolset for the
|
|
44
|
+
symmetry analysis of crystals and molecules: crystal-orbital and SALC irreducible
|
|
45
|
+
representations, space-group irrep direct products, isotropy subgroups, phonon irreps,
|
|
46
|
+
symmetry-adapted phonon modulations, molecular point groups and MO diagrams.
|
|
47
|
+
|
|
48
|
+
**Documentation: <https://mochizuki-tus.github.io/CrystOD/>**
|
|
49
|
+
|
|
50
|
+
Every irrep label follows one convention throughout — the ISO-IR (ISOTROPY, Miller–Love)
|
|
51
|
+
tables, which ship inside the package — at the special k points and equally on symmetry
|
|
52
|
+
lines, planes and general points.
|
|
53
|
+
|
|
54
|
+
## The seven commands
|
|
55
|
+
|
|
56
|
+
| command | what it gives you |
|
|
57
|
+
|---|---|
|
|
58
|
+
| `crystod` | crystal-orbital / SALC irreps from atomic orbitals, orbital hybridization, crystal-orbital diagrams (extended Hückel or PySCF), band structure, DOS, 3D SALC viewers |
|
|
59
|
+
| `crystod-group` | direct products of point- and space-group irreps, reducible-representation decomposition, ligand-field splitting, polynomial basis functions, coset decompositions, isotropy subgroups, multi-electron terms, POSCAR ↔ CIF, symmetry-mode (AMPLIMODES-style) analysis |
|
|
60
|
+
| `crystod-bz` | interactive 3D Brillouin zones, automatic or manual k-paths, supercell (folded) BZs, special k points of any space group |
|
|
61
|
+
| `crystod-phonon` | phonon irrep labeling, element-projected fatbands, longitudinal/transverse bands, eigenvector VESTA export, symmetry-adapted modulations, symmetry-only vibration bases, isotropy subgroups of imaginary modes |
|
|
62
|
+
| `crystod-mag` | symmetry-adapted spin bases (cluster multipoles / SAMM) with ready-to-paste VASP `MAGMOM` or Quantum ESPRESSO input |
|
|
63
|
+
| `crystod-md` | atomic displacement parameters (ADPs) and time-averaged cells from an MD trajectory |
|
|
64
|
+
| `crystod-mol` | molecular point groups, molecular SALCs, and MO diagrams from symmetry + overlap (or PySCF) |
|
|
65
|
+
|
|
66
|
+
Several of these are offline counterparts of the Bilbao Crystallographic Server and
|
|
67
|
+
ISOTROPY tools (DIRPRO, ISOSUBGROUP, AMPLIMODES) and were cross-validated against them;
|
|
68
|
+
see the documentation for the validation details.
|
|
69
|
+
|
|
70
|
+
## Installation
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
pip install crystod
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Requires Python 3.9 or later. The main dependencies (`phonopy`, `spglib`, `spgrep`,
|
|
77
|
+
`ase`, `seekpath`, `pymatgen`, `pyscf`, `numpy`, `scipy`, `sympy`, `pandas`,
|
|
78
|
+
`matplotlib`) are installed automatically.
|
|
79
|
+
|
|
80
|
+
To also get the worked examples and the test suite, clone the repository instead:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
conda create -n crystod python=3.11 && conda activate crystod
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
git clone https://github.com/ahntaeyoung1212/CrystOD.git && cd CrystOD && pip install -e .
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Quick start
|
|
91
|
+
|
|
92
|
+
Irreps of the Sc 3d crystal orbitals of ScF₃ at every special k point:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
crystod -c 221_PPOSCAR_ScF3 --element Sc --orbital d
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Which space groups can the imaginary phonons of cubic SrTiO₃ condense into — and the
|
|
99
|
+
distorted structures themselves:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
crystod-phonon --subgroup -c 221_PPOSCAR_SrTiO3 --dim "4 4 4" --qpoint R --modulate
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Freeze a chosen mode combination into a structure (a unit cell plus `FORCE_SETS` is all
|
|
106
|
+
you need):
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
crystod-phonon --modulation -c 221_PPOSCAR_ScF3 --qpoint 0.5 0.5 0.5 --mode 1 2 3 --amplitude 0.3
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Which subgroup a distortion of a given irrep and order-parameter direction leaves behind:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
crystod-group --parent Pm-3m --irrep R4+
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
An MO diagram of a molecule from symmetry and overlap alone:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
crystod-mol --diagram --xyz XYZ_CH4.xyz
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Every command prints its own examples with `--help`, and the documentation shows the
|
|
125
|
+
output of each one.
|
|
126
|
+
|
|
127
|
+
## Python API
|
|
128
|
+
|
|
129
|
+
Every analysis is also a Python function, grouped into one module per command, so a part
|
|
130
|
+
of CrystOD can be used inside another program:
|
|
131
|
+
|
|
132
|
+
```python
|
|
133
|
+
import crystod
|
|
134
|
+
|
|
135
|
+
subgroups = crystod.group.isotropy_subgroups("Pm-3m", "R4+")
|
|
136
|
+
results = crystod.phonon.scan_imaginary_modes(phonon) # a live phonopy object
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
`crystod.salc`, `crystod.group`, `crystod.phonon`, `crystod.bz`, `crystod.mag`,
|
|
140
|
+
`crystod.md`, `crystod.mol`. Attribute access is lazy, so `import crystod` plus all seven
|
|
141
|
+
domains costs ~0.09 s and pulls in nothing heavier than NumPy — phonopy, spgrep, PySCF
|
|
142
|
+
and matplotlib load only when a function that needs them is called.
|
|
143
|
+
|
|
144
|
+
## Testing
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
python testsuite.py
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Runs the full regression suite (35 sections) against the data in `example/`; a section
|
|
151
|
+
can be run alone with `python testsuite.py 27`.
|
|
152
|
+
|
|
153
|
+
## Data sources and acknowledgements
|
|
154
|
+
|
|
155
|
+
- Irrep tables: **ISO-IR** dataset of the ISOTROPY Software Suite, shipped as
|
|
156
|
+
`crystod/CIR_data.txt.gz` — H. T. Stokes, B. J. Campbell and R. Cordes,
|
|
157
|
+
*Acta Cryst.* **A69**, 388–395 (2013), <https://iso.byu.edu>.
|
|
158
|
+
- Isotropy subgroups validated against **ISOSUBGROUP** — H. T. Stokes, S. van Orden and
|
|
159
|
+
B. J. Campbell, *J. Appl. Cryst.* **49**, 1849–1853 (2016).
|
|
160
|
+
- Symmetry-mode analysis validated against **AMPLIMODES** — D. Orobengoa, C. Capillas,
|
|
161
|
+
M. I. Aroyo and J. M. Perez-Mato, *J. Appl. Cryst.* **42**, 820–833 (2009).
|
|
162
|
+
- Built on phonopy, spglib, spgrep, ASE, seekpath, pymatgen and PySCF.
|
|
163
|
+
|
|
164
|
+
## Contributors
|
|
165
|
+
|
|
166
|
+
- **Yasuhide Mochizuki** — Tokyo University of Science ([mochizuki@rs.tus.ac.jp](mailto:mochizuki@rs.tus.ac.jp))
|
|
167
|
+
- **Hiroki Koiso** — Institute of Science Tokyo
|
|
168
|
+
|
|
169
|
+
## Citation
|
|
170
|
+
|
|
171
|
+
If you use CrystOD in your research, please cite:
|
|
172
|
+
|
|
173
|
+
> H. Koiso, S. Yoshida, T. Nagai, T. Isobe, A. Nakajima, and Y. Mochizuki,
|
|
174
|
+
> "Thermal expansion and phase stability of BF3 (B = Sc, Y, La, Al, Ga, In) from first
|
|
175
|
+
> principles", [Physical Review B **110**, 064104 (2024)](https://doi.org/10.1103/PhysRevB.110.064104).
|
|
176
|
+
|
|
177
|
+
```bibtex
|
|
178
|
+
@article{CrystOD,
|
|
179
|
+
title = {Thermal expansion and phase stability of $B$F$_3$ ($B$ = Sc, Y, La, Al, Ga, In) from first principles},
|
|
180
|
+
author = {Koiso, Hiroki and Yoshida, Suguru and Nagai, Takayuki and Isobe, Toshihiro and Nakajima, Akira and Mochizuki, Yasuhide},
|
|
181
|
+
journal = {Phys. Rev. B},
|
|
182
|
+
volume = {110},
|
|
183
|
+
pages = {064104},
|
|
184
|
+
year = {2024},
|
|
185
|
+
doi = {10.1103/PhysRevB.110.064104},
|
|
186
|
+
}
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
## License
|
|
190
|
+
|
|
191
|
+
MIT License — see [LICENSE](LICENSE).
|
crystod-0.3.6/README.md
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
# CrystOD
|
|
2
|
+
|
|
3
|
+
**Cryst**al **O**rbital **D**iagram — a Python package and command-line toolset for the
|
|
4
|
+
symmetry analysis of crystals and molecules: crystal-orbital and SALC irreducible
|
|
5
|
+
representations, space-group irrep direct products, isotropy subgroups, phonon irreps,
|
|
6
|
+
symmetry-adapted phonon modulations, molecular point groups and MO diagrams.
|
|
7
|
+
|
|
8
|
+
**Documentation: <https://mochizuki-tus.github.io/CrystOD/>**
|
|
9
|
+
|
|
10
|
+
Every irrep label follows one convention throughout — the ISO-IR (ISOTROPY, Miller–Love)
|
|
11
|
+
tables, which ship inside the package — at the special k points and equally on symmetry
|
|
12
|
+
lines, planes and general points.
|
|
13
|
+
|
|
14
|
+
## The seven commands
|
|
15
|
+
|
|
16
|
+
| command | what it gives you |
|
|
17
|
+
|---|---|
|
|
18
|
+
| `crystod` | crystal-orbital / SALC irreps from atomic orbitals, orbital hybridization, crystal-orbital diagrams (extended Hückel or PySCF), band structure, DOS, 3D SALC viewers |
|
|
19
|
+
| `crystod-group` | direct products of point- and space-group irreps, reducible-representation decomposition, ligand-field splitting, polynomial basis functions, coset decompositions, isotropy subgroups, multi-electron terms, POSCAR ↔ CIF, symmetry-mode (AMPLIMODES-style) analysis |
|
|
20
|
+
| `crystod-bz` | interactive 3D Brillouin zones, automatic or manual k-paths, supercell (folded) BZs, special k points of any space group |
|
|
21
|
+
| `crystod-phonon` | phonon irrep labeling, element-projected fatbands, longitudinal/transverse bands, eigenvector VESTA export, symmetry-adapted modulations, symmetry-only vibration bases, isotropy subgroups of imaginary modes |
|
|
22
|
+
| `crystod-mag` | symmetry-adapted spin bases (cluster multipoles / SAMM) with ready-to-paste VASP `MAGMOM` or Quantum ESPRESSO input |
|
|
23
|
+
| `crystod-md` | atomic displacement parameters (ADPs) and time-averaged cells from an MD trajectory |
|
|
24
|
+
| `crystod-mol` | molecular point groups, molecular SALCs, and MO diagrams from symmetry + overlap (or PySCF) |
|
|
25
|
+
|
|
26
|
+
Several of these are offline counterparts of the Bilbao Crystallographic Server and
|
|
27
|
+
ISOTROPY tools (DIRPRO, ISOSUBGROUP, AMPLIMODES) and were cross-validated against them;
|
|
28
|
+
see the documentation for the validation details.
|
|
29
|
+
|
|
30
|
+
## Installation
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
pip install crystod
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Requires Python 3.9 or later. The main dependencies (`phonopy`, `spglib`, `spgrep`,
|
|
37
|
+
`ase`, `seekpath`, `pymatgen`, `pyscf`, `numpy`, `scipy`, `sympy`, `pandas`,
|
|
38
|
+
`matplotlib`) are installed automatically.
|
|
39
|
+
|
|
40
|
+
To also get the worked examples and the test suite, clone the repository instead:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
conda create -n crystod python=3.11 && conda activate crystod
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
git clone https://github.com/ahntaeyoung1212/CrystOD.git && cd CrystOD && pip install -e .
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Quick start
|
|
51
|
+
|
|
52
|
+
Irreps of the Sc 3d crystal orbitals of ScF₃ at every special k point:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
crystod -c 221_PPOSCAR_ScF3 --element Sc --orbital d
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Which space groups can the imaginary phonons of cubic SrTiO₃ condense into — and the
|
|
59
|
+
distorted structures themselves:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
crystod-phonon --subgroup -c 221_PPOSCAR_SrTiO3 --dim "4 4 4" --qpoint R --modulate
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Freeze a chosen mode combination into a structure (a unit cell plus `FORCE_SETS` is all
|
|
66
|
+
you need):
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
crystod-phonon --modulation -c 221_PPOSCAR_ScF3 --qpoint 0.5 0.5 0.5 --mode 1 2 3 --amplitude 0.3
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Which subgroup a distortion of a given irrep and order-parameter direction leaves behind:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
crystod-group --parent Pm-3m --irrep R4+
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
An MO diagram of a molecule from symmetry and overlap alone:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
crystod-mol --diagram --xyz XYZ_CH4.xyz
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Every command prints its own examples with `--help`, and the documentation shows the
|
|
85
|
+
output of each one.
|
|
86
|
+
|
|
87
|
+
## Python API
|
|
88
|
+
|
|
89
|
+
Every analysis is also a Python function, grouped into one module per command, so a part
|
|
90
|
+
of CrystOD can be used inside another program:
|
|
91
|
+
|
|
92
|
+
```python
|
|
93
|
+
import crystod
|
|
94
|
+
|
|
95
|
+
subgroups = crystod.group.isotropy_subgroups("Pm-3m", "R4+")
|
|
96
|
+
results = crystod.phonon.scan_imaginary_modes(phonon) # a live phonopy object
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
`crystod.salc`, `crystod.group`, `crystod.phonon`, `crystod.bz`, `crystod.mag`,
|
|
100
|
+
`crystod.md`, `crystod.mol`. Attribute access is lazy, so `import crystod` plus all seven
|
|
101
|
+
domains costs ~0.09 s and pulls in nothing heavier than NumPy — phonopy, spgrep, PySCF
|
|
102
|
+
and matplotlib load only when a function that needs them is called.
|
|
103
|
+
|
|
104
|
+
## Testing
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
python testsuite.py
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Runs the full regression suite (35 sections) against the data in `example/`; a section
|
|
111
|
+
can be run alone with `python testsuite.py 27`.
|
|
112
|
+
|
|
113
|
+
## Data sources and acknowledgements
|
|
114
|
+
|
|
115
|
+
- Irrep tables: **ISO-IR** dataset of the ISOTROPY Software Suite, shipped as
|
|
116
|
+
`crystod/CIR_data.txt.gz` — H. T. Stokes, B. J. Campbell and R. Cordes,
|
|
117
|
+
*Acta Cryst.* **A69**, 388–395 (2013), <https://iso.byu.edu>.
|
|
118
|
+
- Isotropy subgroups validated against **ISOSUBGROUP** — H. T. Stokes, S. van Orden and
|
|
119
|
+
B. J. Campbell, *J. Appl. Cryst.* **49**, 1849–1853 (2016).
|
|
120
|
+
- Symmetry-mode analysis validated against **AMPLIMODES** — D. Orobengoa, C. Capillas,
|
|
121
|
+
M. I. Aroyo and J. M. Perez-Mato, *J. Appl. Cryst.* **42**, 820–833 (2009).
|
|
122
|
+
- Built on phonopy, spglib, spgrep, ASE, seekpath, pymatgen and PySCF.
|
|
123
|
+
|
|
124
|
+
## Contributors
|
|
125
|
+
|
|
126
|
+
- **Yasuhide Mochizuki** — Tokyo University of Science ([mochizuki@rs.tus.ac.jp](mailto:mochizuki@rs.tus.ac.jp))
|
|
127
|
+
- **Hiroki Koiso** — Institute of Science Tokyo
|
|
128
|
+
|
|
129
|
+
## Citation
|
|
130
|
+
|
|
131
|
+
If you use CrystOD in your research, please cite:
|
|
132
|
+
|
|
133
|
+
> H. Koiso, S. Yoshida, T. Nagai, T. Isobe, A. Nakajima, and Y. Mochizuki,
|
|
134
|
+
> "Thermal expansion and phase stability of BF3 (B = Sc, Y, La, Al, Ga, In) from first
|
|
135
|
+
> principles", [Physical Review B **110**, 064104 (2024)](https://doi.org/10.1103/PhysRevB.110.064104).
|
|
136
|
+
|
|
137
|
+
```bibtex
|
|
138
|
+
@article{CrystOD,
|
|
139
|
+
title = {Thermal expansion and phase stability of $B$F$_3$ ($B$ = Sc, Y, La, Al, Ga, In) from first principles},
|
|
140
|
+
author = {Koiso, Hiroki and Yoshida, Suguru and Nagai, Takayuki and Isobe, Toshihiro and Nakajima, Akira and Mochizuki, Yasuhide},
|
|
141
|
+
journal = {Phys. Rev. B},
|
|
142
|
+
volume = {110},
|
|
143
|
+
pages = {064104},
|
|
144
|
+
year = {2024},
|
|
145
|
+
doi = {10.1103/PhysRevB.110.064104},
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## License
|
|
150
|
+
|
|
151
|
+
MIT License — see [LICENSE](LICENSE).
|
|
Binary file
|