yu-mcal 0.1.0__py3-none-any.whl → 0.1.1__py3-none-any.whl
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.
- mcal/mcal.py +25 -19
- {yu_mcal-0.1.0.dist-info → yu_mcal-0.1.1.dist-info}/METADATA +2 -1
- {yu_mcal-0.1.0.dist-info → yu_mcal-0.1.1.dist-info}/RECORD +6 -6
- {yu_mcal-0.1.0.dist-info → yu_mcal-0.1.1.dist-info}/WHEEL +0 -0
- {yu_mcal-0.1.0.dist-info → yu_mcal-0.1.1.dist-info}/entry_points.txt +0 -0
- {yu_mcal-0.1.0.dist-info → yu_mcal-0.1.1.dist-info}/licenses/LICENSE +0 -0
mcal/mcal.py
CHANGED
|
@@ -139,9 +139,9 @@ def main():
|
|
|
139
139
|
filename = cif_file.stem
|
|
140
140
|
cif_path_without_ext = f'{directory}/{filename}'
|
|
141
141
|
|
|
142
|
-
print('
|
|
143
|
-
print(' mcal 0.1.
|
|
144
|
-
print('
|
|
142
|
+
print('----------------------------------------')
|
|
143
|
+
print(' mcal 0.1.1 (2026/01/08) by Matsui Lab. ')
|
|
144
|
+
print('----------------------------------------')
|
|
145
145
|
|
|
146
146
|
if args.read_pickle:
|
|
147
147
|
read_pickle(args.file)
|
|
@@ -312,27 +312,27 @@ def main():
|
|
|
312
312
|
hop.append((s, t, i, j, k, marcus_rate(ti, reorg_energy)))
|
|
313
313
|
|
|
314
314
|
diffusion_coef_tensor = diffusion_coefficient_tensor(cif_reader.lattice * 1e-8, hop)
|
|
315
|
-
print_tensor(diffusion_coef_tensor, msg="Diffusion coefficient tensor")
|
|
315
|
+
print_tensor(diffusion_coef_tensor, msg="Diffusion coefficient tensor (cm^2/s)")
|
|
316
316
|
mu = mobility_tensor(diffusion_coef_tensor)
|
|
317
|
-
print_tensor(mu)
|
|
317
|
+
print_tensor(mu, msg="Mobility tensor (cm^2/Vs)")
|
|
318
318
|
value, vector = cal_eigenvalue_decomposition(mu)
|
|
319
319
|
print_mobility(value, vector)
|
|
320
320
|
|
|
321
321
|
##### Simulate mobility tensor calculation using Monte Carlo method #####
|
|
322
322
|
if args.mc:
|
|
323
323
|
D_MC = diffusion_coefficient_tensor_MC(cif_reader.lattice * 1e-8, hop)
|
|
324
|
-
print_tensor(D_MC, msg="Diffusion coefficient tensor (MC)")
|
|
324
|
+
print_tensor(D_MC, msg="Diffusion coefficient tensor (cm^2/s) (MC)")
|
|
325
325
|
mu_MC = mobility_tensor(D_MC)
|
|
326
|
-
print_tensor(mu_MC, msg="Mobility tensor (MC)")
|
|
326
|
+
print_tensor(mu_MC, msg="Mobility tensor (cm^2/Vs) (MC)")
|
|
327
327
|
value_MC, vector_MC = cal_eigenvalue_decomposition(mu_MC)
|
|
328
328
|
print_mobility(value_MC, vector_MC, sim_type='MC')
|
|
329
329
|
|
|
330
330
|
##### Simulate mobility tensor calculation using Ordinary Differential Equation method #####
|
|
331
331
|
if args.ode:
|
|
332
332
|
D_ODE = diffusion_coefficient_tensor_ODE(cif_reader.lattice * 1e-8, hop)
|
|
333
|
-
print_tensor(D_ODE, msg="Diffusion coefficient tensor (ODE)")
|
|
333
|
+
print_tensor(D_ODE, msg="Diffusion coefficient tensor (cm^2/s) (ODE)")
|
|
334
334
|
mu_ODE = mobility_tensor(D_ODE)
|
|
335
|
-
print_tensor(mu_ODE, msg="Mobility tensor (ODE)")
|
|
335
|
+
print_tensor(mu_ODE, msg="Mobility tensor (cm^2/Vs) (ODE)")
|
|
336
336
|
value_ODE, vector_ODE = cal_eigenvalue_decomposition(mu_ODE)
|
|
337
337
|
print_mobility(value_ODE, vector_ODE, sim_type='ODE')
|
|
338
338
|
|
|
@@ -355,14 +355,18 @@ def main():
|
|
|
355
355
|
Tcal.print_timestamp()
|
|
356
356
|
end_time = time()
|
|
357
357
|
elapsed_time = end_time - start_time
|
|
358
|
+
elapsed_time_h = int(elapsed_time // 3600)
|
|
359
|
+
elapsed_time_min = int((elapsed_time - elapsed_time_h * 3600) // 60)
|
|
360
|
+
elapsed_time_sec = int(elapsed_time - elapsed_time_h * 3600 - elapsed_time_min * 60)
|
|
361
|
+
elapsed_time_ms = (elapsed_time - elapsed_time_h * 3600 - elapsed_time_min * 60 - elapsed_time_sec) * 1000
|
|
358
362
|
if elapsed_time < 1:
|
|
359
|
-
print(f'Elapsed Time: {
|
|
363
|
+
print(f'Elapsed Time: {elapsed_time_ms:.0f} ms')
|
|
360
364
|
elif elapsed_time < 60:
|
|
361
|
-
print(f'Elapsed Time: {
|
|
365
|
+
print(f'Elapsed Time: {elapsed_time_sec} sec')
|
|
362
366
|
elif elapsed_time < 3600:
|
|
363
|
-
print(f'Elapsed Time: {
|
|
367
|
+
print(f'Elapsed Time: {elapsed_time_min} min {elapsed_time_sec} sec')
|
|
364
368
|
else:
|
|
365
|
-
print(f'Elapsed Time: {
|
|
369
|
+
print(f'Elapsed Time: {elapsed_time_h} h {elapsed_time_min} min {elapsed_time_sec} sec')
|
|
366
370
|
|
|
367
371
|
|
|
368
372
|
def atom_weight(symbol: str) -> float:
|
|
@@ -728,8 +732,9 @@ def print_mobility(value: NDArray[np.float64], vector: NDArray[np.float64], sim_
|
|
|
728
732
|
sim_type : str
|
|
729
733
|
Simulation type (MC or ODE)
|
|
730
734
|
"""
|
|
731
|
-
msg_value = 'Mobility
|
|
732
|
-
msg_vector = 'Mobility
|
|
735
|
+
msg_value = 'Mobility eigenvalues (cm^2/Vs)'
|
|
736
|
+
msg_vector = 'Mobility eigenvectors'
|
|
737
|
+
direction = ['x', 'y', 'z']
|
|
733
738
|
|
|
734
739
|
if sim_type:
|
|
735
740
|
msg_value += f' ({sim_type})'
|
|
@@ -746,8 +751,9 @@ def print_mobility(value: NDArray[np.float64], vector: NDArray[np.float64], sim_
|
|
|
746
751
|
print('-' * (len(msg_vector)+2))
|
|
747
752
|
print(f' {msg_vector} ')
|
|
748
753
|
print('-' * (len(msg_vector)+2))
|
|
749
|
-
|
|
750
|
-
|
|
754
|
+
print(' vector1 vector2 vector3')
|
|
755
|
+
for v, d in zip(vector, direction):
|
|
756
|
+
print(f'{d} {v[0]:12.6g} {v[1]:12.6g} {v[2]:12.6g}')
|
|
751
757
|
print()
|
|
752
758
|
|
|
753
759
|
|
|
@@ -822,9 +828,9 @@ def read_pickle(file_name: str):
|
|
|
822
828
|
print(f'{s}-th in (0,0,0) cell to {t}-th in ({i},{j},{k}) cell')
|
|
823
829
|
print_transfer_integral(results['osc_type'], ti)
|
|
824
830
|
|
|
825
|
-
print_tensor(results['diffusion_coefficient_tensor'], msg="Diffusion coefficient tensor")
|
|
831
|
+
print_tensor(results['diffusion_coefficient_tensor'], msg="Diffusion coefficient tensor (cm^2/s)")
|
|
826
832
|
|
|
827
|
-
print_tensor(results['mobility_tensor'])
|
|
833
|
+
print_tensor(results['mobility_tensor'], msg="Mobility tensor (cm^2/Vs)")
|
|
828
834
|
|
|
829
835
|
print_mobility(results['mobility_value'], results['mobility_vector'])
|
|
830
836
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: yu-mcal
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.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>
|
|
@@ -47,6 +47,7 @@ Description-Content-Type: text/markdown
|
|
|
47
47
|
# mcal: Program for the calculation of mobility tensor for organic semiconductor crystals
|
|
48
48
|
[](https://www.python.org)
|
|
49
49
|
[](https://opensource.org/licenses/MIT)
|
|
50
|
+
[](https://matsui-lab-yamagata.github.io/mcal/)
|
|
50
51
|
|
|
51
52
|
# Overview
|
|
52
53
|
`mcal.py` is a tool for calculating mobility tensors of organic semiconductors. It calculates transfer integrals and reorganization energy from crystal structures, and determines mobility tensors considering anisotropy and path continuity.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
mcal/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
2
|
-
mcal/mcal.py,sha256=
|
|
2
|
+
mcal/mcal.py,sha256=Wxsl5J88VdsLK7MgppG_P3Uw38caPy6GTmXGuckxV7c,29282
|
|
3
3
|
mcal/calculations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
mcal/calculations/hopping_mobility_model.py,sha256=kjE_07nC4hbhWV5B37G0rtsgPqjBuHP0wsJ53rXoPOQ,13180
|
|
5
5
|
mcal/calculations/rcal.py,sha256=CH3iV18KTM8xU7M7zKR3e1m67GbJLH8zi0j50TsUXLE,13500
|
|
@@ -9,8 +9,8 @@ mcal/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
9
9
|
mcal/utils/cif_reader.py,sha256=nhvk7y8ix4yKhyKjDaw2Luotw6YFMGbGCaeBVP6Qd5E,22901
|
|
10
10
|
mcal/utils/gaus_log_reader.py,sha256=nNIgBae9hRUgpmNF7eIC5LOENSo6NQmuckMM4A3HAa8,3159
|
|
11
11
|
mcal/utils/gjf_maker.py,sha256=Kkh_gNcifFfhTikZar6SzoNJ7AyEBiCBXJTQkHxHX-0,8193
|
|
12
|
-
yu_mcal-0.1.
|
|
13
|
-
yu_mcal-0.1.
|
|
14
|
-
yu_mcal-0.1.
|
|
15
|
-
yu_mcal-0.1.
|
|
16
|
-
yu_mcal-0.1.
|
|
12
|
+
yu_mcal-0.1.1.dist-info/METADATA,sha256=7j9QEcJfmDr-ctUKn9APFdrR5HQH2fTD7sWM6zYH7Ao,7734
|
|
13
|
+
yu_mcal-0.1.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
14
|
+
yu_mcal-0.1.1.dist-info/entry_points.txt,sha256=_0xZR3t9qvFSd9L6Iot03NixVLxXioEY19L6w3Fs1Ew,40
|
|
15
|
+
yu_mcal-0.1.1.dist-info/licenses/LICENSE,sha256=JP8vm7gYE73jLgnMFTOLNo_RnH88RrB4Goyh7H_muto,1072
|
|
16
|
+
yu_mcal-0.1.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|