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.
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/PKG-INFO +1 -17
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/README.md +0 -16
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/README_ja.md +0 -16
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_modules/mcal/calculations/hopping_mobility_model.html +13 -19
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_modules/mcal/mcal.html +7 -11
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_modules/mcal/utils/cif_reader.html +3 -3
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_sources/index.rst.txt +0 -25
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/genindex.html +1 -5
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/index.html +0 -30
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/mcal.calculations.html +1 -48
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/mcal.html +0 -7
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/mcal.utils.html +1 -1
- yu_mcal-0.3.1/docs/objects.inv +0 -0
- yu_mcal-0.3.1/docs/searchindex.js +1 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/source/index.rst +0 -25
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/pyproject.toml +1 -1
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/calculations/hopping_mobility_model.py +11 -11
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/mcal.py +7 -11
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/utils/cif_reader.py +3 -3
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/uv.lock +1 -1
- yu_mcal-0.2.1/docs/objects.inv +0 -0
- yu_mcal-0.2.1/docs/searchindex.js +0 -1
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/.gitignore +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/.python-version +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/LICENSE +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/.nojekyll +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_modules/index.html +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_modules/mcal/calculations/rcal.html +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_modules/mcal/utils/gaus_log_reader.html +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_modules/mcal/utils/gjf_maker.html +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_sources/mcal.calculations.rst.txt +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_sources/mcal.rst.txt +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_sources/mcal.utils.rst.txt +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_sources/modules.rst.txt +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/autodoc_pydantic.css +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/basic.css +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/debug.css +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/doctools.js +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/documentation_options.js +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/file.png +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/language_data.js +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/minus.png +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/plus.png +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/pygments.css +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/scripts/furo-extensions.js +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/scripts/furo.js +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/scripts/furo.js.LICENSE.txt +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/scripts/furo.js.map +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/searchtools.js +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/skeleton.css +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/sphinx_highlight.js +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/styles/furo-extensions.css +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/styles/furo-extensions.css.map +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/styles/furo.css +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/_static/styles/furo.css.map +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/modules.html +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/py-modindex.html +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs/search.html +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/Makefile +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/make.bat +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/source/conf.py +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/source/mcal.calculations.rst +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/source/mcal.rst +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/source/mcal.utils.rst +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/docs-src/source/modules.rst +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/requirements.txt +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/__init__.py +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/calculations/__init__.py +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/calculations/rcal.py +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/constants/element_properties.csv +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/utils/__init__.py +0 -0
- {yu_mcal-0.2.1 → yu_mcal-0.3.1}/src/mcal/utils/gaus_log_reader.py +0 -0
- {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.
|
|
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">"""hopping_mobility_model.py (
|
|
236
|
+
<span></span><span class="sd">"""hopping_mobility_model.py (2026/01/29)"""</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">"</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">"</span><span class="p">)</span>
|
|
261
261
|
<span class="nb">print</span><span class="p">(</span><span class="s2">"Diffusion coefficient tensor (ODE):"</span><span class="p">)</span>
|
|
262
|
-
<span class="n">D_ode</span> <span class="o">=</span> <span class="n">
|
|
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">"</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">"</span><span class="p">)</span>
|
|
265
265
|
<span class="nb">print</span><span class="p">(</span><span class="s2">"Diffusion coefficient tensor (MC):"</span><span class="p">)</span>
|
|
266
|
-
<span class="n">D_mc</span> <span class="o">=</span> <span class="n">
|
|
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">"</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">"</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">"</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">"</span><span class="p">)</span>
|
|
282
282
|
<span class="nb">print</span><span class="p">(</span><span class="s2">"Diffusion coefficient tensor (ODE):"</span><span class="p">)</span>
|
|
283
|
-
<span class="n">D_ode</span> <span class="o">=</span> <span class="n">
|
|
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">"</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">"</span><span class="p">)</span>
|
|
286
286
|
<span class="nb">print</span><span class="p">(</span><span class="s2">"Diffusion coefficient tensor (MC):"</span><span class="p">)</span>
|
|
287
|
-
<span class="n">D_mc</span> <span class="o">=</span> <span class="n">
|
|
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">"</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">"</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">"</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">"</span><span class="p">)</span>
|
|
309
309
|
<span class="nb">print</span><span class="p">(</span><span class="s2">"Diffusion coefficient tensor (ODE):"</span><span class="p">)</span>
|
|
310
|
-
<span class="n">D_ode</span> <span class="o">=</span> <span class="n">
|
|
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">"</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">"</span><span class="p">)</span>
|
|
313
313
|
<span class="nb">print</span><span class="p">(</span><span class="s2">"Diffusion coefficient tensor (MC):"</span><span class="p">)</span>
|
|
314
|
-
<span class="n">D_mc</span> <span class="o">=</span> <span class="n">
|
|
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">"</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">"</span><span class="p">)</span></div>
|
|
317
317
|
|
|
@@ -470,12 +470,10 @@
|
|
|
470
470
|
|
|
471
471
|
|
|
472
472
|
|
|
473
|
-
<
|
|
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">
|
|
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">-></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
|
|
533
|
-
|
|
530
|
+
<span class="k">return</span> <span class="n">D</span>
|
|
534
531
|
|
|
535
532
|
|
|
536
|
-
<
|
|
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">
|
|
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">-></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">"""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
|
|
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">
|
|
257
|
-
<span class="n">
|
|
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"> """</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">'do not process for speeding up using moment of inertia and distance between centers of weight'</span><span class="p">,</span>
|
|
355
351
|
<span class="n">action</span><span class="o">=</span><span class="s1">'store_true'</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">'--mc'</span><span class="p">,</span> <span class="n">help</span><span class="o">=</span><span class="
|
|
353
|
+
<span class="n">parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span><span class="s1">'--mc'</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">'store_true'</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">'--ode'</span><span class="p">,</span>
|
|
360
|
-
<span class="n">help</span><span class="o">=</span><span class="
|
|
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">'store_true'</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">'</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">'</span>
|
|
389
385
|
|
|
390
386
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'----------------------------------------'</span><span class="p">)</span>
|
|
391
|
-
<span class="nb">print</span><span class="p">(</span><span class="s1">' mcal 0.
|
|
387
|
+
<span class="nb">print</span><span class="p">(</span><span class="s1">' mcal 0.3.1 (2026/02/05) by Matsui Lab. '</span><span class="p">)</span>
|
|
392
388
|
<span class="nb">print</span><span class="p">(</span><span class="s1">'----------------------------------------'</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">
|
|
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">"Diffusion coefficient tensor (cm^2/s) (MC)"</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">"Mobility tensor (cm^2/Vs) (MC)"</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">
|
|
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">"Diffusion coefficient tensor (cm^2/s) (ODE)"</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">"Mobility tensor (cm^2/Vs) (ODE)"</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">"""CifReader beta (2026/
|
|
236
|
+
<span></span><span class="sd">"""CifReader beta (2026/02/05)"""</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"><=</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="
|
|
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"><</span> <span class="mi">0</span><span class="p">:</span>
|
|
462
|
-
<span class="n">change</span> <span class="o">=</span> <span class="
|
|
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.
|
|
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"><plane></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 (
|
|
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">→</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">→</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">→</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">→</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>
|