qrotor 4.1.2__tar.gz → 4.2.0__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.
Potentially problematic release.
This version of qrotor might be problematic. Click here for more details.
- {qrotor-4.1.2 → qrotor-4.2.0}/PKG-INFO +1 -1
- {qrotor-4.1.2 → qrotor-4.2.0}/qrotor/_version.py +1 -1
- {qrotor-4.1.2 → qrotor-4.2.0}/qrotor/constants.py +59 -21
- {qrotor-4.1.2 → qrotor-4.2.0}/qrotor.egg-info/PKG-INFO +1 -1
- {qrotor-4.1.2 → qrotor-4.2.0}/LICENSE +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/README.md +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/qrotor/__init__.py +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/qrotor/plot.py +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/qrotor/potential.py +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/qrotor/rotate.py +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/qrotor/solve.py +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/qrotor/system.py +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/qrotor/systems.py +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/qrotor.egg-info/SOURCES.txt +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/qrotor.egg-info/dependency_links.txt +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/qrotor.egg-info/requires.txt +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/qrotor.egg-info/top_level.txt +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/setup.cfg +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/setup.py +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/tests/__init__.py +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/tests/test_constants.py +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/tests/test_potential.py +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/tests/test_rotate.py +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/tests/test_solve.py +0 -0
- {qrotor-4.1.2 → qrotor-4.2.0}/tests/test_system.py +0 -0
|
@@ -5,8 +5,6 @@ Common constants and default inertia values used in QRotor.
|
|
|
5
5
|
|
|
6
6
|
Bond lengths and angles were obtained from MAPbI3, see
|
|
7
7
|
[K. Drużbicki *et al*., Crystal Growth & Design 24, 391–404 (2024)](https://doi.org/10.1021/acs.cgd.3c01112).
|
|
8
|
-
|
|
9
|
-
---
|
|
10
8
|
"""
|
|
11
9
|
|
|
12
10
|
|
|
@@ -15,6 +13,24 @@ import periodictable
|
|
|
15
13
|
import scipy.constants as const
|
|
16
14
|
|
|
17
15
|
|
|
16
|
+
# Quick conversion factors
|
|
17
|
+
Ry_to_eV = const.physical_constants['Rydberg constant times hc in eV'][0]
|
|
18
|
+
"""Quick conversion factor from Rydberg to eV energy."""
|
|
19
|
+
Ry_to_meV = Ry_to_eV * 1000
|
|
20
|
+
"""Quick conversion factor from Rydberg to meV energy."""
|
|
21
|
+
eV_to_Ry = 1 / Ry_to_eV
|
|
22
|
+
"""Quick conversion factor from eV to Rydberg."""
|
|
23
|
+
meV_to_Ry = 1 / Ry_to_meV
|
|
24
|
+
"""Quick conversion factor from meV to Rydberg."""
|
|
25
|
+
cm1_to_meV = (const.h * const.c * 100 / const.e) * 1000
|
|
26
|
+
"""Quick conversion factor from cm$^{-1}$ to meV."""
|
|
27
|
+
meV_to_cm1 = 1/cm1_to_meV
|
|
28
|
+
"""Quick conversion factor from meV to cm$^{-1}$."""
|
|
29
|
+
amu_to_kg = const.physical_constants['atomic mass constant'][0]
|
|
30
|
+
"""Quick conversion factor from amu to kg."""
|
|
31
|
+
kg_to_amu = 1 / amu_to_kg
|
|
32
|
+
"""Quick conversion factor from kg to amu."""
|
|
33
|
+
|
|
18
34
|
# Distance between Carbon and Hydrogen atoms (measured from MAPbI3)
|
|
19
35
|
distance_CH = 1.09285 # Angstroms
|
|
20
36
|
"""Distance of the C-H bond, in Angstroms."""
|
|
@@ -38,16 +54,43 @@ r_NH = distance_NH * np.sin(np.deg2rad(angle_NH)) * 1e-10
|
|
|
38
54
|
"""Rotation radius of the amine group, in meters."""
|
|
39
55
|
|
|
40
56
|
# Inertia, SI units
|
|
41
|
-
|
|
42
|
-
I_CH3 = 3 * (periodictable.H.mass * _amu * r_CH**2)
|
|
57
|
+
I_CH3 = 3 * (periodictable.H.mass * amu_to_kg * r_CH**2)
|
|
43
58
|
"""Inertia of CH3, in kg·m^2."""
|
|
44
|
-
I_CD3 = 3 * (periodictable.D.mass *
|
|
59
|
+
I_CD3 = 3 * (periodictable.D.mass * amu_to_kg * r_CH**2)
|
|
45
60
|
"""Inertia of CD3, in kg·m^2."""
|
|
46
|
-
I_NH3 = 3 * (periodictable.H.mass *
|
|
61
|
+
I_NH3 = 3 * (periodictable.H.mass * amu_to_kg * r_NH**2)
|
|
47
62
|
"""Inertia of NH3, in kg·m^2."""
|
|
48
|
-
I_ND3 = 3 * (periodictable.D.mass *
|
|
63
|
+
I_ND3 = 3 * (periodictable.D.mass * amu_to_kg * r_NH**2)
|
|
49
64
|
"""Inertia of ND3, in kg·m^2."""
|
|
50
65
|
|
|
66
|
+
I_CH3NH3 = I_CH3 + I_NH3
|
|
67
|
+
"""Inertia of CH3NH3+, in kg·m^2."""
|
|
68
|
+
I_CD3NH3 = I_CD3 + I_NH3
|
|
69
|
+
"""Inertia of CD3NH3+, in kg·m^2."""
|
|
70
|
+
I_CH3ND3 = I_CH3 + I_ND3
|
|
71
|
+
"""Inertia of CH3ND3+, in kg·m^2."""
|
|
72
|
+
I_CD3ND3 = I_CD3 + I_ND3
|
|
73
|
+
"""Inertia of CD3ND3+, in kg·m^2."""
|
|
74
|
+
|
|
75
|
+
# Inertia, atomic units
|
|
76
|
+
I_CH3_amu = I_CH3 / (amu_to_kg * 1e-20)
|
|
77
|
+
"""Inertia of CH3, in amu·AA^2."""
|
|
78
|
+
I_CD3_amu = I_CD3 / (amu_to_kg * 1e-20)
|
|
79
|
+
"""Inertia of CD3, in amu·AA^2."""
|
|
80
|
+
I_NH3_amu = I_NH3 / (amu_to_kg * 1e-20)
|
|
81
|
+
"""Inertia of NH3, in amu·AA^2."""
|
|
82
|
+
I_ND3_amu = I_ND3 / (amu_to_kg * 1e-20)
|
|
83
|
+
"""Inertia of ND3, in amu·AA^2."""
|
|
84
|
+
|
|
85
|
+
I_CH3NH3_amu = I_CH3_amu + I_NH3_amu
|
|
86
|
+
"""Inertia of CH3NH3+, in amu·AA^2."""
|
|
87
|
+
I_CD3NH3_amu = I_CD3_amu + I_NH3_amu
|
|
88
|
+
"""Inertia of CD3NH3+, in amu·AA^2."""
|
|
89
|
+
I_CH3ND3_amu = I_CH3_amu + I_ND3_amu
|
|
90
|
+
"""Inertia of CH3ND3+, in amu·AA^2."""
|
|
91
|
+
I_CD3ND3_amu = I_CD3_amu + I_ND3_amu
|
|
92
|
+
"""Inertia of CD3ND3+, in amu·AA^2."""
|
|
93
|
+
|
|
51
94
|
# Rotational energy
|
|
52
95
|
_hbar = const.physical_constants['reduced Planck constant'][0]
|
|
53
96
|
B_CH3 = ((_hbar**2) / (2 * I_CH3)) * (1000 / const.eV)
|
|
@@ -59,6 +102,15 @@ B_NH3 = ((_hbar**2) / (2 * I_NH3)) * (1000 / const.eV)
|
|
|
59
102
|
B_ND3 = ((_hbar**2) / (2 * I_ND3)) * (1000 / const.eV)
|
|
60
103
|
"""Kinetic rotational energy of ND3, in meV·s/kg·m^2."""
|
|
61
104
|
|
|
105
|
+
B_CH3NH3 = ((_hbar**2) / (2 * I_CH3NH3)) * (1000 / const.eV)
|
|
106
|
+
"""Kinetic rotational energy of CH3NH3+, in meV·s/kg·m^2."""
|
|
107
|
+
B_CD3NH3 = ((_hbar**2) / (2 * I_CD3NH3)) * (1000 / const.eV)
|
|
108
|
+
"""Kinetic rotational energy of CD3NH3+, in meV·s/kg·m^2."""
|
|
109
|
+
B_CH3ND3 = ((_hbar**2) / (2 * I_CH3ND3)) * (1000 / const.eV)
|
|
110
|
+
"""Kinetic rotational energy of CH3ND3+, in meV·s/kg·m^2."""
|
|
111
|
+
B_CD3ND3 = ((_hbar**2) / (2 * I_CD3ND3)) * (1000 / const.eV)
|
|
112
|
+
"""Kinetic rotational energy of CD3ND3+, in meV·s/kg·m^2."""
|
|
113
|
+
|
|
62
114
|
# Potential constants from titov2023 [C1, C2, C3, C4, C5]
|
|
63
115
|
constants_titov2023 = [
|
|
64
116
|
[2.7860, 0.0130,-1.5284,-0.0037,-1.2791], # ZIF-8
|
|
@@ -73,17 +125,3 @@ for the `qrotor.potential.titov2023` potential.
|
|
|
73
125
|
In meV units.
|
|
74
126
|
"""
|
|
75
127
|
|
|
76
|
-
# Quick conversion factors
|
|
77
|
-
Ry_to_eV = const.physical_constants['Rydberg constant times hc in eV'][0]
|
|
78
|
-
"""Quick conversion factor from Rydberg to eV energy."""
|
|
79
|
-
Ry_to_meV = Ry_to_eV * 1000
|
|
80
|
-
"""Quick conversion factor from Rydberg to meV energy."""
|
|
81
|
-
eV_to_Ry = 1 / Ry_to_eV
|
|
82
|
-
"""Quick conversion factor from eV to Rydberg."""
|
|
83
|
-
meV_to_Ry = 1 / Ry_to_meV
|
|
84
|
-
"""Quick conversion factor from meV to Rydberg."""
|
|
85
|
-
cm1_to_meV = (const.h * const.c * 100 / const.e) * 1000
|
|
86
|
-
"""Quick conversion factor from cm$^{-1}$ to meV."""
|
|
87
|
-
meV_to_cm1 = 1/cm1_to_meV
|
|
88
|
-
"""Quick conversion factor from meV to cm$^{-1}$."""
|
|
89
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|