yu-mcal 0.2.1__tar.gz → 0.3.1__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 (73) hide show
  1. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/PKG-INFO +1 -17
  2. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/README.md +0 -16
  3. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/README_ja.md +0 -16
  4. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_modules/mcal/calculations/hopping_mobility_model.html +13 -19
  5. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_modules/mcal/mcal.html +7 -11
  6. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_modules/mcal/utils/cif_reader.html +3 -3
  7. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_sources/index.rst.txt +0 -25
  8. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/genindex.html +1 -5
  9. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/index.html +0 -30
  10. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/mcal.calculations.html +1 -48
  11. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/mcal.html +0 -7
  12. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/mcal.utils.html +1 -1
  13. yu_mcal-0.3.1/docs/objects.inv +0 -0
  14. yu_mcal-0.3.1/docs/searchindex.js +1 -0
  15. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/source/index.rst +0 -25
  16. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/pyproject.toml +1 -1
  17. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/calculations/hopping_mobility_model.py +11 -11
  18. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/mcal.py +7 -11
  19. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/utils/cif_reader.py +3 -3
  20. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/uv.lock +1 -1
  21. yu_mcal-0.2.1/docs/objects.inv +0 -0
  22. yu_mcal-0.2.1/docs/searchindex.js +0 -1
  23. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/.gitignore +0 -0
  24. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/.python-version +0 -0
  25. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/LICENSE +0 -0
  26. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/.nojekyll +0 -0
  27. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_modules/index.html +0 -0
  28. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_modules/mcal/calculations/rcal.html +0 -0
  29. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_modules/mcal/utils/gaus_log_reader.html +0 -0
  30. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_modules/mcal/utils/gjf_maker.html +0 -0
  31. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_sources/mcal.calculations.rst.txt +0 -0
  32. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_sources/mcal.rst.txt +0 -0
  33. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_sources/mcal.utils.rst.txt +0 -0
  34. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_sources/modules.rst.txt +0 -0
  35. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/autodoc_pydantic.css +0 -0
  36. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/basic.css +0 -0
  37. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/debug.css +0 -0
  38. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/doctools.js +0 -0
  39. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/documentation_options.js +0 -0
  40. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/file.png +0 -0
  41. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/language_data.js +0 -0
  42. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/minus.png +0 -0
  43. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/plus.png +0 -0
  44. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/pygments.css +0 -0
  45. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/scripts/furo-extensions.js +0 -0
  46. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/scripts/furo.js +0 -0
  47. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/scripts/furo.js.LICENSE.txt +0 -0
  48. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/scripts/furo.js.map +0 -0
  49. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/searchtools.js +0 -0
  50. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/skeleton.css +0 -0
  51. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/sphinx_highlight.js +0 -0
  52. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/styles/furo-extensions.css +0 -0
  53. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/styles/furo-extensions.css.map +0 -0
  54. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/styles/furo.css +0 -0
  55. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/styles/furo.css.map +0 -0
  56. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/modules.html +0 -0
  57. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/py-modindex.html +0 -0
  58. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/search.html +0 -0
  59. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/Makefile +0 -0
  60. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/make.bat +0 -0
  61. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/source/conf.py +0 -0
  62. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/source/mcal.calculations.rst +0 -0
  63. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/source/mcal.rst +0 -0
  64. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/source/mcal.utils.rst +0 -0
  65. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/source/modules.rst +0 -0
  66. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/requirements.txt +0 -0
  67. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/__init__.py +0 -0
  68. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/calculations/__init__.py +0 -0
  69. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/calculations/rcal.py +0 -0
  70. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/constants/element_properties.csv +0 -0
  71. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/utils/__init__.py +0 -0
  72. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/utils/gaus_log_reader.py +0 -0
  73. {yu_mcal-0.2.1 → yu_mcal-0.3.1}/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.2.1
3
+ Version: 0.3.1
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>
@@ -167,16 +167,6 @@ Plot mobility tensor as a 2D polar plot on specified crystallographic plane.
167
167
  - `mcal xxx.cif p --plot-plane ab` (plot on ab-plane)
168
168
  - `mcal xxx.cif p --plot-plane bc` (plot on bc-plane)
169
169
 
170
- ### Diffusion Coefficient Calculation Methods
171
-
172
- #### `--mc`
173
- Calculate diffusion coefficient tensor using kinetic Monte Carlo method.
174
- - **Example**: `mcal xxx.cif p --mc`
175
-
176
- #### `--ode`
177
- Calculate diffusion coefficient tensor using Ordinary Differential Equation method.
178
- - **Example**: `mcal xxx.cif p --ode`
179
-
180
170
  ## Practical Usage Examples
181
171
 
182
172
  ### Basic Calculations
@@ -215,12 +205,6 @@ mcal xxx.cif p --resume
215
205
  mcal xxx.cif p -p
216
206
  ```
217
207
 
218
- ### Comparing Diffusion Coefficients
219
- ```bash
220
- # Compare with normal calculation + kinetic Monte Carlo + ODE methods
221
- mcal xxx.cif p --mc --ode
222
- ```
223
-
224
208
  ## Output
225
209
 
226
210
  ### Standard Output
@@ -119,16 +119,6 @@ Plot mobility tensor as a 2D polar plot on specified crystallographic plane.
119
119
  - `mcal xxx.cif p --plot-plane ab` (plot on ab-plane)
120
120
  - `mcal xxx.cif p --plot-plane bc` (plot on bc-plane)
121
121
 
122
- ### Diffusion Coefficient Calculation Methods
123
-
124
- #### `--mc`
125
- Calculate diffusion coefficient tensor using kinetic Monte Carlo method.
126
- - **Example**: `mcal xxx.cif p --mc`
127
-
128
- #### `--ode`
129
- Calculate diffusion coefficient tensor using Ordinary Differential Equation method.
130
- - **Example**: `mcal xxx.cif p --ode`
131
-
132
122
  ## Practical Usage Examples
133
123
 
134
124
  ### Basic Calculations
@@ -167,12 +157,6 @@ mcal xxx.cif p --resume
167
157
  mcal xxx.cif p -p
168
158
  ```
169
159
 
170
- ### Comparing Diffusion Coefficients
171
- ```bash
172
- # Compare with normal calculation + kinetic Monte Carlo + ODE methods
173
- mcal xxx.cif p --mc --ode
174
- ```
175
-
176
160
  ## Output
177
161
 
178
162
  ### Standard Output
@@ -120,16 +120,6 @@ Gaussianを実行せずに既存のlogファイルから結果を読み取りま
120
120
  - `mcal xxx.cif p --plot-plane ab`(ab面にプロット)
121
121
  - `mcal xxx.cif p --plot-plane bc`(bc面にプロット)
122
122
 
123
- ### 拡散係数計算手法
124
-
125
- #### `--mc`
126
- モンテカルロ法を使用して拡散係数テンソルを計算します。(テスト用)
127
- - **例**: `mcal xxx.cif p --mc`
128
-
129
- #### `--ode`
130
- 常微分方程式法を使用して拡散係数テンソルを計算します。(テスト用)
131
- - **例**: `mcal xxx.cif p --ode`
132
-
133
123
  ## 使用例
134
124
 
135
125
  ### 基本的な計算
@@ -168,12 +158,6 @@ mcal xxx.cif p --resume
168
158
  mcal xxx.cif p -p
169
159
  ```
170
160
 
171
- ### 拡散係数の比較
172
- ```bash
173
- # 通常計算 + モンテカルロ法 + ODEで比較
174
- mcal xxx.cif p --mc --ode
175
- ```
176
-
177
161
  ## 出力
178
162
 
179
163
  ### 標準出力
@@ -233,7 +233,7 @@
233
233
  </div>
234
234
  <article role="main" id="furo-main-content">
235
235
  <h1>Source code for mcal.calculations.hopping_mobility_model</h1><div class="highlight"><pre>
236
- <span></span><span class="sd">&quot;&quot;&quot;hopping_mobility_model.py (2025/10/06)&quot;&quot;&quot;</span>
236
+ <span></span><span class="sd">&quot;&quot;&quot;hopping_mobility_model.py (2026/01/29)&quot;&quot;&quot;</span>
237
237
  <span class="kn">import</span><span class="w"> </span><span class="nn">math</span>
238
238
  <span class="kn">import</span><span class="w"> </span><span class="nn">random</span>
239
239
  <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">List</span><span class="p">,</span> <span class="n">Tuple</span>
@@ -259,11 +259,11 @@
259
259
  <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">D</span><span class="p">:</span>
260
260
  <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
261
261
  <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Diffusion coefficient tensor (ODE):&quot;</span><span class="p">)</span>
262
- <span class="n">D_ode</span> <span class="o">=</span> <span class="n">diffusion_coefficient_tensor_ODE</span><span class="p">(</span><span class="n">lattice</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
262
+ <span class="n">D_ode</span> <span class="o">=</span> <span class="n">_diffusion_coefficient_tensor_ODE</span><span class="p">(</span><span class="n">lattice</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
263
263
  <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">D_ode</span><span class="p">:</span>
264
264
  <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
265
265
  <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Diffusion coefficient tensor (MC):&quot;</span><span class="p">)</span>
266
- <span class="n">D_mc</span> <span class="o">=</span> <span class="n">diffusion_coefficient_tensor_MC</span><span class="p">(</span><span class="n">lattice</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
266
+ <span class="n">D_mc</span> <span class="o">=</span> <span class="n">_diffusion_coefficient_tensor_MC</span><span class="p">(</span><span class="n">lattice</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
267
267
  <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">D_mc</span><span class="p">:</span>
268
268
  <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
269
269
 
@@ -280,11 +280,11 @@
280
280
  <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">D</span><span class="p">:</span>
281
281
  <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
282
282
  <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Diffusion coefficient tensor (ODE):&quot;</span><span class="p">)</span>
283
- <span class="n">D_ode</span> <span class="o">=</span> <span class="n">diffusion_coefficient_tensor_ODE</span><span class="p">(</span><span class="n">lattice</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
283
+ <span class="n">D_ode</span> <span class="o">=</span> <span class="n">_diffusion_coefficient_tensor_ODE</span><span class="p">(</span><span class="n">lattice</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
284
284
  <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">D_ode</span><span class="p">:</span>
285
285
  <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
286
286
  <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Diffusion coefficient tensor (MC):&quot;</span><span class="p">)</span>
287
- <span class="n">D_mc</span> <span class="o">=</span> <span class="n">diffusion_coefficient_tensor_MC</span><span class="p">(</span><span class="n">lattice</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
287
+ <span class="n">D_mc</span> <span class="o">=</span> <span class="n">_diffusion_coefficient_tensor_MC</span><span class="p">(</span><span class="n">lattice</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
288
288
  <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">D_mc</span><span class="p">:</span>
289
289
  <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
290
290
 
@@ -307,11 +307,11 @@
307
307
  <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">D</span><span class="p">:</span>
308
308
  <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
309
309
  <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Diffusion coefficient tensor (ODE):&quot;</span><span class="p">)</span>
310
- <span class="n">D_ode</span> <span class="o">=</span> <span class="n">diffusion_coefficient_tensor_ODE</span><span class="p">(</span><span class="n">lattice</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
310
+ <span class="n">D_ode</span> <span class="o">=</span> <span class="n">_diffusion_coefficient_tensor_ODE</span><span class="p">(</span><span class="n">lattice</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
311
311
  <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">D_ode</span><span class="p">:</span>
312
312
  <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
313
313
  <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Diffusion coefficient tensor (MC):&quot;</span><span class="p">)</span>
314
- <span class="n">D_mc</span> <span class="o">=</span> <span class="n">diffusion_coefficient_tensor_MC</span><span class="p">(</span><span class="n">lattice</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
314
+ <span class="n">D_mc</span> <span class="o">=</span> <span class="n">_diffusion_coefficient_tensor_MC</span><span class="p">(</span><span class="n">lattice</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
315
315
  <span class="k">for</span> <span class="n">d</span> <span class="ow">in</span> <span class="n">D_mc</span><span class="p">:</span>
316
316
  <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">d</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span><span class="si">:</span><span class="s2">9.6f</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span></div>
317
317
 
@@ -470,12 +470,10 @@
470
470
 
471
471
 
472
472
 
473
- <div class="viewcode-block" id="diffusion_coefficient_tensor_ODE">
474
- <a class="viewcode-back" href="../../../mcal.calculations.html#mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor_ODE">[docs]</a>
475
- <span class="k">def</span><span class="w"> </span><span class="nf">diffusion_coefficient_tensor_ODE</span><span class="p">(</span>
473
+ <span class="k">def</span><span class="w"> </span><span class="nf">_diffusion_coefficient_tensor_ODE</span><span class="p">(</span>
476
474
  <span class="n">lattice</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>
477
475
  <span class="n">hop</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">int</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">]],</span>
478
- <span class="n">max_steps</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">200</span><span class="p">,</span>
476
+ <span class="n">max_steps</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">10000</span><span class="p">,</span>
479
477
  <span class="n">size</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">40</span><span class="p">,</span>
480
478
  <span class="n">max_rate</span><span class="p">:</span> <span class="nb">float</span> <span class="o">=</span> <span class="mf">0.05</span>
481
479
  <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>
@@ -529,16 +527,13 @@
529
527
  <span class="n">avg_outer_product</span> <span class="o">+=</span> <span class="n">prob</span><span class="p">[</span><span class="n">i</span><span class="p">,</span> <span class="n">j</span><span class="p">,</span> <span class="n">k</span><span class="p">,</span> <span class="n">l</span><span class="p">]</span> <span class="o">*</span> <span class="n">np</span><span class="o">.</span><span class="n">outer</span><span class="p">(</span><span class="n">vec</span><span class="p">,</span> <span class="n">vec</span><span class="p">)</span>
530
528
 
531
529
  <span class="n">D</span> <span class="o">=</span> <span class="n">avg_outer_product</span> <span class="o">/</span> <span class="p">(</span><span class="mi">2</span> <span class="o">*</span> <span class="n">max_steps</span> <span class="o">*</span> <span class="n">dt</span><span class="p">)</span>
532
- <span class="k">return</span> <span class="n">D</span></div>
533
-
530
+ <span class="k">return</span> <span class="n">D</span>
534
531
 
535
532
 
536
- <div class="viewcode-block" id="diffusion_coefficient_tensor_MC">
537
- <a class="viewcode-back" href="../../../mcal.calculations.html#mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor_MC">[docs]</a>
538
- <span class="k">def</span><span class="w"> </span><span class="nf">diffusion_coefficient_tensor_MC</span><span class="p">(</span>
533
+ <span class="k">def</span><span class="w"> </span><span class="nf">_diffusion_coefficient_tensor_MC</span><span class="p">(</span>
539
534
  <span class="n">lattice</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>
540
535
  <span class="n">hop</span><span class="p">:</span> <span class="n">List</span><span class="p">[</span><span class="n">Tuple</span><span class="p">[</span><span class="nb">int</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">int</span><span class="p">,</span> <span class="nb">float</span><span class="p">]],</span>
541
- <span class="n">steps</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">100</span><span class="p">,</span>
536
+ <span class="n">steps</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">10000</span><span class="p">,</span>
542
537
  <span class="n">particles</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">10000</span>
543
538
  <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>
544
539
  <span class="w"> </span><span class="sd">&quot;&quot;&quot;Calculate diffusion coefficient tensor from Monte Carlo simulation using Gillespie algorithm.</span>
@@ -593,8 +588,7 @@
593
588
 
594
589
  <span class="c1"># Calculate diffusion coefficient</span>
595
590
  <span class="n">D</span> <span class="o">=</span> <span class="n">sum_outer_product</span> <span class="o">/</span> <span class="p">(</span><span class="n">particles</span> <span class="o">*</span> <span class="mi">2</span> <span class="o">*</span> <span class="n">max_time</span><span class="p">)</span>
596
- <span class="k">return</span> <span class="n">D</span></div>
597
-
591
+ <span class="k">return</span> <span class="n">D</span>
598
592
 
599
593
 
600
594
  <div class="viewcode-block" id="print_tensor">
@@ -253,8 +253,8 @@
253
253
  <span class="kn">from</span><span class="w"> </span><span class="nn">mcal.utils.gjf_maker</span><span class="w"> </span><span class="kn">import</span> <span class="n">GjfMaker</span>
254
254
  <span class="kn">from</span><span class="w"> </span><span class="nn">mcal.calculations.hopping_mobility_model</span><span class="w"> </span><span class="kn">import</span> <span class="p">(</span>
255
255
  <span class="n">diffusion_coefficient_tensor</span><span class="p">,</span>
256
- <span class="n">diffusion_coefficient_tensor_MC</span><span class="p">,</span>
257
- <span class="n">diffusion_coefficient_tensor_ODE</span><span class="p">,</span>
256
+ <span class="n">_diffusion_coefficient_tensor_MC</span><span class="p">,</span>
257
+ <span class="n">_diffusion_coefficient_tensor_ODE</span><span class="p">,</span>
258
258
  <span class="n">marcus_rate</span><span class="p">,</span>
259
259
  <span class="n">mobility_tensor</span>
260
260
  <span class="p">)</span>
@@ -308,10 +308,6 @@
308
308
  <span class="sd"> Plot mobility tensor in 2D plane:</span>
309
309
  <span class="sd"> - Plot mobility tensor in 2D plane (Examples: ab, ac, ba, bc, ca, cb (default is ab))\n</span>
310
310
  <span class="sd"> $ python hop_mcal.py xxx.cif p --plot-plane ab</span>
311
-
312
- <span class="sd"> Compare calculation methods:</span>
313
- <span class="sd"> - Compare results using kinetic Monte Carlo and ODE methods\n</span>
314
- <span class="sd"> $ python hop_mcal.py xxx.cif p --mc --ode</span>
315
311
  <span class="sd"> &quot;&quot;&quot;</span>
316
312
  <span class="c1"># Error range for skipping calculation of transfer integrals using moment of inertia and distance between centers of weight.</span>
317
313
  <span class="n">CENTER_OF_WEIGHT_ERROR</span> <span class="o">=</span> <span class="mf">1.0e-7</span>
@@ -354,10 +350,10 @@
354
350
  <span class="n">help</span><span class="o">=</span><span class="s1">&#39;do not process for speeding up using moment of inertia and distance between centers of weight&#39;</span><span class="p">,</span>
355
351
  <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store_true&#39;</span><span class="p">,</span>
356
352
  <span class="p">)</span>
357
- <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--mc&#39;</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="s1">&#39;use Monte Carlo method to calculate diffusion coefficient&#39;</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store_true&#39;</span><span class="p">)</span>
353
+ <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">&#39;--mc&#39;</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="n">argparse</span><span class="o">.</span><span class="n">SUPPRESS</span><span class="p">,</span> <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store_true&#39;</span><span class="p">)</span>
358
354
  <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span>
359
355
  <span class="s1">&#39;--ode&#39;</span><span class="p">,</span>
360
- <span class="n">help</span><span class="o">=</span><span class="s1">&#39;use Ordinary Differential Equation method to calculate diffusion coefficient&#39;</span><span class="p">,</span>
356
+ <span class="n">help</span><span class="o">=</span><span class="n">argparse</span><span class="o">.</span><span class="n">SUPPRESS</span><span class="p">,</span>
361
357
  <span class="n">action</span><span class="o">=</span><span class="s1">&#39;store_true&#39;</span><span class="p">,</span>
362
358
  <span class="p">)</span>
363
359
  <span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span>
@@ -388,7 +384,7 @@
388
384
  <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>
389
385
 
390
386
  <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;----------------------------------------&#39;</span><span class="p">)</span>
391
- <span class="nb">print</span><span class="p">(</span><span class="s1">&#39; mcal 0.2.1 (2026/01/29) by Matsui Lab. &#39;</span><span class="p">)</span>
387
+ <span class="nb">print</span><span class="p">(</span><span class="s1">&#39; mcal 0.3.1 (2026/02/05) by Matsui Lab. &#39;</span><span class="p">)</span>
392
388
  <span class="nb">print</span><span class="p">(</span><span class="s1">&#39;----------------------------------------&#39;</span><span class="p">)</span>
393
389
 
394
390
  <span class="k">if</span> <span class="n">args</span><span class="o">.</span><span class="n">read_pickle</span><span class="p">:</span>
@@ -568,7 +564,7 @@
568
564
 
569
565
  <span class="c1">##### Simulate mobility tensor calculation using Monte Carlo method #####</span>
570
566
  <span class="k">if</span> <span class="n">args</span><span class="o">.</span><span class="n">mc</span><span class="p">:</span>
571
- <span class="n">D_MC</span> <span class="o">=</span> <span class="n">diffusion_coefficient_tensor_MC</span><span class="p">(</span><span class="n">cif_reader</span><span class="o">.</span><span class="n">lattice</span> <span class="o">*</span> <span class="mf">1e-8</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
567
+ <span class="n">D_MC</span> <span class="o">=</span> <span class="n">_diffusion_coefficient_tensor_MC</span><span class="p">(</span><span class="n">cif_reader</span><span class="o">.</span><span class="n">lattice</span> <span class="o">*</span> <span class="mf">1e-8</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
572
568
  <span class="n">print_tensor</span><span class="p">(</span><span class="n">D_MC</span><span class="p">,</span> <span class="n">msg</span><span class="o">=</span><span class="s2">&quot;Diffusion coefficient tensor (cm^2/s) (MC)&quot;</span><span class="p">)</span>
573
569
  <span class="n">mu_MC</span> <span class="o">=</span> <span class="n">mobility_tensor</span><span class="p">(</span><span class="n">D_MC</span><span class="p">)</span>
574
570
  <span class="n">print_tensor</span><span class="p">(</span><span class="n">mu_MC</span><span class="p">,</span> <span class="n">msg</span><span class="o">=</span><span class="s2">&quot;Mobility tensor (cm^2/Vs) (MC)&quot;</span><span class="p">)</span>
@@ -577,7 +573,7 @@
577
573
 
578
574
  <span class="c1">##### Simulate mobility tensor calculation using Ordinary Differential Equation method #####</span>
579
575
  <span class="k">if</span> <span class="n">args</span><span class="o">.</span><span class="n">ode</span><span class="p">:</span>
580
- <span class="n">D_ODE</span> <span class="o">=</span> <span class="n">diffusion_coefficient_tensor_ODE</span><span class="p">(</span><span class="n">cif_reader</span><span class="o">.</span><span class="n">lattice</span> <span class="o">*</span> <span class="mf">1e-8</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
576
+ <span class="n">D_ODE</span> <span class="o">=</span> <span class="n">_diffusion_coefficient_tensor_ODE</span><span class="p">(</span><span class="n">cif_reader</span><span class="o">.</span><span class="n">lattice</span> <span class="o">*</span> <span class="mf">1e-8</span><span class="p">,</span> <span class="n">hop</span><span class="p">)</span>
581
577
  <span class="n">print_tensor</span><span class="p">(</span><span class="n">D_ODE</span><span class="p">,</span> <span class="n">msg</span><span class="o">=</span><span class="s2">&quot;Diffusion coefficient tensor (cm^2/s) (ODE)&quot;</span><span class="p">)</span>
582
578
  <span class="n">mu_ODE</span> <span class="o">=</span> <span class="n">mobility_tensor</span><span class="p">(</span><span class="n">D_ODE</span><span class="p">)</span>
583
579
  <span class="n">print_tensor</span><span class="p">(</span><span class="n">mu_ODE</span><span class="p">,</span> <span class="n">msg</span><span class="o">=</span><span class="s2">&quot;Mobility tensor (cm^2/Vs) (ODE)&quot;</span><span class="p">)</span>
@@ -233,7 +233,7 @@
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 (2026/01/29)&quot;&quot;&quot;</span>
236
+ <span></span><span class="sd">&quot;&quot;&quot;CifReader beta (2026/02/05)&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
239
  <span class="kn">import</span><span class="w"> </span><span class="nn">warnings</span>
@@ -457,9 +457,9 @@
457
457
  <span class="k">for</span> <span class="n">atom_idx</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>
458
458
  <span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">c</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">calc_cen_of_weight</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="n">atom_idx</span><span class="p">])):</span>
459
459
  <span class="k">if</span> <span class="mi">1</span> <span class="o">&lt;=</span> <span class="n">c</span><span class="p">:</span>
460
- <span class="n">change</span> <span class="o">=</span> <span class="o">-</span><span class="nb">int</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
460
+ <span class="n">change</span> <span class="o">=</span> <span class="o">-</span><span class="n">np</span><span class="o">.</span><span class="n">floor</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
461
461
  <span class="k">elif</span> <span class="n">c</span> <span class="o">&lt;</span> <span class="mi">0</span><span class="p">:</span>
462
- <span class="n">change</span> <span class="o">=</span> <span class="nb">abs</span><span class="p">(</span><span class="nb">int</span><span class="p">(</span><span class="n">c</span><span class="p">))</span> <span class="o">+</span> <span class="mi">1</span>
462
+ <span class="n">change</span> <span class="o">=</span> <span class="n">np</span><span class="o">.</span><span class="n">ceil</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">abs</span><span class="p">(</span><span class="n">c</span><span class="p">))</span>
463
463
  <span class="k">else</span><span class="p">:</span>
464
464
  <span class="n">change</span> <span class="o">=</span> <span class="mi">0</span>
465
465
  <span class="bp">self</span><span class="o">.</span><span class="n">sym_coords</span><span class="p">[</span><span class="n">atom_idx</span><span class="p">,</span> <span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="n">change</span>
@@ -190,23 +190,6 @@ Plot mobility tensor as a 2D polar plot on specified crystallographic plane.
190
190
  * ``mcal xxx.cif p --plot-plane ab`` (plot on ab-plane)
191
191
  * ``mcal xxx.cif p --plot-plane bc`` (plot on bc-plane)
192
192
 
193
- Diffusion Coefficient Calculation Methods
194
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
195
-
196
- ``--mc``
197
- ^^^^^^^^
198
-
199
- Calculate diffusion coefficient tensor using kinetic Monte Carlo method.
200
-
201
- * **Example**: ``mcal xxx.cif p --mc``
202
-
203
- ``--ode``
204
- ^^^^^^^^^
205
-
206
- Calculate diffusion coefficient tensor using Ordinary Differential Equation method.
207
-
208
- * **Example**: ``mcal xxx.cif p --ode``
209
-
210
193
  Practical Usage Examples
211
194
  -------------------------
212
195
 
@@ -252,14 +235,6 @@ Reusing Results
252
235
  # Save results to pickle file
253
236
  mcal xxx.cif p -p
254
237
 
255
- Comparing Diffusion Coefficients
256
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
257
-
258
- .. code-block:: bash
259
-
260
- # Compare with normal calculation + kinetic Monte Carlo + ODE methods
261
- mcal xxx.cif p --mc --ode
262
-
263
238
  Output
264
239
  ------
265
240
 
@@ -319,14 +319,10 @@
319
319
  <table style="width: 100%" class="indextable genindextable"><tr>
320
320
  <td style="width: 33%; vertical-align: top;"><ul>
321
321
  <li><a href="mcal.calculations.html#mcal.calculations.hopping_mobility_model.demo">demo() (in module mcal.calculations.hopping_mobility_model)</a>
322
- </li>
323
- <li><a href="mcal.calculations.html#mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor">diffusion_coefficient_tensor() (in module mcal.calculations.hopping_mobility_model)</a>
324
322
  </li>
325
323
  </ul></td>
326
324
  <td style="width: 33%; vertical-align: top;"><ul>
327
- <li><a href="mcal.calculations.html#mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor_MC">diffusion_coefficient_tensor_MC() (in module mcal.calculations.hopping_mobility_model)</a>
328
- </li>
329
- <li><a href="mcal.calculations.html#mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor_ODE">diffusion_coefficient_tensor_ODE() (in module mcal.calculations.hopping_mobility_model)</a>
325
+ <li><a href="mcal.calculations.html#mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor">diffusion_coefficient_tensor() (in module mcal.calculations.hopping_mobility_model)</a>
330
326
  </li>
331
327
  </ul></td>
332
328
  </tr></table>
@@ -426,23 +426,6 @@ for transfer integral calculations.</p>
426
426
  </ul>
427
427
  </section>
428
428
  </section>
429
- <section id="diffusion-coefficient-calculation-methods">
430
- <h4>Diffusion Coefficient Calculation Methods<a class="headerlink" href="#diffusion-coefficient-calculation-methods" title="Link to this heading">¶</a></h4>
431
- <section id="mc">
432
- <h5><code class="docutils literal notranslate"><span class="pre">--mc</span></code><a class="headerlink" href="#mc" title="Link to this heading">¶</a></h5>
433
- <p>Calculate diffusion coefficient tensor using kinetic Monte Carlo method.</p>
434
- <ul class="simple">
435
- <li><p><strong>Example</strong>: <code class="docutils literal notranslate"><span class="pre">mcal</span> <span class="pre">xxx.cif</span> <span class="pre">p</span> <span class="pre">--mc</span></code></p></li>
436
- </ul>
437
- </section>
438
- <section id="ode">
439
- <h5><code class="docutils literal notranslate"><span class="pre">--ode</span></code><a class="headerlink" href="#ode" title="Link to this heading">¶</a></h5>
440
- <p>Calculate diffusion coefficient tensor using Ordinary Differential Equation method.</p>
441
- <ul class="simple">
442
- <li><p><strong>Example</strong>: <code class="docutils literal notranslate"><span class="pre">mcal</span> <span class="pre">xxx.cif</span> <span class="pre">p</span> <span class="pre">--ode</span></code></p></li>
443
- </ul>
444
- </section>
445
- </section>
446
429
  </section>
447
430
  <section id="practical-usage-examples">
448
431
  <h3>Practical Usage Examples<a class="headerlink" href="#practical-usage-examples" title="Link to this heading">¶</a></h3>
@@ -485,13 +468,6 @@ mcal<span class="w"> </span>xxx.cif<span class="w"> </span>p<span class="w"> </s
485
468
  </pre></div>
486
469
  </div>
487
470
  </section>
488
- <section id="comparing-diffusion-coefficients">
489
- <h4>Comparing Diffusion Coefficients<a class="headerlink" href="#comparing-diffusion-coefficients" title="Link to this heading">¶</a></h4>
490
- <div class="highlight-bash notranslate"><div class="highlight"><pre><span></span><span class="c1"># Compare with normal calculation + kinetic Monte Carlo + ODE methods</span>
491
- mcal<span class="w"> </span>xxx.cif<span class="w"> </span>p<span class="w"> </span>--mc<span class="w"> </span>--ode
492
- </pre></div>
493
- </div>
494
- </section>
495
471
  </section>
496
472
  <section id="output">
497
473
  <h3>Output<a class="headerlink" href="#output" title="Link to this heading">¶</a></h3>
@@ -671,18 +647,12 @@ mcal<span class="w"> </span>xxx.cif<span class="w"> </span>p<span class="w"> </s
671
647
  <li><a class="reference internal" href="#plot-plane-plane"><code class="docutils literal notranslate"><span class="pre">--plot-plane</span> <span class="pre">&lt;plane&gt;</span></code></a></li>
672
648
  </ul>
673
649
  </li>
674
- <li><a class="reference internal" href="#diffusion-coefficient-calculation-methods">Diffusion Coefficient Calculation Methods</a><ul>
675
- <li><a class="reference internal" href="#mc"><code class="docutils literal notranslate"><span class="pre">--mc</span></code></a></li>
676
- <li><a class="reference internal" href="#ode"><code class="docutils literal notranslate"><span class="pre">--ode</span></code></a></li>
677
- </ul>
678
- </li>
679
650
  </ul>
680
651
  </li>
681
652
  <li><a class="reference internal" href="#practical-usage-examples">Practical Usage Examples</a><ul>
682
653
  <li><a class="reference internal" href="#basic-calculations">Basic Calculations</a></li>
683
654
  <li><a class="reference internal" href="#high-precision-calculations">High-Precision Calculations</a></li>
684
655
  <li><a class="reference internal" href="#reusing-results">Reusing Results</a></li>
685
- <li><a class="reference internal" href="#comparing-diffusion-coefficients">Comparing Diffusion Coefficients</a></li>
686
656
  </ul>
687
657
  </li>
688
658
  <li><a class="reference internal" href="#output">Output</a><ul>
@@ -246,7 +246,7 @@
246
246
  </section>
247
247
  <section id="module-mcal.calculations.hopping_mobility_model">
248
248
  <span id="mcal-calculations-hopping-mobility-model-module"></span><h2>mcal.calculations.hopping_mobility_model module<a class="headerlink" href="#module-mcal.calculations.hopping_mobility_model" title="Link to this heading">¶</a></h2>
249
- <p>hopping_mobility_model.py (2025/10/06)</p>
249
+ <p>hopping_mobility_model.py (2026/01/29)</p>
250
250
  <dl class="py function">
251
251
  <dt class="sig sig-object py" id="mcal.calculations.hopping_mobility_model.cal_pinv">
252
252
  <span class="sig-prename descclassname"><span class="pre">mcal.calculations.hopping_mobility_model.</span></span><span class="sig-name descname"><span class="pre">cal_pinv</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">array</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ndarray</span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">dtype</span><span class="p"><span class="pre">[</span></span><span class="pre">float64</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">rcond</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0.001</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">ndarray</span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">dtype</span><span class="p"><span class="pre">[</span></span><span class="pre">float64</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="_modules/mcal/calculations/hopping_mobility_model.html#cal_pinv"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcal.calculations.hopping_mobility_model.cal_pinv" title="Link to this definition">¶</a></dt>
@@ -298,51 +298,6 @@
298
298
  </dl>
299
299
  </dd></dl>
300
300
 
301
- <dl class="py function">
302
- <dt class="sig sig-object py" id="mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor_MC">
303
- <span class="sig-prename descclassname"><span class="pre">mcal.calculations.hopping_mobility_model.</span></span><span class="sig-name descname"><span class="pre">diffusion_coefficient_tensor_MC</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lattice</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ndarray</span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">dtype</span><span class="p"><span class="pre">[</span></span><span class="pre">float64</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hop</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">float</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">steps</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">100</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">particles</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">10000</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">ndarray</span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">dtype</span><span class="p"><span class="pre">[</span></span><span class="pre">float64</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="_modules/mcal/calculations/hopping_mobility_model.html#diffusion_coefficient_tensor_MC"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor_MC" title="Link to this definition">¶</a></dt>
304
- <dd><p>Calculate diffusion coefficient tensor from Monte Carlo simulation using Gillespie algorithm.</p>
305
- <dl class="field-list simple">
306
- <dt class="field-odd">Parameters<span class="colon">:</span></dt>
307
- <dd class="field-odd"><ul class="simple">
308
- <li><p><strong>lattice</strong> (<em>3x3 numpy.array</em>) – lattice[0,:] is a-axis vector, lattice[1,:] b-axis vector, lattice[2,:] c-axis vector</p></li>
309
- <li><p><strong>hop</strong> (<em>list</em><em> of </em><em>(</em><em>int</em><em>, </em><em>int</em><em>, </em><em>int</em><em>, </em><em>int</em><em>, </em><em>int</em><em>, </em><em>float</em><em>) </em><em>tuple.</em>) – (s, t, i, j, k, p) means that the hopping rate from s-th molecule in (0, 0, 0) cell to t-th molecule in (i, j, k) cell is p.</p></li>
310
- <li><p><strong>steps</strong> (<em>int</em>) – Number of steps</p></li>
311
- <li><p><strong>particles</strong> (<em>int</em>) – Number of particles</p></li>
312
- </ul>
313
- </dd>
314
- <dt class="field-even">Returns<span class="colon">:</span></dt>
315
- <dd class="field-even"><p>Diffusion coefficient tensor</p>
316
- </dd>
317
- <dt class="field-odd">Return type<span class="colon">:</span></dt>
318
- <dd class="field-odd"><p>3x3 numpy.array</p>
319
- </dd>
320
- </dl>
321
- </dd></dl>
322
-
323
- <dl class="py function">
324
- <dt class="sig sig-object py" id="mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor_ODE">
325
- <span class="sig-prename descclassname"><span class="pre">mcal.calculations.hopping_mobility_model.</span></span><span class="sig-name descname"><span class="pre">diffusion_coefficient_tensor_ODE</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">lattice</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">ndarray</span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">dtype</span><span class="p"><span class="pre">[</span></span><span class="pre">float64</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">hop</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">List</span><span class="p"><span class="pre">[</span></span><span class="pre">Tuple</span><span class="p"><span class="pre">[</span></span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">int</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">float</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_steps</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">200</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">size</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">40</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">max_rate</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">0.05</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">ndarray</span><span class="p"><span class="pre">[</span></span><span class="pre">Any</span><span class="p"><span class="pre">,</span></span><span class="w"> </span><span class="pre">dtype</span><span class="p"><span class="pre">[</span></span><span class="pre">float64</span><span class="p"><span class="pre">]</span></span><span class="p"><span class="pre">]</span></span></span></span><a class="reference internal" href="_modules/mcal/calculations/hopping_mobility_model.html#diffusion_coefficient_tensor_ODE"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor_ODE" title="Link to this definition">¶</a></dt>
326
- <dd><p>Calculate diffusion coefficient tensor from numerical solution of Ordinary Differential Equation (ODE)</p>
327
- <dl class="field-list simple">
328
- <dt class="field-odd">Parameters<span class="colon">:</span></dt>
329
- <dd class="field-odd"><ul class="simple">
330
- <li><p><strong>lattice</strong> (<em>3x3 numpy.array</em>) – lattice[0,:] is a-axis vector, lattice[1,:] b-axis vector, lattice[2,:] c-axis vector</p></li>
331
- <li><p><strong>hop</strong> (<em>list</em><em> of </em><em>(</em><em>int</em><em>, </em><em>int</em><em>, </em><em>int</em><em>, </em><em>int</em><em>, </em><em>int</em><em>, </em><em>float</em><em>) </em><em>tuple.</em>) – (s, t, i, j, k, p) means that the hopping rate from s-th molecule in (0, 0, 0) cell to t-th molecule in (i, j, k) cell is p.</p></li>
332
- <li><p><strong>max_steps</strong> (<em>int</em>) – Maximum number of steps</p></li>
333
- <li><p><strong>size</strong> (<em>int</em>) – Size of the simulation box</p></li>
334
- <li><p><strong>max_rate</strong> (<em>float</em>) – Maximum rate of hopping</p></li>
335
- </ul>
336
- </dd>
337
- <dt class="field-even">Returns<span class="colon">:</span></dt>
338
- <dd class="field-even"><p>Diffusion coefficient tensor</p>
339
- </dd>
340
- <dt class="field-odd">Return type<span class="colon">:</span></dt>
341
- <dd class="field-odd"><p>3x3 numpy.array</p>
342
- </dd>
343
- </dl>
344
- </dd></dl>
345
-
346
301
  <dl class="py function">
347
302
  <dt class="sig sig-object py" id="mcal.calculations.hopping_mobility_model.marcus_rate">
348
303
  <span class="sig-prename descclassname"><span class="pre">mcal.calculations.hopping_mobility_model.</span></span><span class="sig-name descname"><span class="pre">marcus_rate</span></span><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">transfer</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">reorganization</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">T</span></span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">float</span></span><span class="w"> </span><span class="o"><span class="pre">=</span></span><span class="w"> </span><span class="default_value"><span class="pre">300.0</span></span></em><span class="sig-paren">)</span> <span class="sig-return"><span class="sig-return-icon">&#x2192;</span> <span class="sig-return-typehint"><span class="pre">float</span></span></span><a class="reference internal" href="_modules/mcal/calculations/hopping_mobility_model.html#marcus_rate"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#mcal.calculations.hopping_mobility_model.marcus_rate" title="Link to this definition">¶</a></dt>
@@ -561,8 +516,6 @@
561
516
  <li><a class="reference internal" href="#mcal.calculations.hopping_mobility_model.cal_pinv"><code class="docutils literal notranslate"><span class="pre">cal_pinv()</span></code></a></li>
562
517
  <li><a class="reference internal" href="#mcal.calculations.hopping_mobility_model.demo"><code class="docutils literal notranslate"><span class="pre">demo()</span></code></a></li>
563
518
  <li><a class="reference internal" href="#mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor"><code class="docutils literal notranslate"><span class="pre">diffusion_coefficient_tensor()</span></code></a></li>
564
- <li><a class="reference internal" href="#mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor_MC"><code class="docutils literal notranslate"><span class="pre">diffusion_coefficient_tensor_MC()</span></code></a></li>
565
- <li><a class="reference internal" href="#mcal.calculations.hopping_mobility_model.diffusion_coefficient_tensor_ODE"><code class="docutils literal notranslate"><span class="pre">diffusion_coefficient_tensor_ODE()</span></code></a></li>
566
519
  <li><a class="reference internal" href="#mcal.calculations.hopping_mobility_model.marcus_rate"><code class="docutils literal notranslate"><span class="pre">marcus_rate()</span></code></a></li>
567
520
  <li><a class="reference internal" href="#mcal.calculations.hopping_mobility_model.mobility_tensor"><code class="docutils literal notranslate"><span class="pre">mobility_tensor()</span></code></a></li>
568
521
  <li><a class="reference internal" href="#mcal.calculations.hopping_mobility_model.print_tensor"><code class="docutils literal notranslate"><span class="pre">print_tensor()</span></code></a></li>