yu-mcal 0.1.4__tar.gz → 0.1.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.
Files changed (71) hide show
  1. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/PKG-INFO +1 -1
  2. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_modules/mcal/mcal.html +3 -3
  3. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_modules/mcal/utils/cif_reader.html +54 -12
  4. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/mcal.utils.html +1 -1
  5. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/searchindex.js +1 -1
  6. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/pyproject.toml +1 -1
  7. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/src/mcal/mcal.py +3 -3
  8. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/src/mcal/utils/cif_reader.py +54 -12
  9. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/uv.lock +1 -1
  10. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/.gitignore +0 -0
  11. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/.python-version +0 -0
  12. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/LICENSE +0 -0
  13. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/README.md +0 -0
  14. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/README_ja.md +0 -0
  15. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/.nojekyll +0 -0
  16. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_modules/index.html +0 -0
  17. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_modules/mcal/calculations/hopping_mobility_model.html +0 -0
  18. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_modules/mcal/calculations/rcal.html +0 -0
  19. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_modules/mcal/utils/gaus_log_reader.html +0 -0
  20. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_modules/mcal/utils/gjf_maker.html +0 -0
  21. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_sources/index.rst.txt +0 -0
  22. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_sources/mcal.calculations.rst.txt +0 -0
  23. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_sources/mcal.rst.txt +0 -0
  24. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_sources/mcal.utils.rst.txt +0 -0
  25. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_sources/modules.rst.txt +0 -0
  26. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/autodoc_pydantic.css +0 -0
  27. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/basic.css +0 -0
  28. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/debug.css +0 -0
  29. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/doctools.js +0 -0
  30. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/documentation_options.js +0 -0
  31. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/file.png +0 -0
  32. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/language_data.js +0 -0
  33. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/minus.png +0 -0
  34. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/plus.png +0 -0
  35. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/pygments.css +0 -0
  36. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/scripts/furo-extensions.js +0 -0
  37. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/scripts/furo.js +0 -0
  38. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/scripts/furo.js.LICENSE.txt +0 -0
  39. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/scripts/furo.js.map +0 -0
  40. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/searchtools.js +0 -0
  41. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/skeleton.css +0 -0
  42. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/sphinx_highlight.js +0 -0
  43. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/styles/furo-extensions.css +0 -0
  44. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/styles/furo-extensions.css.map +0 -0
  45. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/styles/furo.css +0 -0
  46. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/_static/styles/furo.css.map +0 -0
  47. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/genindex.html +0 -0
  48. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/index.html +0 -0
  49. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/mcal.calculations.html +0 -0
  50. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/mcal.html +0 -0
  51. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/modules.html +0 -0
  52. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/objects.inv +0 -0
  53. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/py-modindex.html +0 -0
  54. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs/search.html +0 -0
  55. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs-src/Makefile +0 -0
  56. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs-src/make.bat +0 -0
  57. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs-src/source/conf.py +0 -0
  58. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs-src/source/index.rst +0 -0
  59. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs-src/source/mcal.calculations.rst +0 -0
  60. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs-src/source/mcal.rst +0 -0
  61. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs-src/source/mcal.utils.rst +0 -0
  62. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/docs-src/source/modules.rst +0 -0
  63. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/requirements.txt +0 -0
  64. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/src/mcal/__init__.py +0 -0
  65. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/src/mcal/calculations/__init__.py +0 -0
  66. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/src/mcal/calculations/hopping_mobility_model.py +0 -0
  67. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/src/mcal/calculations/rcal.py +0 -0
  68. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/src/mcal/constants/element_properties.csv +0 -0
  69. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/src/mcal/utils/__init__.py +0 -0
  70. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/src/mcal/utils/gaus_log_reader.py +0 -0
  71. {yu_mcal-0.1.4 → yu_mcal-0.1.6}/src/mcal/utils/gjf_maker.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yu-mcal
3
- Version: 0.1.4
3
+ Version: 0.1.6
4
4
  Summary: Program for the calculation of mobility tensor for organic semiconductor crystals
5
5
  Author: Koki Ozawa
6
6
  Author-email: Hiroyuki Matsui <h-matsui@yz.yamagata-u.ac.jp>
@@ -377,7 +377,7 @@
377
377
  <span class="n">cif_path_without_ext</span> <span class="o">=</span> <span class="sa">f</span><span class="s1">&#39;</span><span class="si">{</span><span class="n">directory</span><span class="si">}</span><span class="s1">/</span><span class="si">{</span><span class="n">filename</span><span class="si">}</span><span class="s1">&#39;</span>
378
378
 
379
379
  <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;----------------------------------------&#39;</span><span class="p">)</span>
380
- <span class="nb">print</span><span class="p">(</span><span class="s1">&#39; mcal 0.1.4 (2026/01/20) by Matsui Lab. &#39;</span><span class="p">)</span>
380
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39; mcal 0.1.6 (2026/01/29) by Matsui Lab. &#39;</span><span class="p">)</span>
381
381
  <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;----------------------------------------&#39;</span><span class="p">)</span>
382
382
 
383
383
  <span class="k">if</span> <span class="n">args</span><span class="o">.</span><span class="n">read_pickle</span><span class="p">:</span>
@@ -720,8 +720,8 @@
720
720
  <span class="sd"> Tuple[NDArray[np.float64], NDArray[np.float64]]</span>
721
721
  <span class="sd"> Eigenvalue(mobility value) and eigenvector(mobility vector)</span>
722
722
  <span class="sd"> &quot;&quot;&quot;</span>
723
- <span class="n">value</span><span class="p">,</span> <span class="n">vector</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">eig</span><span class="p">(</span><span class="n">mobility_tensor</span><span class="p">)</span>
724
- <span class="k">return</span> <span class="n">value</span><span class="p">,</span> <span class="n">vector</span></div>
723
+ <span class="n">value</span><span class="p">,</span> <span class="n">vector</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">eigh</span><span class="p">(</span><span class="n">mobility_tensor</span><span class="p">)</span>
724
+ <span class="k">return</span> <span class="n">value</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">vector</span><span class="p">[:,</span> <span class="p">::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span></div>
725
725
 
726
726
 
727
727
 
@@ -233,13 +233,14 @@
233
233
  </div>
234
234
  <article role="main" id="furo-main-content">
235
235
  <h1>Source code for mcal.utils.cif_reader</h1><div class="highlight"><pre>
236
- <span></span><span class="sd">&quot;&quot;&quot;CifReader beta (2025/10/30)&quot;&quot;&quot;</span>
236
+ <span></span><span class="sd">&quot;&quot;&quot;CifReader beta (2026/01/29)&quot;&quot;&quot;</span>
237
237
  <span class="kn">import</span><span class="w"> </span><span class="nn">os</span>
238
238
  <span class="kn">import</span><span class="w"> </span><span class="nn">re</span>
239
+ <span class="kn">import</span><span class="w"> </span><span class="nn">warnings</span>
240
+ <span class="kn">from</span><span class="w"> </span><span class="nn">collections</span><span class="w"> </span><span class="kn">import</span> <span class="n">deque</span>
239
241
  <span class="kn">from</span><span class="w"> </span><span class="nn">itertools</span><span class="w"> </span><span class="kn">import</span> <span class="n">product</span>
240
242
  <span class="kn">from</span><span class="w"> </span><span class="nn">pathlib</span><span class="w"> </span><span class="kn">import</span> <span class="n">Path</span>
241
243
  <span class="kn">from</span><span class="w"> </span><span class="nn">typing</span><span class="w"> </span><span class="kn">import</span> <span class="n">Dict</span><span class="p">,</span> <span class="n">List</span><span class="p">,</span> <span class="n">Literal</span><span class="p">,</span> <span class="n">Tuple</span>
242
- <span class="kn">import</span><span class="w"> </span><span class="nn">warnings</span>
243
244
 
244
245
  <span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
245
246
  <span class="kn">import</span><span class="w"> </span><span class="nn">pandas</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">pd</span>
@@ -304,13 +305,26 @@
304
305
  <span class="bp">self</span><span class="o">.</span><span class="n">_make_adjacency_mat</span><span class="p">()</span>
305
306
  <span class="bp">self</span><span class="o">.</span><span class="n">_split_mols</span><span class="p">()</span>
306
307
  <span class="bp">self</span><span class="o">.</span><span class="n">_put_unit_cell</span><span class="p">()</span>
308
+ <span class="bp">self</span><span class="o">.</span><span class="n">_unwrap_molecules</span><span class="p">()</span>
309
+ <span class="bp">self</span><span class="o">.</span><span class="n">_put_unit_cell</span><span class="p">()</span>
310
+ <span class="c1"># Remove duplicates again as they may occur when moving atoms into the unit cell</span>
307
311
  <span class="bp">self</span><span class="o">.</span><span class="n">sym_symbols</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">sym_coords</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">remove_duplicates</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sym_symbols</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">sym_coords</span><span class="p">)</span>
308
312
  <span class="bp">self</span><span class="o">.</span><span class="n">_make_adjacency_mat</span><span class="p">()</span>
309
313
  <span class="bp">self</span><span class="o">.</span><span class="n">_split_mols</span><span class="p">()</span>
310
314
  <span class="bp">self</span><span class="o">.</span><span class="n">_calc_z_value</span><span class="p">()</span>
311
315
 
312
316
  <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ref_z_value</span> <span class="o">!=</span> <span class="mi">0</span> <span class="ow">and</span> <span class="bp">self</span><span class="o">.</span><span class="n">z_value</span> <span class="o">!=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_ref_z_value</span><span class="p">:</span>
313
- <span class="k">raise</span> <span class="n">ZValueIsNotMatchError</span><span class="p">(</span><span class="s1">&#39;Z value is not match.&#39;</span><span class="p">)</span>
317
+ <span class="k">raise</span> <span class="n">ZValueIsNotMatchError</span><span class="p">(</span>
318
+ <span class="sa">f</span><span class="s1">&#39;Z value is not match. Z value in cif file is </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">_ref_z_value</span><span class="si">}</span><span class="s1">, but calculated Z value is </span><span class="si">{</span><span class="bp">self</span><span class="o">.</span><span class="n">z_value</span><span class="si">}</span><span class="s1">.&#39;</span>
319
+ <span class="p">)</span>
320
+
321
+ <span class="k">def</span><span class="w"> </span><span class="nf">_apply_minimum_image</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
322
+ <span class="w"> </span><span class="sd">&quot;&quot;&quot;Apply minimum image convention.&quot;&quot;&quot;</span>
323
+ <span class="n">frac_diff</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sym_coords</span><span class="p">[:,</span> <span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">,</span> <span class="p">:]</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">sym_coords</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">,</span> <span class="p">:,</span> <span class="p">:]</span>
324
+ <span class="n">frac_diff</span> <span class="o">=</span> <span class="n">frac_diff</span> <span class="o">-</span> <span class="n">np</span><span class="o">.</span><span class="n">round</span><span class="p">(</span><span class="n">frac_diff</span><span class="p">)</span>
325
+ <span class="n">cart_diff</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="n">frac_diff</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">lattice</span><span class="p">)</span>
326
+ <span class="n">distance</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">norm</span><span class="p">(</span><span class="n">cart_diff</span><span class="p">,</span> <span class="n">axis</span><span class="o">=-</span><span class="mi">1</span><span class="p">)</span>
327
+ <span class="k">return</span> <span class="n">distance</span>
314
328
 
315
329
  <span class="k">def</span><span class="w"> </span><span class="nf">_calc_lattice</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
316
330
  <span class="w"> </span><span class="sd">&quot;&quot;&quot;Calculate lattice.&quot;&quot;&quot;</span>
@@ -365,7 +379,7 @@
365
379
  <span class="n">num_atoms</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sym_symbols</span><span class="p">)</span>
366
380
  <span class="bp">self</span><span class="o">.</span><span class="n">adjacency_mat</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">zeros</span><span class="p">((</span><span class="n">num_atoms</span><span class="p">,</span> <span class="n">num_atoms</span><span class="p">),</span> <span class="n">dtype</span><span class="o">=</span><span class="nb">bool</span><span class="p">)</span>
367
381
 
368
- <span class="bp">self</span><span class="o">.</span><span class="n">cart_coords</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">dot</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">sym_coords</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">lattice</span><span class="p">)</span>
382
+ <span class="n">distance</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">_apply_minimum_image</span><span class="p">()</span>
369
383
 
370
384
  <span class="k">try</span><span class="p">:</span>
371
385
  <span class="n">covalent_distance</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">([</span><span class="bp">self</span><span class="o">.</span><span class="n">COVALENT_RADII</span><span class="p">[</span><span class="n">symbol</span><span class="p">]</span> <span class="k">for</span> <span class="n">symbol</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">sym_symbols</span><span class="p">])</span> \
@@ -373,7 +387,6 @@
373
387
  <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span>
374
388
  <span class="k">raise</span> <span class="n">ElementPropertiesIsNotDefinedError</span><span class="p">(</span><span class="s1">&#39;Element properties is not defined.&#39;</span><span class="p">)</span>
375
389
 
376
- <span class="n">distance</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">linalg</span><span class="o">.</span><span class="n">norm</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">cart_coords</span><span class="p">[:,</span> <span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">,</span> <span class="p">:]</span> <span class="o">-</span> <span class="bp">self</span><span class="o">.</span><span class="n">cart_coords</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">newaxis</span><span class="p">,</span> <span class="p">:,</span> <span class="p">:],</span> <span class="n">axis</span><span class="o">=-</span><span class="mi">1</span><span class="p">)</span>
377
390
  <span class="bp">self</span><span class="o">.</span><span class="n">adjacency_mat</span><span class="p">[(</span><span class="n">distance</span> <span class="o">&lt;=</span> <span class="n">covalent_distance</span> <span class="o">*</span> <span class="mf">1.3</span><span class="p">)</span> <span class="o">&amp;</span> <span class="p">(</span><span class="n">distance</span> <span class="o">!=</span> <span class="mi">0</span><span class="p">)]</span> <span class="o">=</span> <span class="mi">1</span>
378
391
 
379
392
  <span class="k">def</span><span class="w"> </span><span class="nf">_operate_sym</span><span class="p">(</span><span class="bp">self</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
@@ -530,10 +543,11 @@
530
543
  <span class="k">if</span> <span class="s1">&#39;?&#39;</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">tmp_atom_data</span><span class="p">[</span><span class="n">atom_data_index</span><span class="p">[</span><span class="s1">&#39;_atom_site_label&#39;</span><span class="p">]]:</span>
531
544
  <span class="k">if</span> <span class="n">atom_data_index</span><span class="p">[</span><span class="s1">&#39;_atom_site_type_symbol&#39;</span><span class="p">]</span> <span class="ow">is</span> <span class="kc">None</span><span class="p">:</span>
532
545
  <span class="n">symbol_label</span> <span class="o">=</span> <span class="n">tmp_atom_data</span><span class="p">[</span><span class="n">atom_data_index</span><span class="p">[</span><span class="s1">&#39;_atom_site_label&#39;</span><span class="p">]]</span>
533
- <span class="n">symbol</span> <span class="o">=</span> <span class="n">symbol_label</span>
534
- <span class="k">for</span> <span class="n">s</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">&#39;A&#39;</span><span class="p">,</span> <span class="s1">&#39;B&#39;</span><span class="p">,</span> <span class="s1">&#39;C&#39;</span><span class="p">]:</span>
535
- <span class="n">symbol</span> <span class="o">=</span> <span class="n">symbol</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="n">s</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span>
536
- <span class="n">symbol</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">sub</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;\d+&#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">,</span> <span class="n">symbol</span><span class="p">)</span>
546
+ <span class="n">symbol</span> <span class="o">=</span> <span class="n">re</span><span class="o">.</span><span class="n">match</span><span class="p">(</span><span class="sa">r</span><span class="s1">&#39;[A-Z][a-z]?&#39;</span><span class="p">,</span> <span class="n">symbol_label</span><span class="p">)</span>
547
+ <span class="k">if</span> <span class="n">symbol</span><span class="p">:</span>
548
+ <span class="n">symbol</span> <span class="o">=</span> <span class="n">symbol</span><span class="o">.</span><span class="n">group</span><span class="p">(</span><span class="mi">0</span><span class="p">)</span>
549
+ <span class="k">else</span><span class="p">:</span>
550
+ <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="sa">f</span><span class="s1">&#39;Symbol label </span><span class="si">{</span><span class="n">symbol_label</span><span class="si">}</span><span class="s1"> is not valid.&#39;</span><span class="p">)</span>
537
551
  <span class="k">else</span><span class="p">:</span>
538
552
  <span class="n">symbol_label</span> <span class="o">=</span> <span class="n">tmp_atom_data</span><span class="p">[</span><span class="n">atom_data_index</span><span class="p">[</span><span class="s1">&#39;_atom_site_label&#39;</span><span class="p">]]</span>
539
553
  <span class="n">symbol</span> <span class="o">=</span> <span class="n">tmp_atom_data</span><span class="p">[</span><span class="n">atom_data_index</span><span class="p">[</span><span class="s1">&#39;_atom_site_type_symbol&#39;</span><span class="p">]]</span>
@@ -547,11 +561,10 @@
547
561
  <span class="c1"># get symmetry operation information</span>
548
562
  <span class="k">elif</span> <span class="n">is_read_sym</span><span class="p">:</span>
549
563
  <span class="k">if</span> <span class="s2">&quot;&#39;&quot;</span> <span class="ow">in</span> <span class="n">line</span><span class="p">:</span>
550
- <span class="n">line</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">),</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">&quot;&#39;&quot;</span><span class="p">)))</span>
551
- <span class="bp">self</span><span class="o">.</span><span class="n">symmetry_pos</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">line</span><span class="p">[</span><span class="n">symmetry_data_index</span><span class="p">]</span><span class="o">.</span><span class="n">lower</span><span class="p">())</span>
564
+ <span class="n">line</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">)</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s2">&quot;&#39;&quot;</span><span class="p">,</span> <span class="s2">&quot;&quot;</span><span class="p">),</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">()))</span>
552
565
  <span class="k">else</span><span class="p">:</span>
553
566
  <span class="n">line</span> <span class="o">=</span> <span class="nb">list</span><span class="p">(</span><span class="nb">map</span><span class="p">(</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">&#39; &#39;</span><span class="p">,</span> <span class="s1">&#39;&#39;</span><span class="p">),</span> <span class="n">line</span><span class="o">.</span><span class="n">split</span><span class="p">()))</span>
554
- <span class="bp">self</span><span class="o">.</span><span class="n">symmetry_pos</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">line</span><span class="p">[</span><span class="n">symmetry_data_index</span><span class="p">]</span><span class="o">.</span><span class="n">lower</span><span class="p">())</span>
567
+ <span class="bp">self</span><span class="o">.</span><span class="n">symmetry_pos</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">line</span><span class="p">[</span><span class="n">symmetry_data_index</span><span class="p">]</span><span class="o">.</span><span class="n">lower</span><span class="p">())</span>
555
568
 
556
569
  <span class="bp">self</span><span class="o">.</span><span class="n">symbols</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">symbols</span><span class="p">)</span>
557
570
  <span class="bp">self</span><span class="o">.</span><span class="n">coordinates</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">array</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">coordinates</span><span class="p">)</span>
@@ -596,6 +609,35 @@
596
609
  <span class="n">sub_matrix</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">adjacency_mat</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">ix_</span><span class="p">(</span><span class="n">index_group</span><span class="p">,</span> <span class="n">index_group</span><span class="p">)]</span>
597
610
  <span class="bp">self</span><span class="o">.</span><span class="n">sub_matrices</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">sub_matrix</span><span class="p">)</span>
598
611
 
612
+ <span class="k">def</span><span class="w"> </span><span class="nf">_unwrap_molecules</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
613
+ <span class="w"> </span><span class="sd">&quot;&quot;&quot;Unwrap molecules using the adjacency matrix based on the minimum image convention.&quot;&quot;&quot;</span>
614
+ <span class="k">for</span> <span class="n">atom_group</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">bonded_atoms</span><span class="p">:</span>
615
+ <span class="k">if</span> <span class="nb">len</span><span class="p">(</span><span class="n">atom_group</span><span class="p">)</span> <span class="o">&lt;=</span> <span class="mi">1</span><span class="p">:</span>
616
+ <span class="k">continue</span>
617
+
618
+ <span class="n">criterion_idx</span> <span class="o">=</span> <span class="n">atom_group</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
619
+
620
+ <span class="c1"># Depth-first search</span>
621
+ <span class="n">visited</span> <span class="o">=</span> <span class="p">{</span><span class="n">criterion_idx</span><span class="p">}</span>
622
+ <span class="n">stack</span> <span class="o">=</span> <span class="n">deque</span><span class="p">([</span><span class="n">criterion_idx</span><span class="p">])</span>
623
+
624
+ <span class="k">while</span> <span class="n">stack</span><span class="p">:</span>
625
+ <span class="n">current_idx</span> <span class="o">=</span> <span class="n">stack</span><span class="o">.</span><span class="n">popleft</span><span class="p">()</span>
626
+ <span class="n">current_coord</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sym_coords</span><span class="p">[</span><span class="n">current_idx</span><span class="p">]</span>
627
+
628
+ <span class="k">for</span> <span class="n">neighbor_idx</span> <span class="ow">in</span> <span class="n">atom_group</span><span class="p">:</span>
629
+ <span class="k">if</span> <span class="n">neighbor_idx</span> <span class="ow">in</span> <span class="n">visited</span><span class="p">:</span>
630
+ <span class="k">continue</span>
631
+
632
+ <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">adjacency_mat</span><span class="p">[</span><span class="n">current_idx</span><span class="p">,</span> <span class="n">neighbor_idx</span><span class="p">]:</span>
633
+ <span class="c1"># Minimum image convention</span>
634
+ <span class="n">frac_diff</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">sym_coords</span><span class="p">[</span><span class="n">neighbor_idx</span><span class="p">]</span> <span class="o">-</span> <span class="n">current_coord</span>
635
+ <span class="n">frac_diff</span> <span class="o">=</span> <span class="n">frac_diff</span> <span class="o">-</span> <span class="n">np</span><span class="o">.</span><span class="n">round</span><span class="p">(</span><span class="n">frac_diff</span><span class="p">)</span>
636
+ <span class="bp">self</span><span class="o">.</span><span class="n">sym_coords</span><span class="p">[</span><span class="n">neighbor_idx</span><span class="p">]</span> <span class="o">=</span> <span class="n">current_coord</span> <span class="o">+</span> <span class="n">frac_diff</span>
637
+
638
+ <span class="n">visited</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">neighbor_idx</span><span class="p">)</span>
639
+ <span class="n">stack</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="n">neighbor_idx</span><span class="p">)</span>
640
+
599
641
  <div class="viewcode-block" id="CifReader.calc_cen_of_weight">
600
642
  <a class="viewcode-back" href="../../../mcal.utils.html#mcal.utils.cif_reader.CifReader.calc_cen_of_weight">[docs]</a>
601
643
  <span class="k">def</span><span class="w"> </span><span class="nf">calc_cen_of_weight</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">coordinates</span><span class="p">:</span> <span class="n">NDArray</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">])</span> <span class="o">-&gt;</span> <span class="n">NDArray</span><span class="p">[</span><span class="n">np</span><span class="o">.</span><span class="n">float64</span><span class="p">]:</span>
@@ -246,7 +246,7 @@
246
246
  </section>
247
247
  <section id="module-mcal.utils.cif_reader">
248
248
  <span id="mcal-utils-cif-reader-module"></span><h2>mcal.utils.cif_reader module<a class="headerlink" href="#module-mcal.utils.cif_reader" title="Link to this heading">¶</a></h2>
249
- <p>CifReader beta (2025/10/30)</p>
249
+ <p>CifReader beta (2026/01/29)</p>
250
250
  <dl class="py class">
251
251
  <dt class="sig sig-object py" id="mcal.utils.cif_reader.CifReader">
252
252
  <em class="property"><span class="pre">class</span><span class="w"> </span></em><span class="sig-prename descclassname"><span class="pre">mcal.utils.cif_reader.</span></span><span class="sig-name descname"><span class="pre">CifReader</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">cif_path</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">str</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/mcal/utils/cif_reader.html#CifReader"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcal.utils.cif_reader.CifReader" title="Link to this definition">¶</a></dt>
@@ -1 +1 @@
1
- Search.setIndex({"alltitles": {"--cellsize <number>": [[0, "cellsize-number"]], "--fullcal": [[0, "fullcal"]], "--mc": [[0, "mc"]], "--ode": [[0, "ode"]], "--resume": [[0, "resume"]], "-M, --method <method>": [[0, "m-method-method"]], "-c, --cpu <number>": [[0, "c-cpu-number"]], "-g, --g09": [[0, "g-g09"]], "-m, --mem <memory>": [[0, "m-mem-memory"]], "-p, --pickle": [[0, "p-pickle"]], "-r, --read": [[0, "r-read"]], "-rp, --read_pickle": [[0, "rp-read-pickle"]], "API Reference": [[0, "api-reference"], [0, null]], "Acknowledgements": [[0, "acknowledgements"]], "Authors": [[0, "authors"]], "Basic Calculations": [[0, "basic-calculations"]], "Basic Examples": [[0, "basic-examples"]], "Basic Usage": [[0, "basic-usage"]], "Calculation Control": [[0, "calculation-control"]], "Calculation Settings": [[0, "calculation-settings"]], "Comparing Diffusion Coefficients": [[0, "comparing-diffusion-coefficients"]], "Diffusion Coefficient Calculation Methods": [[0, "diffusion-coefficient-calculation-methods"]], "Features": [[0, "features"]], "High-Precision Calculations": [[0, "high-precision-calculations"]], "If calculation stops midway": [[0, "if-calculation-stops-midway"]], "Indices and Tables": [[0, "indices-and-tables"]], "Installation": [[0, "installation"]], "License": [[0, "license"]], "Memory shortage error": [[0, "memory-shortage-error"]], "Module contents": [[1, "module-mcal"], [2, "module-mcal.calculations"], [3, "module-mcal.utils"]], "Notes": [[0, "notes"]], "Options": [[0, "options"]], "Output": [[0, "output"]], "Output Settings": [[0, "output-settings"]], "Overview": [[0, "overview"]], "Practical Usage Examples": [[0, "practical-usage-examples"]], "Required Arguments": [[0, "required-arguments"]], "Requirements": [[0, "requirements"]], "Reusing Results": [[0, "reusing-results"]], "Standard Output": [[0, "standard-output"]], "Submodules": [[1, "submodules"], [2, "submodules"], [3, "submodules"]], "Subpackages": [[1, "subpackages"]], "To reduce calculation time": [[0, "to-reduce-calculation-time"]], "Troubleshooting": [[0, "troubleshooting"]], "Verify Installation": [[0, "verify-installation"]], "mcal": [[4, null]], "mcal Documentation": [[0, null]], "mcal Usage Manual": [[0, "mcal-usage-manual"]], "mcal package": [[1, null]], "mcal.calculations package": [[2, null]], "mcal.calculations.hopping_mobility_model module": [[2, "module-mcal.calculations.hopping_mobility_model"]], "mcal.calculations.rcal module": [[2, "module-mcal.calculations.rcal"]], "mcal.mcal module": [[1, "module-mcal.mcal"]], "mcal.utils package": [[3, null]], "mcal.utils.cif_reader module": [[3, "module-mcal.utils.cif_reader"]], "mcal.utils.gaus_log_reader module": [[3, "module-mcal.utils.gaus_log_reader"]], "mcal.utils.gjf_maker module": [[3, "module-mcal.utils.gjf_maker"]]}, "docnames": ["index", "mcal", "mcal.calculations", "mcal.utils", "modules"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["index.rst", "mcal.rst", "mcal.calculations.rst", "mcal.utils.rst", "modules.rst"], "indexentries": {"add_adjacency_mat() (mcal.utils.cif_reader.fileio method)": [[3, "mcal.utils.cif_reader.FileIO.add_adjacency_mat", false]], "add_coordinates() (mcal.utils.cif_reader.fileio method)": [[3, "mcal.utils.cif_reader.FileIO.add_coordinates", false]], "add_link() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.add_link", false]], "add_root() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.add_root", false]], "add_symbols() (mcal.utils.cif_reader.fileio method)": [[3, "mcal.utils.cif_reader.FileIO.add_symbols", false]], "atom_weight() (in module mcal.mcal)": [[1, "mcal.mcal.atom_weight", false]], "atomic_weights (mcal.utils.cif_reader.cifreader attribute)": [[3, "mcal.utils.cif_reader.CifReader.ATOMIC_WEIGHTS", false]], "cal_cen_of_weight() (in module mcal.mcal)": [[1, "mcal.mcal.cal_cen_of_weight", false]], "cal_distance_between_cen_of_weight() (in module mcal.mcal)": [[1, "mcal.mcal.cal_distance_between_cen_of_weight", false]], "cal_eigenvalue_decomposition() (in module mcal.mcal)": [[1, "mcal.mcal.cal_eigenvalue_decomposition", false]], "cal_min_distance() (in module mcal.mcal)": [[1, "mcal.mcal.cal_min_distance", false]], "cal_moment_of_inertia() (in module mcal.mcal)": [[1, "mcal.mcal.cal_moment_of_inertia", false]], "cal_pinv() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.cal_pinv", false]], "calc_cen_of_weight() (mcal.utils.cif_reader.cifreader method)": [[3, "mcal.utils.cif_reader.CifReader.calc_cen_of_weight", false]], "calc_reorganization() (mcal.calculations.rcal.rcal method)": [[2, "mcal.calculations.rcal.Rcal.calc_reorganization", false]], "check_error_term() (mcal.calculations.rcal.rcal static method)": [[2, "mcal.calculations.rcal.Rcal.check_error_term", false]], "check_extension_log() (mcal.calculations.rcal.rcal method)": [[2, "mcal.calculations.rcal.Rcal.check_extension_log", false]], "check_normal_termination() (in module mcal.utils.gaus_log_reader)": [[3, "mcal.utils.gaus_log_reader.check_normal_termination", false]], "check_reorganization_energy_completion() (in module mcal.mcal)": [[1, "mcal.mcal.check_reorganization_energy_completion", false]], "check_transfer_integral_completion() (in module mcal.mcal)": [[1, "mcal.mcal.check_transfer_integral_completion", false]], "cifreader (class in mcal.utils.cif_reader)": [[3, "mcal.utils.cif_reader.CifReader", false]], "close() (mcal.utils.gaus_log_reader.filereader method)": [[3, "mcal.utils.gaus_log_reader.FileReader.close", false]], "convert_cart_to_frac() (mcal.utils.cif_reader.cifreader method)": [[3, "mcal.utils.cif_reader.CifReader.convert_cart_to_frac", false]], "convert_frac_to_cart() (mcal.utils.cif_reader.cifreader method)": [[3, "mcal.utils.cif_reader.CifReader.convert_frac_to_cart", false]], "covalent_radii (mcal.utils.cif_reader.cifreader attribute)": [[3, "mcal.utils.cif_reader.CifReader.COVALENT_RADII", false]], "create_chk_file() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.create_chk_file", false]], "create_reorg_gjf() (in module mcal.mcal)": [[1, "mcal.mcal.create_reorg_gjf", false]], "create_rwf_file() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.create_rwf_file", false]], "create_ti_gjf() (in module mcal.mcal)": [[1, "mcal.mcal.create_ti_gjf", false]], "demo() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.demo", false]], "diffusion_coefficient_tensor() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor", false]], "diffusion_coefficient_tensor_mc() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor_MC", false]], "diffusion_coefficient_tensor_ode() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor_ODE", false]], "element_prop (mcal.utils.cif_reader.cifreader attribute)": [[3, "mcal.utils.cif_reader.CifReader.ELEMENT_PROP", false]], "element_prop (mcal.utils.gjf_maker.gjfmaker attribute)": [[3, "mcal.utils.gjf_maker.GjfMaker.ELEMENT_PROP", false]], "elementpropertiesisnotdefinederror": [[3, "mcal.utils.cif_reader.ElementPropertiesIsNotDefinedError", false]], "elements_num (mcal.utils.gjf_maker.gjfmaker attribute)": [[3, "mcal.utils.gjf_maker.GjfMaker.ELEMENTS_NUM", false]], "expand_mols() (mcal.utils.cif_reader.cifreader method)": [[3, "mcal.utils.cif_reader.CifReader.expand_mols", false]], "export_gjf() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.export_gjf", false]], "export_mol_file() (mcal.utils.cif_reader.fileio method)": [[3, "mcal.utils.cif_reader.FileIO.export_mol_file", false]], "export_unit_cell_file() (mcal.utils.cif_reader.cifreader method)": [[3, "mcal.utils.cif_reader.CifReader.export_unit_cell_file", false]], "export_xyz_file() (mcal.utils.cif_reader.fileio method)": [[3, "mcal.utils.cif_reader.FileIO.export_xyz_file", false]], "extract_energy() (mcal.calculations.rcal.rcal method)": [[2, "mcal.calculations.rcal.Rcal.extract_energy", false]], "fileio (class in mcal.utils.cif_reader)": [[3, "mcal.utils.cif_reader.FileIO", false]], "filereader (class in mcal.utils.gaus_log_reader)": [[3, "mcal.utils.gaus_log_reader.FileReader", false]], "gaustermerror": [[2, "mcal.calculations.rcal.GausTermError", false]], "gjfmaker (class in mcal.utils.gjf_maker)": [[3, "mcal.utils.gjf_maker.GjfMaker", false]], "main() (in module mcal.calculations.rcal)": [[2, "mcal.calculations.rcal.main", false]], "main() (in module mcal.mcal)": [[1, "mcal.mcal.main", false]], "marcus_rate() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.marcus_rate", false]], "mcal": [[1, "module-mcal", false]], "mcal.calculations": [[2, "module-mcal.calculations", false]], "mcal.calculations.hopping_mobility_model": [[2, "module-mcal.calculations.hopping_mobility_model", false]], "mcal.calculations.rcal": [[2, "module-mcal.calculations.rcal", false]], "mcal.mcal": [[1, "module-mcal.mcal", false]], "mcal.utils": [[3, "module-mcal.utils", false]], "mcal.utils.cif_reader": [[3, "module-mcal.utils.cif_reader", false]], "mcal.utils.gaus_log_reader": [[3, "module-mcal.utils.gaus_log_reader", false]], "mcal.utils.gjf_maker": [[3, "module-mcal.utils.gjf_maker", false]], "mobility_tensor() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.mobility_tensor", false]], "module": [[1, "module-mcal", false], [1, "module-mcal.mcal", false], [2, "module-mcal.calculations", false], [2, "module-mcal.calculations.hopping_mobility_model", false], [2, "module-mcal.calculations.rcal", false], [3, "module-mcal.utils", false], [3, "module-mcal.utils.cif_reader", false], [3, "module-mcal.utils.gaus_log_reader", false], [3, "module-mcal.utils.gjf_maker", false]], "opt() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.opt", false]], "osctypeerror": [[1, "mcal.mcal.OSCTypeError", false], [2, "mcal.calculations.rcal.OSCTypeError", false]], "output_detail() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.output_detail", false]], "parent_dir (mcal.utils.cif_reader.cifreader attribute)": [[3, "mcal.utils.cif_reader.CifReader.parent_dir", false]], "parent_dir (mcal.utils.gjf_maker.gjfmaker attribute)": [[3, "mcal.utils.gjf_maker.GjfMaker.parent_dir", false]], "print_mobility() (in module mcal.mcal)": [[1, "mcal.mcal.print_mobility", false]], "print_reorg_energy() (in module mcal.mcal)": [[1, "mcal.mcal.print_reorg_energy", false]], "print_tensor() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.print_tensor", false]], "print_tensor() (in module mcal.mcal)": [[1, "mcal.mcal.print_tensor", false]], "print_timestamp() (mcal.calculations.rcal.rcal static method)": [[2, "mcal.calculations.rcal.Rcal.print_timestamp", false]], "print_transfer_integral() (in module mcal.mcal)": [[1, "mcal.mcal.print_transfer_integral", false]], "rcal (class in mcal.calculations.rcal)": [[2, "mcal.calculations.rcal.Rcal", false]], "read_pickle() (in module mcal.mcal)": [[1, "mcal.mcal.read_pickle", false]], "remove_duplicates() (mcal.utils.cif_reader.cifreader method)": [[3, "mcal.utils.cif_reader.CifReader.remove_duplicates", false]], "reset_variable() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.reset_variable", false]], "reversed_readline() (mcal.utils.gaus_log_reader.filereader method)": [[3, "mcal.utils.gaus_log_reader.FileReader.reversed_readline", false]], "set_charge_spin() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.set_charge_spin", false]], "set_coordinates() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.set_coordinates", false]], "set_function() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.set_function", false]], "set_resource() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.set_resource", false]], "set_symbols() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.set_symbols", false]], "set_title() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.set_title", false]], "symmetryisnotdefinederror": [[3, "mcal.utils.cif_reader.SymmetryIsNotDefinedError", false]], "zvalueisnotmatcherror": [[3, "mcal.utils.cif_reader.ZValueIsNotMatchError", false]]}, "objects": {"": [[1, 0, 0, "-", "mcal"]], "mcal": [[2, 0, 0, "-", "calculations"], [1, 0, 0, "-", "mcal"], [3, 0, 0, "-", "utils"]], "mcal.calculations": [[2, 0, 0, "-", "hopping_mobility_model"], [2, 0, 0, "-", "rcal"]], "mcal.calculations.hopping_mobility_model": [[2, 1, 1, "", "cal_pinv"], [2, 1, 1, "", "demo"], [2, 1, 1, "", "diffusion_coefficient_tensor"], [2, 1, 1, "", "diffusion_coefficient_tensor_MC"], [2, 1, 1, "", "diffusion_coefficient_tensor_ODE"], [2, 1, 1, "", "marcus_rate"], [2, 1, 1, "", "mobility_tensor"], [2, 1, 1, "", "print_tensor"]], "mcal.calculations.rcal": [[2, 2, 1, "", "GausTermError"], [2, 2, 1, "", "OSCTypeError"], [2, 3, 1, "", "Rcal"], [2, 1, 1, "", "main"]], "mcal.calculations.rcal.Rcal": [[2, 4, 1, "", "calc_reorganization"], [2, 4, 1, "", "check_error_term"], [2, 4, 1, "", "check_extension_log"], [2, 4, 1, "", "extract_energy"], [2, 4, 1, "", "print_timestamp"]], "mcal.mcal": [[1, 2, 1, "", "OSCTypeError"], [1, 1, 1, "", "atom_weight"], [1, 1, 1, "", "cal_cen_of_weight"], [1, 1, 1, "", "cal_distance_between_cen_of_weight"], [1, 1, 1, "", "cal_eigenvalue_decomposition"], [1, 1, 1, "", "cal_min_distance"], [1, 1, 1, "", "cal_moment_of_inertia"], [1, 1, 1, "", "check_reorganization_energy_completion"], [1, 1, 1, "", "check_transfer_integral_completion"], [1, 1, 1, "", "create_reorg_gjf"], [1, 1, 1, "", "create_ti_gjf"], [1, 1, 1, "", "main"], [1, 1, 1, "", "print_mobility"], [1, 1, 1, "", "print_reorg_energy"], [1, 1, 1, "", "print_tensor"], [1, 1, 1, "", "print_transfer_integral"], [1, 1, 1, "", "read_pickle"]], "mcal.utils": [[3, 0, 0, "-", "cif_reader"], [3, 0, 0, "-", "gaus_log_reader"], [3, 0, 0, "-", "gjf_maker"]], "mcal.utils.cif_reader": [[3, 3, 1, "", "CifReader"], [3, 2, 1, "", "ElementPropertiesIsNotDefinedError"], [3, 3, 1, "", "FileIO"], [3, 2, 1, "", "SymmetryIsNotDefinedError"], [3, 2, 1, "", "ZValueIsNotMatchError"]], "mcal.utils.cif_reader.CifReader": [[3, 5, 1, "", "ATOMIC_WEIGHTS"], [3, 5, 1, "", "COVALENT_RADII"], [3, 5, 1, "", "ELEMENT_PROP"], [3, 4, 1, "", "calc_cen_of_weight"], [3, 4, 1, "", "convert_cart_to_frac"], [3, 4, 1, "", "convert_frac_to_cart"], [3, 4, 1, "", "expand_mols"], [3, 4, 1, "", "export_unit_cell_file"], [3, 5, 1, "", "parent_dir"], [3, 4, 1, "", "remove_duplicates"]], "mcal.utils.cif_reader.FileIO": [[3, 4, 1, "", "add_adjacency_mat"], [3, 4, 1, "", "add_coordinates"], [3, 4, 1, "", "add_symbols"], [3, 4, 1, "", "export_mol_file"], [3, 4, 1, "", "export_xyz_file"]], "mcal.utils.gaus_log_reader": [[3, 3, 1, "", "FileReader"], [3, 1, 1, "", "check_normal_termination"]], "mcal.utils.gaus_log_reader.FileReader": [[3, 4, 1, "", "close"], [3, 4, 1, "", "reversed_readline"]], "mcal.utils.gjf_maker": [[3, 3, 1, "", "GjfMaker"]], "mcal.utils.gjf_maker.GjfMaker": [[3, 5, 1, "", "ELEMENTS_NUM"], [3, 5, 1, "", "ELEMENT_PROP"], [3, 4, 1, "", "add_link"], [3, 4, 1, "", "add_root"], [3, 4, 1, "", "create_chk_file"], [3, 4, 1, "", "create_rwf_file"], [3, 4, 1, "", "export_gjf"], [3, 4, 1, "", "opt"], [3, 4, 1, "", "output_detail"], [3, 5, 1, "", "parent_dir"], [3, 4, 1, "", "reset_variable"], [3, 4, 1, "", "set_charge_spin"], [3, 4, 1, "", "set_coordinates"], [3, 4, 1, "", "set_function"], [3, 4, 1, "", "set_resource"], [3, 4, 1, "", "set_symbols"], [3, 4, 1, "", "set_title"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "exception", "Python exception"], "3": ["py", "class", "Python class"], "4": ["py", "method", "Python method"], "5": ["py", "attribute", "Python attribute"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:exception", "3": "py:class", "4": "py:method", "5": "py:attribute"}, "terms": {"": [2, 3], "0": [0, 2, 3], "00": 3, "0000": 3, "0001": 3, "001": 2, "0026": 3, "007": 3, "008": 3, "0080": 3, "01": 3, "011": 3, "0122": 3, "014": 3, "0140": 3, "02": 3, "03": 3, "0300": 3, "04": 3, "0400": 3, "05": [2, 3], "06": [2, 3], "07": 3, "078": 3, "08": 3, "085": 3, "09": 0, "098": 3, "1": [0, 1, 2, 3], "10": [0, 2, 3], "100": [2, 3], "10000": 2, "101": 3, "102": 3, "103": 3, "104": 3, "105": 3, "106": 3, "107": 3, "108": 3, "109": 3, "11": 3, "110": 3, "111": 3, "112": 3, "113": 3, "114": 3, "115": 3, "116": 3, "117": 3, "118": 3, "119": 3, "12": 3, "120": 3, "121": 3, "126": 3, "127": 3, "13": 3, "131": 3, "132": 3, "137": 3, "138": 3, "14": 3, "140": 3, "144": 3, "15": 3, "150": 3, "151": 3, "157": 3, "158": 3, "16": [0, 1, 3], "162": 3, "164": 3, "167": 3, "168": 3, "16gb": [0, 1], "17": 3, "173": 3, "174": 3, "178": 3, "18": 3, "180": 3, "183": 3, "186": 3, "19": 3, "190": 3, "192": 3, "195": 3, "196": 3, "1e": 2, "2": [0, 1, 2, 3], "20": 3, "200": [2, 3], "2000": 3, "2025": [2, 3], "204": 3, "207": 3, "208": 3, "21": 3, "22": 3, "224": 3, "23": 3, "231": 3, "232": 3, "238": 3, "24": 3, "25": 3, "26": 3, "27": 3, "28": 3, "29": 3, "3": [0, 3], "30": 3, "300": 2, "305": 3, "31": 3, "311g": [0, 1], "31g": [0, 1], "32": [0, 3], "33": 3, "34": 3, "35": 3, "36": 3, "37": 3, "38": 3, "39": 3, "3x3": 2, "3x3x3": [0, 1], "4": [0, 1, 3], "40": [2, 3], "41": 3, "42": 3, "43": 3, "44": 3, "45": 3, "46": 3, "468": 3, "47": 3, "48": 3, "49": 3, "5": 3, "50": 3, "51": 3, "52": 3, "53": 3, "54": 3, "546": 3, "55": 3, "56": 3, "57": 3, "58": 3, "59": 3, "5x5x5": [0, 1], "6": [0, 1, 3], "60": 3, "61": 3, "62": 3, "63": 3, "64": 3, "65": 3, "66": 3, "67": 3, "68": 3, "69": 3, "693": 3, "7": 3, "70": 3, "71": 3, "72": 3, "723": 3, "73": 3, "74": 3, "75": 3, "76": 3, "77": 3, "78": 3, "79": 3, "798": 3, "7x7x7": 0, "8": [0, 1, 3], "80": 3, "81": 3, "8192": 3, "82": 3, "83": 3, "84": 3, "845": 3, "85": 3, "86": 3, "867": 3, "87": 3, "88": 3, "89": 3, "9": [0, 2, 3], "90": 3, "904": 3, "906": 3, "91": 3, "92": 3, "922": 3, "93": 3, "933": 3, "938": 3, "94": 3, "9400": 3, "942": 3, "95": 3, "956": 3, "96": 3, "97": 3, "971": 3, "974": 3, "98": 3, "9800": 3, "982": 3, "99": 3, "996": 3, "998": 3, "999": 3, "A": 3, "As": 3, "At": 3, "Be": 3, "For": [0, 3], "If": 3, "In": 3, "It": 0, "No": 3, "The": [0, 2, 3], "With": 1, "ac": [0, 3], "add": 3, "add_adjacency_mat": [1, 3], "add_coordin": [1, 3], "add_link": [1, 3], "add_root": [1, 3], "add_symbol": [1, 3], "adjac": 3, "adjacency_mat": 3, "after": 0, "ag": 3, "aid": 0, "al": 3, "algorithm": 2, "all": [0, 1, 2], "am": 3, "amount": 0, "ani": [1, 2, 3], "anisotropi": [0, 1], "anoth": 1, "ar": [0, 1, 3], "around": [0, 3], "arrai": [2, 3], "atom": [1, 3], "atom_weight": [1, 4], "atomic_weight": [1, 3], "au": 3, "awai": 3, "axi": 2, "b": [2, 3], "b3lyp": [0, 1], "ba": 3, "base": [1, 2, 3], "basenam": 1, "basi": 0, "basic": 1, "beta": 3, "between": [0, 1], "bh": 3, "bi": 3, "bismuth": 3, "bk": 3, "bond": 3, "bool": [1, 2, 3], "box": 2, "br": 3, "break": 3, "buffer_s": 3, "c": [1, 2, 3], "ca": 3, "cal_cen_of_weight": [1, 4], "cal_distance_between_cen_of_weight": [1, 4], "cal_eigenvalue_decomposit": [1, 4], "cal_min_dist": [1, 4], "cal_moment_of_inertia": [1, 4], "cal_pinv": [1, 2], "calc_cen_of_weight": [1, 3], "calc_reorgan": [1, 2], "calcul": [1, 3, 4], "can": 0, "carlo": [0, 1, 2], "cart_coord": 3, "cartesian": 3, "cd": 3, "ce": 3, "cell": [0, 2, 3], "cellsiz": 1, "center": [0, 1, 3], "central": 0, "cf": 3, "charg": 3, "check": [1, 2, 3], "check_error_term": [1, 2], "check_extension_log": [1, 2], "check_normal_termin": [1, 3], "check_reorganization_energy_complet": [1, 4], "check_transfer_integral_complet": [1, 4], "chemic": 0, "chk": 3, "chk_rwf_name": 3, "cif": [0, 1, 3], "cif_filenam": 0, "cif_path": 3, "cif_path_without_ext": 1, "cif_read": [1, 4], "cifread": [1, 3], "cl": 3, "class": [2, 3], "close": [1, 3], "cm": 3, "cn": 3, "co": 3, "code": 2, "coeffici": 2, "column": 3, "command": 2, "comment": 3, "compar": 1, "complet": 1, "comput": 0, "consid": [0, 1], "consum": 0, "contain": [1, 3], "content": 4, "continu": [0, 1], "convert": 3, "convert_cart_to_frac": [1, 3], "convert_frac_to_cart": [1, 3], "coordin": [1, 3], "coordinates1": 1, "coordinates2": 1, "coords1": 1, "coords2": 1, "correctli": 3, "covalent_radii": [1, 3], "covalent_radiu": 3, "cpu": [1, 3], "cpu_num": 3, "cr": 3, "creat": [0, 1, 3], "create_chk_fil": [1, 3], "create_reorg_gjf": [1, 4], "create_rwf_fil": [1, 3], "create_ti_gjf": [1, 4], "crystal": [0, 1, 3], "cu": 3, "cutoff": 2, "cycl": 3, "d": [0, 1, 2, 3], "db": 3, "decomposit": [1, 2], "default": [0, 1, 2, 3], "defin": 3, "demo": [1, 2], "depend": 0, "detail": [0, 2, 3], "detect": 3, "determin": 0, "deuterium": 3, "dict": [1, 3], "dictionari": [1, 3], "differ": [0, 1], "differenti": [0, 2], "diffus": 2, "diffusion_coefficient_tensor": [1, 2], "diffusion_coefficient_tensor_mc": [1, 2], "diffusion_coefficient_tensor_od": [1, 2], "dimer": 1, "direct": [0, 3], "directori": [1, 3], "disabl": 0, "distanc": [0, 1], "document": 3, "dtype": [1, 2, 3], "dummi": 3, "duplic": 3, "dy": 3, "e": 3, "each": 0, "eigenvalu": [0, 1, 2], "eigenvector": [0, 1], "electron": 0, "element": 3, "element_prop": [1, 3], "elementpropertiesisnotdefinederror": [1, 3], "elements_num": [1, 3], "email": 0, "enabl": 0, "end": 3, "energi": [0, 1, 2], "ensur": 0, "environ": 0, "equat": [0, 2], "er": 3, "error": 2, "etc": 3, "eu": 3, "ev": [1, 2], "exampl": [1, 3], "except": [1, 2, 3], "execut": [0, 2], "exist": [0, 1], "expand": [0, 1, 3], "expand_mol": [1, 3], "expand_rang": 3, "export": 3, "export_gjf": [1, 3], "export_mol_fil": [1, 3], "export_unit_cell_fil": [1, 3], "export_xyz_fil": [1, 3], "extens": [1, 2], "extension_log": 1, "extract": [2, 3], "extract_energi": [1, 2], "f": 3, "fals": [2, 3], "faster": 0, "fe": 3, "fellow": 0, "file": [0, 1, 2, 3], "file_nam": [1, 3], "file_path": 3, "fileio": [1, 3], "fileread": [1, 3], "fl": 3, "flerovium": 3, "float": [1, 2, 3], "float64": [1, 2, 3], "fm": 3, "format": 3, "fr": 3, "frac_coord": 3, "fraction": 3, "from": [0, 1, 2, 3], "fullcal": 1, "function": 3, "g16": 2, "ga": 3, "gau_com": 2, "gaus_log_read": [1, 4], "gaussian": [0, 1, 2, 3], "gaustermerror": [1, 2], "gb": [0, 1, 3], "gd": 3, "ge": 3, "gener": 3, "get": 1, "gillespi": 2, "git": 3, "github": 0, "given": 3, "gjf": [1, 2, 3], "gjf_basenam": 1, "gjf_file": [1, 2], "gjf_maker": [1, 4], "gjfmaker": [1, 3], "grant": 0, "group": 3, "h": [0, 3], "he": 3, "header": 3, "header1": 3, "header2": 3, "helium": 3, "help": 0, "hf": 3, "hg": 3, "high": 1, "hiroyuki": 0, "ho": 3, "homo": 0, "hop": 2, "hop_mcal": 1, "hopping_mobility_model": [1, 4], "hydrogen": 3, "i": [0, 1, 2, 3], "increas": 0, "index": [0, 3], "inertia": [0, 1], "inform": 3, "inner": 3, "input": 2, "int": [1, 2, 3], "integr": [0, 1, 2], "interrupt": 0, "invers": 2, "ion": [1, 2], "ir": 3, "is_output_detail": 2, "j": [2, 3], "jp": 0, "jp25kj0647": 0, "jsp": 0, "k": [2, 3], "kei": 3, "kinet": [0, 1], "koki": 0, "kr": 3, "la": 3, "laboratori": 0, "larg": 0, "larger": 0, "last": 2, "lattic": 2, "lead": 3, "level": 0, "li": 3, "librari": 0, "line": [2, 3], "link": 3, "list": [1, 2, 3], "liter": [1, 2, 3], "lithium": 3, "livermorium": 3, "log": [0, 1, 2, 3], "log_fil": 3, "lr": 3, "lu": 3, "lumo": 0, "lv": 3, "m": 1, "mai": 3, "main": [1, 2, 4], "make": 0, "manag": 3, "marcus_r": [1, 2], "match": 3, "matrix": [2, 3], "matsui": 0, "max_rat": 2, "max_step": 2, "maximum": 2, "mc": [1, 3], "md": 3, "mean": 2, "mem": 1, "mem_num": 3, "mem_unit": 3, "memori": [1, 3], "messag": 1, "method": 1, "mg": 3, "minimum": 1, "mit": 0, "mn": 3, "mo": 3, "mobil": [0, 1, 2], "mobility_tensor": [1, 2], "modul": [0, 4], "mol": 3, "molecul": [0, 2, 3], "molecular": 3, "moment": [0, 1], "monom": 1, "monomer1": 1, "monomer2": 1, "monomolecular": 3, "mont": [0, 1, 2], "more": 0, "moscovium": 3, "msg": [1, 2], "mt": 3, "mu": 1, "must": 0, "n": [0, 1, 2, 3], "na": 3, "name": [1, 2, 3], "nan": 3, "nb": 3, "nd": 3, "ndarrai": [1, 2, 3], "ne": 3, "neg": 2, "neighbor": 1, "neighbor_mol": 1, "nest": 3, "neutral": [1, 2], "newer": 0, "nh": 3, "ni": 3, "none": [1, 2, 3], "normal": [0, 1, 3], "np": [1, 2, 3], "number": [1, 2, 3], "numer": 2, "numpi": [0, 2], "o": 3, "object": [2, 3], "od": [1, 2], "offset": 3, "og": 3, "oganesson": 3, "one": [1, 2, 3], "onli": 2, "only_read": 2, "opt": [1, 3], "opt_ion": [1, 2], "opt_neutr": [1, 2], "optim": 3, "option": [1, 2, 3], "ordinari": [0, 2], "organ": [0, 2], "origin": 3, "osc_typ": [0, 1, 2], "osctypeerror": [1, 2, 4], "otherwis": 3, "outer": 3, "output": [2, 3], "output_detail": [1, 3], "ozawa": 0, "p": [1, 2, 3], "pa": 3, "packag": [0, 4], "page": 0, "pair": 0, "panda": 0, "paramet": [1, 2, 3], "parent_dir": [1, 3], "particl": 2, "path": [0, 1, 3], "pb": 3, "pd": 3, "period": 3, "pickl": 1, "pip": 0, "pkl": [0, 1], "pkl_filenam": 0, "pleas": 0, "pm": 3, "po": 3, "posixpath": 3, "pr": 3, "precis": 1, "print": [1, 2, 3], "print_mobl": [1, 4], "print_reorg_energi": [1, 4], "print_tensor": [1, 2, 4], "print_timestamp": [1, 2], "print_transfer_integr": [1, 4], "process": 0, "produc": 3, "project": 0, "properti": 3, "protactinium": 3, "pseudo": 2, "pt": 3, "pu": 3, "py": [1, 2], "python": [0, 1], "quantum": 0, "r": 1, "ra": 3, "rais": [2, 3], "rang": [0, 1], "rate": 2, "rb": 3, "rcal": [1, 4], "rcond": 2, "re": 3, "read": [1, 2, 3], "read_pickl": [1, 4], "reader": 3, "rel": 3, "releas": 0, "remov": 3, "remove_dupl": [1, 3], "remove_radical_flag": 3, "reorg_energi": 1, "reorgan": [0, 1, 2], "replac": 0, "repres": 3, "research": 0, "reset": 3, "reset_vari": [1, 3], "resourc": 1, "result": 1, "resum": 1, "return": [1, 2, 3], "reversed_readlin": [1, 3], "rf": 3, "rg": 3, "rh": 3, "rn": 3, "roel": 0, "root": 3, "row": 3, "rp": 1, "ru": 3, "run": [0, 1], "rwf": 3, "sampl": 3, "save": [0, 1, 3], "save_dir": [1, 3], "sb": 3, "sc": 3, "se": 3, "search": 0, "see": 0, "semiconductor": [0, 1, 2], "set": [1, 3], "set_charge_spin": [1, 3], "set_coordin": [1, 3], "set_funct": [1, 3], "set_resourc": [1, 3], "set_symbol": [1, 3], "set_titl": [1, 3], "sg": 3, "shape": 3, "should": 2, "si": 3, "significantli": 0, "sim_typ": 1, "simul": [1, 2], "singular": 2, "size": [0, 2], "skip": [1, 2], "skip_cal": 2, "skip_specified_c": 2, "sm": 3, "small": 2, "smaller": 0, "sn": 3, "solut": 2, "sourc": [1, 2, 3], "specifi": [0, 2], "speedup": [0, 1], "spin": 3, "sr": 3, "src": 3, "static": 2, "step": 2, "str": [1, 2, 3], "structur": [0, 3], "subaru": 3, "submodul": 4, "subpackag": 4, "suffici": 0, "supercel": [0, 1], "support": 0, "sure": 0, "symbol": [1, 3], "symbols1": 1, "symbols2": 1, "symmetri": 3, "symmetryisnotdefinederror": [1, 3], "system": 0, "t": [2, 3], "ta": 3, "tb": 3, "tc": 3, "tcal": 0, "te": 3, "temperatur": 2, "tennessin": 3, "tensor": [0, 1, 2], "term": 2, "termin": [0, 1, 2, 3], "th": [2, 3], "thi": [0, 2, 3], "thorium": 3, "ti": 3, "tight": 3, "timestamp": 2, "titl": 3, "tl": 3, "tm": 3, "tol": 3, "toler": 3, "tool": 0, "total": 2, "transfer": [0, 1, 2], "true": [1, 2, 3], "tupl": [1, 2, 3], "two": 1, "txt": 3, "type": [0, 1, 2, 3], "u": [0, 3], "under": 0, "union": 1, "uniqu": [1, 3], "unique_mol": 1, "unit": [0, 3], "univers": 0, "uranium": 3, "us": [0, 1, 2, 3], "usag": 1, "user": 3, "util": [1, 4], "v": 3, "valu": [1, 2, 3], "valueerror": 2, "vari": 0, "variabl": 3, "vdw_radiu": 3, "vector": [1, 2], "w": 3, "wa": [0, 2], "weight": [0, 1, 3], "when": 3, "while": 3, "widen": [0, 1], "within": 3, "without": [0, 1], "work": 0, "x": 3, "xe": 3, "xxx": [0, 1], "xxx_result": [0, 1], "xyz": 3, "y": 3, "yamagata": 0, "yb": 3, "you": 0, "your": 0, "yu": 0, "yz": 0, "z": 3, "zero": 2, "zn": 3, "zr": 3, "zvalueisnotmatcherror": [1, 3]}, "titles": ["mcal Documentation", "mcal package", "mcal.calculations package", "mcal.utils package", "mcal"], "titleterms": {"If": 0, "To": 0, "acknowledg": 0, "api": 0, "argument": 0, "author": 0, "basic": 0, "c": 0, "calcul": [0, 2], "cellsiz": 0, "cif_read": 3, "coeffici": 0, "compar": 0, "content": [1, 2, 3], "control": 0, "cpu": 0, "diffus": 0, "document": 0, "error": 0, "exampl": 0, "featur": 0, "fullcal": 0, "g": 0, "g09": 0, "gaus_log_read": 3, "gjf_maker": 3, "high": 0, "hopping_mobility_model": 2, "indic": 0, "instal": 0, "licens": 0, "m": 0, "manual": 0, "mc": 0, "mcal": [0, 1, 2, 3, 4], "mem": 0, "memori": 0, "method": 0, "midwai": 0, "modul": [1, 2, 3], "note": 0, "number": 0, "od": 0, "option": 0, "output": 0, "overview": 0, "p": 0, "packag": [1, 2, 3], "pickl": 0, "practic": 0, "precis": 0, "r": 0, "rcal": 2, "read": 0, "read_pickl": 0, "reduc": 0, "refer": 0, "requir": 0, "result": 0, "resum": 0, "reus": 0, "rp": 0, "set": 0, "shortag": 0, "standard": 0, "stop": 0, "submodul": [1, 2, 3], "subpackag": 1, "tabl": 0, "time": 0, "troubleshoot": 0, "usag": 0, "util": 3, "verifi": 0}})
1
+ Search.setIndex({"alltitles": {"--cellsize <number>": [[0, "cellsize-number"]], "--fullcal": [[0, "fullcal"]], "--mc": [[0, "mc"]], "--ode": [[0, "ode"]], "--resume": [[0, "resume"]], "-M, --method <method>": [[0, "m-method-method"]], "-c, --cpu <number>": [[0, "c-cpu-number"]], "-g, --g09": [[0, "g-g09"]], "-m, --mem <memory>": [[0, "m-mem-memory"]], "-p, --pickle": [[0, "p-pickle"]], "-r, --read": [[0, "r-read"]], "-rp, --read_pickle": [[0, "rp-read-pickle"]], "API Reference": [[0, "api-reference"], [0, null]], "Acknowledgements": [[0, "acknowledgements"]], "Authors": [[0, "authors"]], "Basic Calculations": [[0, "basic-calculations"]], "Basic Examples": [[0, "basic-examples"]], "Basic Usage": [[0, "basic-usage"]], "Calculation Control": [[0, "calculation-control"]], "Calculation Settings": [[0, "calculation-settings"]], "Comparing Diffusion Coefficients": [[0, "comparing-diffusion-coefficients"]], "Diffusion Coefficient Calculation Methods": [[0, "diffusion-coefficient-calculation-methods"]], "Features": [[0, "features"]], "High-Precision Calculations": [[0, "high-precision-calculations"]], "If calculation stops midway": [[0, "if-calculation-stops-midway"]], "Indices and Tables": [[0, "indices-and-tables"]], "Installation": [[0, "installation"]], "License": [[0, "license"]], "Memory shortage error": [[0, "memory-shortage-error"]], "Module contents": [[1, "module-mcal"], [2, "module-mcal.calculations"], [3, "module-mcal.utils"]], "Notes": [[0, "notes"]], "Options": [[0, "options"]], "Output": [[0, "output"]], "Output Settings": [[0, "output-settings"]], "Overview": [[0, "overview"]], "Practical Usage Examples": [[0, "practical-usage-examples"]], "Required Arguments": [[0, "required-arguments"]], "Requirements": [[0, "requirements"]], "Reusing Results": [[0, "reusing-results"]], "Standard Output": [[0, "standard-output"]], "Submodules": [[1, "submodules"], [2, "submodules"], [3, "submodules"]], "Subpackages": [[1, "subpackages"]], "To reduce calculation time": [[0, "to-reduce-calculation-time"]], "Troubleshooting": [[0, "troubleshooting"]], "Verify Installation": [[0, "verify-installation"]], "mcal": [[4, null]], "mcal Documentation": [[0, null]], "mcal Usage Manual": [[0, "mcal-usage-manual"]], "mcal package": [[1, null]], "mcal.calculations package": [[2, null]], "mcal.calculations.hopping_mobility_model module": [[2, "module-mcal.calculations.hopping_mobility_model"]], "mcal.calculations.rcal module": [[2, "module-mcal.calculations.rcal"]], "mcal.mcal module": [[1, "module-mcal.mcal"]], "mcal.utils package": [[3, null]], "mcal.utils.cif_reader module": [[3, "module-mcal.utils.cif_reader"]], "mcal.utils.gaus_log_reader module": [[3, "module-mcal.utils.gaus_log_reader"]], "mcal.utils.gjf_maker module": [[3, "module-mcal.utils.gjf_maker"]]}, "docnames": ["index", "mcal", "mcal.calculations", "mcal.utils", "modules"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.viewcode": 1}, "filenames": ["index.rst", "mcal.rst", "mcal.calculations.rst", "mcal.utils.rst", "modules.rst"], "indexentries": {"add_adjacency_mat() (mcal.utils.cif_reader.fileio method)": [[3, "mcal.utils.cif_reader.FileIO.add_adjacency_mat", false]], "add_coordinates() (mcal.utils.cif_reader.fileio method)": [[3, "mcal.utils.cif_reader.FileIO.add_coordinates", false]], "add_link() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.add_link", false]], "add_root() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.add_root", false]], "add_symbols() (mcal.utils.cif_reader.fileio method)": [[3, "mcal.utils.cif_reader.FileIO.add_symbols", false]], "atom_weight() (in module mcal.mcal)": [[1, "mcal.mcal.atom_weight", false]], "atomic_weights (mcal.utils.cif_reader.cifreader attribute)": [[3, "mcal.utils.cif_reader.CifReader.ATOMIC_WEIGHTS", false]], "cal_cen_of_weight() (in module mcal.mcal)": [[1, "mcal.mcal.cal_cen_of_weight", false]], "cal_distance_between_cen_of_weight() (in module mcal.mcal)": [[1, "mcal.mcal.cal_distance_between_cen_of_weight", false]], "cal_eigenvalue_decomposition() (in module mcal.mcal)": [[1, "mcal.mcal.cal_eigenvalue_decomposition", false]], "cal_min_distance() (in module mcal.mcal)": [[1, "mcal.mcal.cal_min_distance", false]], "cal_moment_of_inertia() (in module mcal.mcal)": [[1, "mcal.mcal.cal_moment_of_inertia", false]], "cal_pinv() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.cal_pinv", false]], "calc_cen_of_weight() (mcal.utils.cif_reader.cifreader method)": [[3, "mcal.utils.cif_reader.CifReader.calc_cen_of_weight", false]], "calc_reorganization() (mcal.calculations.rcal.rcal method)": [[2, "mcal.calculations.rcal.Rcal.calc_reorganization", false]], "check_error_term() (mcal.calculations.rcal.rcal static method)": [[2, "mcal.calculations.rcal.Rcal.check_error_term", false]], "check_extension_log() (mcal.calculations.rcal.rcal method)": [[2, "mcal.calculations.rcal.Rcal.check_extension_log", false]], "check_normal_termination() (in module mcal.utils.gaus_log_reader)": [[3, "mcal.utils.gaus_log_reader.check_normal_termination", false]], "check_reorganization_energy_completion() (in module mcal.mcal)": [[1, "mcal.mcal.check_reorganization_energy_completion", false]], "check_transfer_integral_completion() (in module mcal.mcal)": [[1, "mcal.mcal.check_transfer_integral_completion", false]], "cifreader (class in mcal.utils.cif_reader)": [[3, "mcal.utils.cif_reader.CifReader", false]], "close() (mcal.utils.gaus_log_reader.filereader method)": [[3, "mcal.utils.gaus_log_reader.FileReader.close", false]], "convert_cart_to_frac() (mcal.utils.cif_reader.cifreader method)": [[3, "mcal.utils.cif_reader.CifReader.convert_cart_to_frac", false]], "convert_frac_to_cart() (mcal.utils.cif_reader.cifreader method)": [[3, "mcal.utils.cif_reader.CifReader.convert_frac_to_cart", false]], "covalent_radii (mcal.utils.cif_reader.cifreader attribute)": [[3, "mcal.utils.cif_reader.CifReader.COVALENT_RADII", false]], "create_chk_file() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.create_chk_file", false]], "create_reorg_gjf() (in module mcal.mcal)": [[1, "mcal.mcal.create_reorg_gjf", false]], "create_rwf_file() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.create_rwf_file", false]], "create_ti_gjf() (in module mcal.mcal)": [[1, "mcal.mcal.create_ti_gjf", false]], "demo() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.demo", false]], "diffusion_coefficient_tensor() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor", false]], "diffusion_coefficient_tensor_mc() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor_MC", false]], "diffusion_coefficient_tensor_ode() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor_ODE", false]], "element_prop (mcal.utils.cif_reader.cifreader attribute)": [[3, "mcal.utils.cif_reader.CifReader.ELEMENT_PROP", false]], "element_prop (mcal.utils.gjf_maker.gjfmaker attribute)": [[3, "mcal.utils.gjf_maker.GjfMaker.ELEMENT_PROP", false]], "elementpropertiesisnotdefinederror": [[3, "mcal.utils.cif_reader.ElementPropertiesIsNotDefinedError", false]], "elements_num (mcal.utils.gjf_maker.gjfmaker attribute)": [[3, "mcal.utils.gjf_maker.GjfMaker.ELEMENTS_NUM", false]], "expand_mols() (mcal.utils.cif_reader.cifreader method)": [[3, "mcal.utils.cif_reader.CifReader.expand_mols", false]], "export_gjf() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.export_gjf", false]], "export_mol_file() (mcal.utils.cif_reader.fileio method)": [[3, "mcal.utils.cif_reader.FileIO.export_mol_file", false]], "export_unit_cell_file() (mcal.utils.cif_reader.cifreader method)": [[3, "mcal.utils.cif_reader.CifReader.export_unit_cell_file", false]], "export_xyz_file() (mcal.utils.cif_reader.fileio method)": [[3, "mcal.utils.cif_reader.FileIO.export_xyz_file", false]], "extract_energy() (mcal.calculations.rcal.rcal method)": [[2, "mcal.calculations.rcal.Rcal.extract_energy", false]], "fileio (class in mcal.utils.cif_reader)": [[3, "mcal.utils.cif_reader.FileIO", false]], "filereader (class in mcal.utils.gaus_log_reader)": [[3, "mcal.utils.gaus_log_reader.FileReader", false]], "gaustermerror": [[2, "mcal.calculations.rcal.GausTermError", false]], "gjfmaker (class in mcal.utils.gjf_maker)": [[3, "mcal.utils.gjf_maker.GjfMaker", false]], "main() (in module mcal.calculations.rcal)": [[2, "mcal.calculations.rcal.main", false]], "main() (in module mcal.mcal)": [[1, "mcal.mcal.main", false]], "marcus_rate() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.marcus_rate", false]], "mcal": [[1, "module-mcal", false]], "mcal.calculations": [[2, "module-mcal.calculations", false]], "mcal.calculations.hopping_mobility_model": [[2, "module-mcal.calculations.hopping_mobility_model", false]], "mcal.calculations.rcal": [[2, "module-mcal.calculations.rcal", false]], "mcal.mcal": [[1, "module-mcal.mcal", false]], "mcal.utils": [[3, "module-mcal.utils", false]], "mcal.utils.cif_reader": [[3, "module-mcal.utils.cif_reader", false]], "mcal.utils.gaus_log_reader": [[3, "module-mcal.utils.gaus_log_reader", false]], "mcal.utils.gjf_maker": [[3, "module-mcal.utils.gjf_maker", false]], "mobility_tensor() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.mobility_tensor", false]], "module": [[1, "module-mcal", false], [1, "module-mcal.mcal", false], [2, "module-mcal.calculations", false], [2, "module-mcal.calculations.hopping_mobility_model", false], [2, "module-mcal.calculations.rcal", false], [3, "module-mcal.utils", false], [3, "module-mcal.utils.cif_reader", false], [3, "module-mcal.utils.gaus_log_reader", false], [3, "module-mcal.utils.gjf_maker", false]], "opt() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.opt", false]], "osctypeerror": [[1, "mcal.mcal.OSCTypeError", false], [2, "mcal.calculations.rcal.OSCTypeError", false]], "output_detail() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.output_detail", false]], "parent_dir (mcal.utils.cif_reader.cifreader attribute)": [[3, "mcal.utils.cif_reader.CifReader.parent_dir", false]], "parent_dir (mcal.utils.gjf_maker.gjfmaker attribute)": [[3, "mcal.utils.gjf_maker.GjfMaker.parent_dir", false]], "print_mobility() (in module mcal.mcal)": [[1, "mcal.mcal.print_mobility", false]], "print_reorg_energy() (in module mcal.mcal)": [[1, "mcal.mcal.print_reorg_energy", false]], "print_tensor() (in module mcal.calculations.hopping_mobility_model)": [[2, "mcal.calculations.hopping_mobility_model.print_tensor", false]], "print_tensor() (in module mcal.mcal)": [[1, "mcal.mcal.print_tensor", false]], "print_timestamp() (mcal.calculations.rcal.rcal static method)": [[2, "mcal.calculations.rcal.Rcal.print_timestamp", false]], "print_transfer_integral() (in module mcal.mcal)": [[1, "mcal.mcal.print_transfer_integral", false]], "rcal (class in mcal.calculations.rcal)": [[2, "mcal.calculations.rcal.Rcal", false]], "read_pickle() (in module mcal.mcal)": [[1, "mcal.mcal.read_pickle", false]], "remove_duplicates() (mcal.utils.cif_reader.cifreader method)": [[3, "mcal.utils.cif_reader.CifReader.remove_duplicates", false]], "reset_variable() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.reset_variable", false]], "reversed_readline() (mcal.utils.gaus_log_reader.filereader method)": [[3, "mcal.utils.gaus_log_reader.FileReader.reversed_readline", false]], "set_charge_spin() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.set_charge_spin", false]], "set_coordinates() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.set_coordinates", false]], "set_function() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.set_function", false]], "set_resource() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.set_resource", false]], "set_symbols() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.set_symbols", false]], "set_title() (mcal.utils.gjf_maker.gjfmaker method)": [[3, "mcal.utils.gjf_maker.GjfMaker.set_title", false]], "symmetryisnotdefinederror": [[3, "mcal.utils.cif_reader.SymmetryIsNotDefinedError", false]], "zvalueisnotmatcherror": [[3, "mcal.utils.cif_reader.ZValueIsNotMatchError", false]]}, "objects": {"": [[1, 0, 0, "-", "mcal"]], "mcal": [[2, 0, 0, "-", "calculations"], [1, 0, 0, "-", "mcal"], [3, 0, 0, "-", "utils"]], "mcal.calculations": [[2, 0, 0, "-", "hopping_mobility_model"], [2, 0, 0, "-", "rcal"]], "mcal.calculations.hopping_mobility_model": [[2, 1, 1, "", "cal_pinv"], [2, 1, 1, "", "demo"], [2, 1, 1, "", "diffusion_coefficient_tensor"], [2, 1, 1, "", "diffusion_coefficient_tensor_MC"], [2, 1, 1, "", "diffusion_coefficient_tensor_ODE"], [2, 1, 1, "", "marcus_rate"], [2, 1, 1, "", "mobility_tensor"], [2, 1, 1, "", "print_tensor"]], "mcal.calculations.rcal": [[2, 2, 1, "", "GausTermError"], [2, 2, 1, "", "OSCTypeError"], [2, 3, 1, "", "Rcal"], [2, 1, 1, "", "main"]], "mcal.calculations.rcal.Rcal": [[2, 4, 1, "", "calc_reorganization"], [2, 4, 1, "", "check_error_term"], [2, 4, 1, "", "check_extension_log"], [2, 4, 1, "", "extract_energy"], [2, 4, 1, "", "print_timestamp"]], "mcal.mcal": [[1, 2, 1, "", "OSCTypeError"], [1, 1, 1, "", "atom_weight"], [1, 1, 1, "", "cal_cen_of_weight"], [1, 1, 1, "", "cal_distance_between_cen_of_weight"], [1, 1, 1, "", "cal_eigenvalue_decomposition"], [1, 1, 1, "", "cal_min_distance"], [1, 1, 1, "", "cal_moment_of_inertia"], [1, 1, 1, "", "check_reorganization_energy_completion"], [1, 1, 1, "", "check_transfer_integral_completion"], [1, 1, 1, "", "create_reorg_gjf"], [1, 1, 1, "", "create_ti_gjf"], [1, 1, 1, "", "main"], [1, 1, 1, "", "print_mobility"], [1, 1, 1, "", "print_reorg_energy"], [1, 1, 1, "", "print_tensor"], [1, 1, 1, "", "print_transfer_integral"], [1, 1, 1, "", "read_pickle"]], "mcal.utils": [[3, 0, 0, "-", "cif_reader"], [3, 0, 0, "-", "gaus_log_reader"], [3, 0, 0, "-", "gjf_maker"]], "mcal.utils.cif_reader": [[3, 3, 1, "", "CifReader"], [3, 2, 1, "", "ElementPropertiesIsNotDefinedError"], [3, 3, 1, "", "FileIO"], [3, 2, 1, "", "SymmetryIsNotDefinedError"], [3, 2, 1, "", "ZValueIsNotMatchError"]], "mcal.utils.cif_reader.CifReader": [[3, 5, 1, "", "ATOMIC_WEIGHTS"], [3, 5, 1, "", "COVALENT_RADII"], [3, 5, 1, "", "ELEMENT_PROP"], [3, 4, 1, "", "calc_cen_of_weight"], [3, 4, 1, "", "convert_cart_to_frac"], [3, 4, 1, "", "convert_frac_to_cart"], [3, 4, 1, "", "expand_mols"], [3, 4, 1, "", "export_unit_cell_file"], [3, 5, 1, "", "parent_dir"], [3, 4, 1, "", "remove_duplicates"]], "mcal.utils.cif_reader.FileIO": [[3, 4, 1, "", "add_adjacency_mat"], [3, 4, 1, "", "add_coordinates"], [3, 4, 1, "", "add_symbols"], [3, 4, 1, "", "export_mol_file"], [3, 4, 1, "", "export_xyz_file"]], "mcal.utils.gaus_log_reader": [[3, 3, 1, "", "FileReader"], [3, 1, 1, "", "check_normal_termination"]], "mcal.utils.gaus_log_reader.FileReader": [[3, 4, 1, "", "close"], [3, 4, 1, "", "reversed_readline"]], "mcal.utils.gjf_maker": [[3, 3, 1, "", "GjfMaker"]], "mcal.utils.gjf_maker.GjfMaker": [[3, 5, 1, "", "ELEMENTS_NUM"], [3, 5, 1, "", "ELEMENT_PROP"], [3, 4, 1, "", "add_link"], [3, 4, 1, "", "add_root"], [3, 4, 1, "", "create_chk_file"], [3, 4, 1, "", "create_rwf_file"], [3, 4, 1, "", "export_gjf"], [3, 4, 1, "", "opt"], [3, 4, 1, "", "output_detail"], [3, 5, 1, "", "parent_dir"], [3, 4, 1, "", "reset_variable"], [3, 4, 1, "", "set_charge_spin"], [3, 4, 1, "", "set_coordinates"], [3, 4, 1, "", "set_function"], [3, 4, 1, "", "set_resource"], [3, 4, 1, "", "set_symbols"], [3, 4, 1, "", "set_title"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "exception", "Python exception"], "3": ["py", "class", "Python class"], "4": ["py", "method", "Python method"], "5": ["py", "attribute", "Python attribute"]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:exception", "3": "py:class", "4": "py:method", "5": "py:attribute"}, "terms": {"": [2, 3], "0": [0, 2, 3], "00": 3, "0000": 3, "0001": 3, "001": 2, "0026": 3, "007": 3, "008": 3, "0080": 3, "01": 3, "011": 3, "0122": 3, "014": 3, "0140": 3, "02": 3, "03": 3, "0300": 3, "04": 3, "0400": 3, "05": [2, 3], "06": [2, 3], "07": 3, "078": 3, "08": 3, "085": 3, "09": 0, "098": 3, "1": [0, 1, 2, 3], "10": [0, 2, 3], "100": [2, 3], "10000": 2, "101": 3, "102": 3, "103": 3, "104": 3, "105": 3, "106": 3, "107": 3, "108": 3, "109": 3, "11": 3, "110": 3, "111": 3, "112": 3, "113": 3, "114": 3, "115": 3, "116": 3, "117": 3, "118": 3, "119": 3, "12": 3, "120": 3, "121": 3, "126": 3, "127": 3, "13": 3, "131": 3, "132": 3, "137": 3, "138": 3, "14": 3, "140": 3, "144": 3, "15": 3, "150": 3, "151": 3, "157": 3, "158": 3, "16": [0, 1, 3], "162": 3, "164": 3, "167": 3, "168": 3, "16gb": [0, 1], "17": 3, "173": 3, "174": 3, "178": 3, "18": 3, "180": 3, "183": 3, "186": 3, "19": 3, "190": 3, "192": 3, "195": 3, "196": 3, "1e": 2, "2": [0, 1, 2, 3], "20": 3, "200": [2, 3], "2000": 3, "2025": [2, 3], "2026": 3, "204": 3, "207": 3, "208": 3, "21": 3, "22": 3, "224": 3, "23": 3, "231": 3, "232": 3, "238": 3, "24": 3, "25": 3, "26": 3, "27": 3, "28": 3, "29": 3, "3": [0, 3], "30": 3, "300": 2, "305": 3, "31": 3, "311g": [0, 1], "31g": [0, 1], "32": [0, 3], "33": 3, "34": 3, "35": 3, "36": 3, "37": 3, "38": 3, "39": 3, "3x3": 2, "3x3x3": [0, 1], "4": [0, 1, 3], "40": [2, 3], "41": 3, "42": 3, "43": 3, "44": 3, "45": 3, "46": 3, "468": 3, "47": 3, "48": 3, "49": 3, "5": 3, "50": 3, "51": 3, "52": 3, "53": 3, "54": 3, "546": 3, "55": 3, "56": 3, "57": 3, "58": 3, "59": 3, "5x5x5": [0, 1], "6": [0, 1, 3], "60": 3, "61": 3, "62": 3, "63": 3, "64": 3, "65": 3, "66": 3, "67": 3, "68": 3, "69": 3, "693": 3, "7": 3, "70": 3, "71": 3, "72": 3, "723": 3, "73": 3, "74": 3, "75": 3, "76": 3, "77": 3, "78": 3, "79": 3, "798": 3, "7x7x7": 0, "8": [0, 1, 3], "80": 3, "81": 3, "8192": 3, "82": 3, "83": 3, "84": 3, "845": 3, "85": 3, "86": 3, "867": 3, "87": 3, "88": 3, "89": 3, "9": [0, 2, 3], "90": 3, "904": 3, "906": 3, "91": 3, "92": 3, "922": 3, "93": 3, "933": 3, "938": 3, "94": 3, "9400": 3, "942": 3, "95": 3, "956": 3, "96": 3, "97": 3, "971": 3, "974": 3, "98": 3, "9800": 3, "982": 3, "99": 3, "996": 3, "998": 3, "999": 3, "A": 3, "As": 3, "At": 3, "Be": 3, "For": [0, 3], "If": 3, "In": 3, "It": 0, "No": 3, "The": [0, 2, 3], "With": 1, "ac": [0, 3], "add": 3, "add_adjacency_mat": [1, 3], "add_coordin": [1, 3], "add_link": [1, 3], "add_root": [1, 3], "add_symbol": [1, 3], "adjac": 3, "adjacency_mat": 3, "after": 0, "ag": 3, "aid": 0, "al": 3, "algorithm": 2, "all": [0, 1, 2], "am": 3, "amount": 0, "ani": [1, 2, 3], "anisotropi": [0, 1], "anoth": 1, "ar": [0, 1, 3], "around": [0, 3], "arrai": [2, 3], "atom": [1, 3], "atom_weight": [1, 4], "atomic_weight": [1, 3], "au": 3, "awai": 3, "axi": 2, "b": [2, 3], "b3lyp": [0, 1], "ba": 3, "base": [1, 2, 3], "basenam": 1, "basi": 0, "basic": 1, "beta": 3, "between": [0, 1], "bh": 3, "bi": 3, "bismuth": 3, "bk": 3, "bond": 3, "bool": [1, 2, 3], "box": 2, "br": 3, "break": 3, "buffer_s": 3, "c": [1, 2, 3], "ca": 3, "cal_cen_of_weight": [1, 4], "cal_distance_between_cen_of_weight": [1, 4], "cal_eigenvalue_decomposit": [1, 4], "cal_min_dist": [1, 4], "cal_moment_of_inertia": [1, 4], "cal_pinv": [1, 2], "calc_cen_of_weight": [1, 3], "calc_reorgan": [1, 2], "calcul": [1, 3, 4], "can": 0, "carlo": [0, 1, 2], "cart_coord": 3, "cartesian": 3, "cd": 3, "ce": 3, "cell": [0, 2, 3], "cellsiz": 1, "center": [0, 1, 3], "central": 0, "cf": 3, "charg": 3, "check": [1, 2, 3], "check_error_term": [1, 2], "check_extension_log": [1, 2], "check_normal_termin": [1, 3], "check_reorganization_energy_complet": [1, 4], "check_transfer_integral_complet": [1, 4], "chemic": 0, "chk": 3, "chk_rwf_name": 3, "cif": [0, 1, 3], "cif_filenam": 0, "cif_path": 3, "cif_path_without_ext": 1, "cif_read": [1, 4], "cifread": [1, 3], "cl": 3, "class": [2, 3], "close": [1, 3], "cm": 3, "cn": 3, "co": 3, "code": 2, "coeffici": 2, "column": 3, "command": 2, "comment": 3, "compar": 1, "complet": 1, "comput": 0, "consid": [0, 1], "consum": 0, "contain": [1, 3], "content": 4, "continu": [0, 1], "convert": 3, "convert_cart_to_frac": [1, 3], "convert_frac_to_cart": [1, 3], "coordin": [1, 3], "coordinates1": 1, "coordinates2": 1, "coords1": 1, "coords2": 1, "correctli": 3, "covalent_radii": [1, 3], "covalent_radiu": 3, "cpu": [1, 3], "cpu_num": 3, "cr": 3, "creat": [0, 1, 3], "create_chk_fil": [1, 3], "create_reorg_gjf": [1, 4], "create_rwf_fil": [1, 3], "create_ti_gjf": [1, 4], "crystal": [0, 1, 3], "cu": 3, "cutoff": 2, "cycl": 3, "d": [0, 1, 2, 3], "db": 3, "decomposit": [1, 2], "default": [0, 1, 2, 3], "defin": 3, "demo": [1, 2], "depend": 0, "detail": [0, 2, 3], "detect": 3, "determin": 0, "deuterium": 3, "dict": [1, 3], "dictionari": [1, 3], "differ": [0, 1], "differenti": [0, 2], "diffus": 2, "diffusion_coefficient_tensor": [1, 2], "diffusion_coefficient_tensor_mc": [1, 2], "diffusion_coefficient_tensor_od": [1, 2], "dimer": 1, "direct": [0, 3], "directori": [1, 3], "disabl": 0, "distanc": [0, 1], "document": 3, "dtype": [1, 2, 3], "dummi": 3, "duplic": 3, "dy": 3, "e": 3, "each": 0, "eigenvalu": [0, 1, 2], "eigenvector": [0, 1], "electron": 0, "element": 3, "element_prop": [1, 3], "elementpropertiesisnotdefinederror": [1, 3], "elements_num": [1, 3], "email": 0, "enabl": 0, "end": 3, "energi": [0, 1, 2], "ensur": 0, "environ": 0, "equat": [0, 2], "er": 3, "error": 2, "etc": 3, "eu": 3, "ev": [1, 2], "exampl": [1, 3], "except": [1, 2, 3], "execut": [0, 2], "exist": [0, 1], "expand": [0, 1, 3], "expand_mol": [1, 3], "expand_rang": 3, "export": 3, "export_gjf": [1, 3], "export_mol_fil": [1, 3], "export_unit_cell_fil": [1, 3], "export_xyz_fil": [1, 3], "extens": [1, 2], "extension_log": 1, "extract": [2, 3], "extract_energi": [1, 2], "f": 3, "fals": [2, 3], "faster": 0, "fe": 3, "fellow": 0, "file": [0, 1, 2, 3], "file_nam": [1, 3], "file_path": 3, "fileio": [1, 3], "fileread": [1, 3], "fl": 3, "flerovium": 3, "float": [1, 2, 3], "float64": [1, 2, 3], "fm": 3, "format": 3, "fr": 3, "frac_coord": 3, "fraction": 3, "from": [0, 1, 2, 3], "fullcal": 1, "function": 3, "g16": 2, "ga": 3, "gau_com": 2, "gaus_log_read": [1, 4], "gaussian": [0, 1, 2, 3], "gaustermerror": [1, 2], "gb": [0, 1, 3], "gd": 3, "ge": 3, "gener": 3, "get": 1, "gillespi": 2, "git": 3, "github": 0, "given": 3, "gjf": [1, 2, 3], "gjf_basenam": 1, "gjf_file": [1, 2], "gjf_maker": [1, 4], "gjfmaker": [1, 3], "grant": 0, "group": 3, "h": [0, 3], "he": 3, "header": 3, "header1": 3, "header2": 3, "helium": 3, "help": 0, "hf": 3, "hg": 3, "high": 1, "hiroyuki": 0, "ho": 3, "homo": 0, "hop": 2, "hop_mcal": 1, "hopping_mobility_model": [1, 4], "hydrogen": 3, "i": [0, 1, 2, 3], "increas": 0, "index": [0, 3], "inertia": [0, 1], "inform": 3, "inner": 3, "input": 2, "int": [1, 2, 3], "integr": [0, 1, 2], "interrupt": 0, "invers": 2, "ion": [1, 2], "ir": 3, "is_output_detail": 2, "j": [2, 3], "jp": 0, "jp25kj0647": 0, "jsp": 0, "k": [2, 3], "kei": 3, "kinet": [0, 1], "koki": 0, "kr": 3, "la": 3, "laboratori": 0, "larg": 0, "larger": 0, "last": 2, "lattic": 2, "lead": 3, "level": 0, "li": 3, "librari": 0, "line": [2, 3], "link": 3, "list": [1, 2, 3], "liter": [1, 2, 3], "lithium": 3, "livermorium": 3, "log": [0, 1, 2, 3], "log_fil": 3, "lr": 3, "lu": 3, "lumo": 0, "lv": 3, "m": 1, "mai": 3, "main": [1, 2, 4], "make": 0, "manag": 3, "marcus_r": [1, 2], "match": 3, "matrix": [2, 3], "matsui": 0, "max_rat": 2, "max_step": 2, "maximum": 2, "mc": [1, 3], "md": 3, "mean": 2, "mem": 1, "mem_num": 3, "mem_unit": 3, "memori": [1, 3], "messag": 1, "method": 1, "mg": 3, "minimum": 1, "mit": 0, "mn": 3, "mo": 3, "mobil": [0, 1, 2], "mobility_tensor": [1, 2], "modul": [0, 4], "mol": 3, "molecul": [0, 2, 3], "molecular": 3, "moment": [0, 1], "monom": 1, "monomer1": 1, "monomer2": 1, "monomolecular": 3, "mont": [0, 1, 2], "more": 0, "moscovium": 3, "msg": [1, 2], "mt": 3, "mu": 1, "must": 0, "n": [0, 1, 2, 3], "na": 3, "name": [1, 2, 3], "nan": 3, "nb": 3, "nd": 3, "ndarrai": [1, 2, 3], "ne": 3, "neg": 2, "neighbor": 1, "neighbor_mol": 1, "nest": 3, "neutral": [1, 2], "newer": 0, "nh": 3, "ni": 3, "none": [1, 2, 3], "normal": [0, 1, 3], "np": [1, 2, 3], "number": [1, 2, 3], "numer": 2, "numpi": [0, 2], "o": 3, "object": [2, 3], "od": [1, 2], "offset": 3, "og": 3, "oganesson": 3, "one": [1, 2, 3], "onli": 2, "only_read": 2, "opt": [1, 3], "opt_ion": [1, 2], "opt_neutr": [1, 2], "optim": 3, "option": [1, 2, 3], "ordinari": [0, 2], "organ": [0, 2], "origin": 3, "osc_typ": [0, 1, 2], "osctypeerror": [1, 2, 4], "otherwis": 3, "outer": 3, "output": [2, 3], "output_detail": [1, 3], "ozawa": 0, "p": [1, 2, 3], "pa": 3, "packag": [0, 4], "page": 0, "pair": 0, "panda": 0, "paramet": [1, 2, 3], "parent_dir": [1, 3], "particl": 2, "path": [0, 1, 3], "pb": 3, "pd": 3, "period": 3, "pickl": 1, "pip": 0, "pkl": [0, 1], "pkl_filenam": 0, "pleas": 0, "pm": 3, "po": 3, "posixpath": 3, "pr": 3, "precis": 1, "print": [1, 2, 3], "print_mobl": [1, 4], "print_reorg_energi": [1, 4], "print_tensor": [1, 2, 4], "print_timestamp": [1, 2], "print_transfer_integr": [1, 4], "process": 0, "produc": 3, "project": 0, "properti": 3, "protactinium": 3, "pseudo": 2, "pt": 3, "pu": 3, "py": [1, 2], "python": [0, 1], "quantum": 0, "r": 1, "ra": 3, "rais": [2, 3], "rang": [0, 1], "rate": 2, "rb": 3, "rcal": [1, 4], "rcond": 2, "re": 3, "read": [1, 2, 3], "read_pickl": [1, 4], "reader": 3, "rel": 3, "releas": 0, "remov": 3, "remove_dupl": [1, 3], "remove_radical_flag": 3, "reorg_energi": 1, "reorgan": [0, 1, 2], "replac": 0, "repres": 3, "research": 0, "reset": 3, "reset_vari": [1, 3], "resourc": 1, "result": 1, "resum": 1, "return": [1, 2, 3], "reversed_readlin": [1, 3], "rf": 3, "rg": 3, "rh": 3, "rn": 3, "roel": 0, "root": 3, "row": 3, "rp": 1, "ru": 3, "run": [0, 1], "rwf": 3, "sampl": 3, "save": [0, 1, 3], "save_dir": [1, 3], "sb": 3, "sc": 3, "se": 3, "search": 0, "see": 0, "semiconductor": [0, 1, 2], "set": [1, 3], "set_charge_spin": [1, 3], "set_coordin": [1, 3], "set_funct": [1, 3], "set_resourc": [1, 3], "set_symbol": [1, 3], "set_titl": [1, 3], "sg": 3, "shape": 3, "should": 2, "si": 3, "significantli": 0, "sim_typ": 1, "simul": [1, 2], "singular": 2, "size": [0, 2], "skip": [1, 2], "skip_cal": 2, "skip_specified_c": 2, "sm": 3, "small": 2, "smaller": 0, "sn": 3, "solut": 2, "sourc": [1, 2, 3], "specifi": [0, 2], "speedup": [0, 1], "spin": 3, "sr": 3, "src": 3, "static": 2, "step": 2, "str": [1, 2, 3], "structur": [0, 3], "subaru": 3, "submodul": 4, "subpackag": 4, "suffici": 0, "supercel": [0, 1], "support": 0, "sure": 0, "symbol": [1, 3], "symbols1": 1, "symbols2": 1, "symmetri": 3, "symmetryisnotdefinederror": [1, 3], "system": 0, "t": [2, 3], "ta": 3, "tb": 3, "tc": 3, "tcal": 0, "te": 3, "temperatur": 2, "tennessin": 3, "tensor": [0, 1, 2], "term": 2, "termin": [0, 1, 2, 3], "th": [2, 3], "thi": [0, 2, 3], "thorium": 3, "ti": 3, "tight": 3, "timestamp": 2, "titl": 3, "tl": 3, "tm": 3, "tol": 3, "toler": 3, "tool": 0, "total": 2, "transfer": [0, 1, 2], "true": [1, 2, 3], "tupl": [1, 2, 3], "two": 1, "txt": 3, "type": [0, 1, 2, 3], "u": [0, 3], "under": 0, "union": 1, "uniqu": [1, 3], "unique_mol": 1, "unit": [0, 3], "univers": 0, "uranium": 3, "us": [0, 1, 2, 3], "usag": 1, "user": 3, "util": [1, 4], "v": 3, "valu": [1, 2, 3], "valueerror": 2, "vari": 0, "variabl": 3, "vdw_radiu": 3, "vector": [1, 2], "w": 3, "wa": [0, 2], "weight": [0, 1, 3], "when": 3, "while": 3, "widen": [0, 1], "within": 3, "without": [0, 1], "work": 0, "x": 3, "xe": 3, "xxx": [0, 1], "xxx_result": [0, 1], "xyz": 3, "y": 3, "yamagata": 0, "yb": 3, "you": 0, "your": 0, "yu": 0, "yz": 0, "z": 3, "zero": 2, "zn": 3, "zr": 3, "zvalueisnotmatcherror": [1, 3]}, "titles": ["mcal Documentation", "mcal package", "mcal.calculations package", "mcal.utils package", "mcal"], "titleterms": {"If": 0, "To": 0, "acknowledg": 0, "api": 0, "argument": 0, "author": 0, "basic": 0, "c": 0, "calcul": [0, 2], "cellsiz": 0, "cif_read": 3, "coeffici": 0, "compar": 0, "content": [1, 2, 3], "control": 0, "cpu": 0, "diffus": 0, "document": 0, "error": 0, "exampl": 0, "featur": 0, "fullcal": 0, "g": 0, "g09": 0, "gaus_log_read": 3, "gjf_maker": 3, "high": 0, "hopping_mobility_model": 2, "indic": 0, "instal": 0, "licens": 0, "m": 0, "manual": 0, "mc": 0, "mcal": [0, 1, 2, 3, 4], "mem": 0, "memori": 0, "method": 0, "midwai": 0, "modul": [1, 2, 3], "note": 0, "number": 0, "od": 0, "option": 0, "output": 0, "overview": 0, "p": 0, "packag": [1, 2, 3], "pickl": 0, "practic": 0, "precis": 0, "r": 0, "rcal": 2, "read": 0, "read_pickl": 0, "reduc": 0, "refer": 0, "requir": 0, "result": 0, "resum": 0, "reus": 0, "rp": 0, "set": 0, "shortag": 0, "standard": 0, "stop": 0, "submodul": [1, 2, 3], "subpackag": 1, "tabl": 0, "time": 0, "troubleshoot": 0, "usag": 0, "util": 3, "verifi": 0}})
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "yu-mcal"
3
- version = "0.1.4"
3
+ version = "0.1.6"
4
4
  description = "Program for the calculation of mobility tensor for organic semiconductor crystals"
5
5
  requires-python = ">=3.9"
6
6
  dependencies = [
@@ -140,7 +140,7 @@ def main():
140
140
  cif_path_without_ext = f'{directory}/{filename}'
141
141
 
142
142
  print('----------------------------------------')
143
- print(' mcal 0.1.4 (2026/01/20) by Matsui Lab. ')
143
+ print(' mcal 0.1.6 (2026/01/29) by Matsui Lab. ')
144
144
  print('----------------------------------------')
145
145
 
146
146
  if args.read_pickle:
@@ -471,8 +471,8 @@ def cal_eigenvalue_decomposition(mobility_tensor: NDArray[np.float64]) -> Tuple[
471
471
  Tuple[NDArray[np.float64], NDArray[np.float64]]
472
472
  Eigenvalue(mobility value) and eigenvector(mobility vector)
473
473
  """
474
- value, vector = np.linalg.eig(mobility_tensor)
475
- return value, vector
474
+ value, vector = np.linalg.eigh(mobility_tensor)
475
+ return value[::-1], vector[:, ::-1]
476
476
 
477
477
 
478
478
  def cal_min_distance(
@@ -1,10 +1,11 @@
1
- """CifReader beta (2025/10/30)"""
1
+ """CifReader beta (2026/01/29)"""
2
2
  import os
3
3
  import re
4
+ import warnings
5
+ from collections import deque
4
6
  from itertools import product
5
7
  from pathlib import Path
6
8
  from typing import Dict, List, Literal, Tuple
7
- import warnings
8
9
 
9
10
  import numpy as np
10
11
  import pandas as pd
@@ -67,13 +68,26 @@ class CifReader:
67
68
  self._make_adjacency_mat()
68
69
  self._split_mols()
69
70
  self._put_unit_cell()
71
+ self._unwrap_molecules()
72
+ self._put_unit_cell()
73
+ # Remove duplicates again as they may occur when moving atoms into the unit cell
70
74
  self.sym_symbols, self.sym_coords = self.remove_duplicates(self.sym_symbols, self.sym_coords)
71
75
  self._make_adjacency_mat()
72
76
  self._split_mols()
73
77
  self._calc_z_value()
74
78
 
75
79
  if self._ref_z_value != 0 and self.z_value != self._ref_z_value:
76
- raise ZValueIsNotMatchError('Z value is not match.')
80
+ raise ZValueIsNotMatchError(
81
+ f'Z value is not match. Z value in cif file is {self._ref_z_value}, but calculated Z value is {self.z_value}.'
82
+ )
83
+
84
+ def _apply_minimum_image(self):
85
+ """Apply minimum image convention."""
86
+ frac_diff = self.sym_coords[:, np.newaxis, :] - self.sym_coords[np.newaxis, :, :]
87
+ frac_diff = frac_diff - np.round(frac_diff)
88
+ cart_diff = np.dot(frac_diff, self.lattice)
89
+ distance = np.linalg.norm(cart_diff, axis=-1)
90
+ return distance
77
91
 
78
92
  def _calc_lattice(self):
79
93
  """Calculate lattice."""
@@ -128,7 +142,7 @@ class CifReader:
128
142
  num_atoms = len(self.sym_symbols)
129
143
  self.adjacency_mat = np.zeros((num_atoms, num_atoms), dtype=bool)
130
144
 
131
- self.cart_coords = np.dot(self.sym_coords, self.lattice)
145
+ distance = self._apply_minimum_image()
132
146
 
133
147
  try:
134
148
  covalent_distance = np.array([self.COVALENT_RADII[symbol] for symbol in self.sym_symbols]) \
@@ -136,7 +150,6 @@ class CifReader:
136
150
  except KeyError:
137
151
  raise ElementPropertiesIsNotDefinedError('Element properties is not defined.')
138
152
 
139
- distance = np.linalg.norm(self.cart_coords[:, np.newaxis, :] - self.cart_coords[np.newaxis, :, :], axis=-1)
140
153
  self.adjacency_mat[(distance <= covalent_distance * 1.3) & (distance != 0)] = 1
141
154
 
142
155
  def _operate_sym(self) -> None:
@@ -293,10 +306,11 @@ class CifReader:
293
306
  if '?' not in tmp_atom_data[atom_data_index['_atom_site_label']]:
294
307
  if atom_data_index['_atom_site_type_symbol'] is None:
295
308
  symbol_label = tmp_atom_data[atom_data_index['_atom_site_label']]
296
- symbol = symbol_label
297
- for s in ['A', 'B', 'C']:
298
- symbol = symbol.replace(s, '')
299
- symbol = re.sub(r'\d+', '', symbol)
309
+ symbol = re.match(r'[A-Z][a-z]?', symbol_label)
310
+ if symbol:
311
+ symbol = symbol.group(0)
312
+ else:
313
+ raise ValueError(f'Symbol label {symbol_label} is not valid.')
300
314
  else:
301
315
  symbol_label = tmp_atom_data[atom_data_index['_atom_site_label']]
302
316
  symbol = tmp_atom_data[atom_data_index['_atom_site_type_symbol']]
@@ -310,11 +324,10 @@ class CifReader:
310
324
  # get symmetry operation information
311
325
  elif is_read_sym:
312
326
  if "'" in line:
313
- line = list(map(lambda x: x.strip().replace(' ', ''), line.split("'")))
314
- self.symmetry_pos.append(line[symmetry_data_index].lower())
327
+ line = list(map(lambda x: x.strip().replace(' ', '').replace("'", ""), line.split()))
315
328
  else:
316
329
  line = list(map(lambda x: x.strip().replace(' ', ''), line.split()))
317
- self.symmetry_pos.append(line[symmetry_data_index].lower())
330
+ self.symmetry_pos.append(line[symmetry_data_index].lower())
318
331
 
319
332
  self.symbols = np.array(self.symbols)
320
333
  self.coordinates = np.array(self.coordinates)
@@ -359,6 +372,35 @@ class CifReader:
359
372
  sub_matrix = self.adjacency_mat[np.ix_(index_group, index_group)]
360
373
  self.sub_matrices.append(sub_matrix)
361
374
 
375
+ def _unwrap_molecules(self):
376
+ """Unwrap molecules using the adjacency matrix based on the minimum image convention."""
377
+ for atom_group in self.bonded_atoms:
378
+ if len(atom_group) <= 1:
379
+ continue
380
+
381
+ criterion_idx = atom_group[0]
382
+
383
+ # Depth-first search
384
+ visited = {criterion_idx}
385
+ stack = deque([criterion_idx])
386
+
387
+ while stack:
388
+ current_idx = stack.popleft()
389
+ current_coord = self.sym_coords[current_idx]
390
+
391
+ for neighbor_idx in atom_group:
392
+ if neighbor_idx in visited:
393
+ continue
394
+
395
+ if self.adjacency_mat[current_idx, neighbor_idx]:
396
+ # Minimum image convention
397
+ frac_diff = self.sym_coords[neighbor_idx] - current_coord
398
+ frac_diff = frac_diff - np.round(frac_diff)
399
+ self.sym_coords[neighbor_idx] = current_coord + frac_diff
400
+
401
+ visited.add(neighbor_idx)
402
+ stack.append(neighbor_idx)
403
+
362
404
  def calc_cen_of_weight(self, coordinates: NDArray[np.float64]) -> NDArray[np.float64]:
363
405
  """Calculate center of weight.
364
406
 
@@ -1244,7 +1244,7 @@ wheels = [
1244
1244
 
1245
1245
  [[package]]
1246
1246
  name = "yu-mcal"
1247
- version = "0.1.4"
1247
+ version = "0.1.6"
1248
1248
  source = { editable = "." }
1249
1249
  dependencies = [
1250
1250
  { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes