File: unitconvert_constants.py

package info (click to toggle)
python-ase 3.21.1-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 13,936 kB
  • sloc: python: 122,428; xml: 946; makefile: 111; javascript: 47
file content (172 lines) | stat: -rw-r--r-- 6,107 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# The following definitions are all given in SI and are excerpted from the
# kim_units.cpp file created by Prof. Ellad B. Tadmor (UMinn) distributed with
# LAMMPS. Note that these values do not correspond to any official CODATA set
# already released, but rather to the values used internally by LAMMPS.
#
# Source: https://physics.nist.gov/cuu/Constants/Table/allascii.txt

from numpy import sqrt

# Constants
boltz_si = 1.38064852e-23  # [J K^-1] Boltzmann's factor (NIST value)
Nav = mole_si = 6.022140857e23  # [unitless] Avogadro's number
me_si = 9.10938356e-31  # [kg] electron rest mass
e_si = 1.6021766208e-19  # [C] elementary charge

# Distance units
meter_si = 1.0
bohr_si = (
    5.2917721067e-11
)  # [m] Bohr unit (distance between nucleus and electron in H)
angstrom_si = 1e-10  # [m] Angstrom
centimeter_si = 1e-2  # [m] centimeter
micrometer_si = 1e-6  # [m] micrometer (micron)
nanometer_si = 1e-9  # [m] nanometer

# Mass units
kilogram_si = 1.0
amu_si = gram_per_mole_si = 1e-3 / Nav  # [kg] gram per mole i.e. amu
gram_si = 1e-3  # [kg] gram
picogram_si = 1e-15  # [kg] picogram
attogram_si = 1e-21  # [kg[ attogram

# Time units
second_si = 1.0
atu_si = 2.418884326509e-17  # [s] atomic time unit
# ( = hbar/E_h where E_h is the  Hartree energy) (NIST value)
atu_electron_si = atu_si * sqrt(
    amu_si / me_si
)  # [s] atomic time unit used in electron system
microsecond_si = 1e-6  # [s] microsecond
nanosecond_si = 1e-9  # [s] nanosecond
picosecond_si = 1e-12  # [s] picosecond
femtosecond_si = 1e-15  # [s] femtosecond

# Density units
gram_per_centimetercu_si = (
    gram_si / centimeter_si ** 3
)  # [kg/m^3] gram/centimeter^3
amu_per_bohrcu_si = amu_si / bohr_si ** 3  # [kg/m^3] amu/bohr^3
picogram_per_micrometercu_si = (
    picogram_si / micrometer_si ** 3
)  # [kg/m^3] picogram/micrometer^3
attogram_per_nanometercu_si = (
    attogram_si / nanometer_si ** 3
)  # [kg/m^3] attogram/nanometer^3

# Energy/torque units
joule_si = 1.0
kcal_si = (
    4184.0
)  # [J] kilocalorie (heat energy involved in warming up one kilogram of
# water by one degree Kelvin)
ev_si = (
    1.6021766208e-19
)  # [J] electron volt (amount of energy gained or lost by the
# charge of a single electron moving across an electric
# potential difference of one volt.) (NIST value)
hartree_si = (
    4.359744650e-18
)  # [J] Hartree (approximately the electric potential energy
# of the hydrogen atom in its ground state) (NIST value)
kcal_per_mole_si = kcal_si / Nav  # [J] kcal/mole
erg_si = 1e-7  # [J] erg
dyne_centimeter_si = 1e-7  # [J[ dyne*centimeter
picogram_micrometersq_per_microsecondsq_si = (
    picogram_si * micrometer_si ** 2 / microsecond_si ** 2
)  # [J] picogram*micrometer^2/microsecond^2
attogram_nanometersq_per_nanosecondsq_si = (
    attogram_si * nanometer_si ** 2 / nanosecond_si ** 2
)  # [J] attogram*nanometer^2/nanosecond^2

# Velocity units
meter_per_second_si = 1.0
angstrom_per_femtosecond_si = (
    angstrom_si / femtosecond_si
)  # [m/s] Angstrom/femtosecond
angstrom_per_picosecond_si = (
    angstrom_si / picosecond_si
)  # [m/s] Angstrom/picosecond
micrometer_per_microsecond_si = (
    micrometer_si / microsecond_si
)  # [m/s] micrometer/microsecond
nanometer_per_nanosecond_si = (
    nanometer_si / nanosecond_si
)  # [m/s] nanometer/nanosecond
centimeter_per_second_si = centimeter_si  # [m/s] centimeter/second
bohr_per_atu_si = bohr_si / atu_electron_si  # [m/s] bohr/atu

# Force units
newton_si = 1.0
kcal_per_mole_angstrom_si = (
    kcal_per_mole_si / angstrom_si
)  # [N] kcal/(mole*Angstrom)
ev_per_angstrom_si = ev_si / angstrom_si  # [N] eV/Angstrom
dyne_si = dyne_centimeter_si / centimeter_si  # [N] dyne
hartree_per_bohr_si = hartree_si / bohr_si  # [N] hartree/bohr
picogram_micrometer_per_microsecondsq_si = (
    picogram_si * micrometer_si / microsecond_si ** 2
)  # [N] picogram*micrometer/microsecond^2
attogram_nanometer_per_nanosecondsq_si = (
    attogram_si * nanometer_si / nanosecond_si ** 2
)  # [N] attogram*nanometer/nanosecond^2

# Temperature units
kelvin_si = 1.0

# Pressure units
pascal_si = 1.0
atmosphere_si = 101325.0  # [Pa] standard atmosphere (NIST value)
bar_si = 1e5  # [Pa] bar
dyne_per_centimetersq_si = (
    dyne_centimeter_si / centimeter_si ** 3
)  # [Pa] dyne/centimeter^2
picogram_per_micrometer_microsecondsq_si = picogram_si / (
    micrometer_si * microsecond_si ** 2
)  # [Pa] picogram/(micrometer*microsecond^2)
attogram_per_nanometer_nanosecondsq_si = attogram_si / (
    nanometer_si * nanosecond_si ** 2
)  # [Pa] attogram/(nanometer*nanosecond^2)

# Viscosity units
poise_si = 0.1  # [Pa*s] Poise
amu_per_bohr_femtosecond_si = amu_si / (
    bohr_si * femtosecond_si
)  # [Pa*s] amu/(bohr*femtosecond)
picogram_per_micrometer_microsecond_si = picogram_si / (
    micrometer_si * microsecond_si
)  # [Pa*s] picogram/(micrometer*microsecond)
attogram_per_nanometer_nanosecond_si = attogram_si / (
    nanometer_si * nanosecond_si
)  # [Pa*s] attogram/(nanometer*nanosecond)

# Charge units
coulomb_si = 1.0
echarge_si = e_si  # [C] electron charge unit
statcoulomb_si = (
    e_si / 4.8032044e-10
)  # [C] Statcoulomb or esu (value from LAMMPS units documentation)
picocoulomb_si = 1e-12  # [C] picocoulomb

# Dipole units
coulomb_meter_si = 1
electron_angstrom_si = echarge_si * angstrom_si  # [C*m] electron*angstrom
statcoulomb_centimeter_si = (
    statcoulomb_si * centimeter_si
)  # [C*m] statcoulomb*centimeter
debye_si = 1e-18 * statcoulomb_centimeter_si  # [C*m] Debye
picocoulomb_micrometer_si = (
    picocoulomb_si * micrometer_si
)  # [C*m] picocoulomb*micrometer
electron_nanometer_si = echarge_si * nanometer_si  # [C*m] electron*nanometer

# Electric field units
volt_si = 1.0
volt_per_meter_si = 1
volt_per_angstrom_si = 1.0 / angstrom_si  # [V/m] volt/angstrom
statvolt_per_centimeter_si = erg_si / (
    statcoulomb_si * centimeter_si
)  # [V/m] statvolt/centimeter
volt_per_centimeter_si = 1.0 / centimeter_si  # [V/m] volt/centimeter
volt_per_micrometer_si = 1.0 / micrometer_si  # [V/m] volt/micrometer
volt_per_nanometer_si = 1.0 / nanometer_si  # [V/m] volt/nanometer