Coverage for /builds/ase/ase/ase/calculators/lammps/unitconvert_constants.py: 100.00%
78 statements
« prev ^ index » next coverage.py v7.5.3, created at 2025-08-02 00:12 +0000
« prev ^ index » next coverage.py v7.5.3, created at 2025-08-02 00:12 +0000
1# fmt: off
3# The following definitions are all given in SI and are excerpted from the
4# kim_units.cpp file created by Prof. Ellad B. Tadmor (UMinn) distributed with
5# LAMMPS. Note that these values do not correspond to any official CODATA set
6# already released, but rather to the values used internally by LAMMPS.
7#
8# Source: https://physics.nist.gov/cuu/Constants/Table/allascii.txt
10from numpy import sqrt
12# Constants
13boltz_si = 1.38064852e-23 # [J K^-1] Boltzmann's factor (NIST value)
14Nav = mole_si = 6.022140857e23 # [unitless] Avogadro's number
15me_si = 9.10938356e-31 # [kg] electron rest mass
16e_si = 1.6021766208e-19 # [C] elementary charge
18# Distance units
19meter_si = 1.0
20bohr_si = (
21 5.2917721067e-11
22) # [m] Bohr unit (distance between nucleus and electron in H)
23angstrom_si = 1e-10 # [m] Angstrom
24centimeter_si = 1e-2 # [m] centimeter
25micrometer_si = 1e-6 # [m] micrometer (micron)
26nanometer_si = 1e-9 # [m] nanometer
28# Mass units
29kilogram_si = 1.0
30amu_si = gram_per_mole_si = 1e-3 / Nav # [kg] gram per mole i.e. amu
31gram_si = 1e-3 # [kg] gram
32picogram_si = 1e-15 # [kg] picogram
33attogram_si = 1e-21 # [kg[ attogram
35# Time units
36second_si = 1.0
37atu_si = 2.418884326509e-17 # [s] atomic time unit
38# ( = hbar/E_h where E_h is the Hartree energy) (NIST value)
39atu_electron_si = atu_si * sqrt(
40 amu_si / me_si
41) # [s] atomic time unit used in electron system
42microsecond_si = 1e-6 # [s] microsecond
43nanosecond_si = 1e-9 # [s] nanosecond
44picosecond_si = 1e-12 # [s] picosecond
45femtosecond_si = 1e-15 # [s] femtosecond
47# Density units
48gram_per_centimetercu_si = (
49 gram_si / centimeter_si ** 3
50) # [kg/m^3] gram/centimeter^3
51amu_per_bohrcu_si = amu_si / bohr_si ** 3 # [kg/m^3] amu/bohr^3
52picogram_per_micrometercu_si = (
53 picogram_si / micrometer_si ** 3
54) # [kg/m^3] picogram/micrometer^3
55attogram_per_nanometercu_si = (
56 attogram_si / nanometer_si ** 3
57) # [kg/m^3] attogram/nanometer^3
59# Energy/torque units
60joule_si = 1.0
61kcal_si = (
62 4184.0
63) # [J] kilocalorie (heat energy involved in warming up one kilogram of
64# water by one degree Kelvin)
65ev_si = (
66 1.6021766208e-19
67) # [J] electron volt (amount of energy gained or lost by the
68# charge of a single electron moving across an electric
69# potential difference of one volt.) (NIST value)
70hartree_si = (
71 4.359744650e-18
72) # [J] Hartree (approximately the electric potential energy
73# of the hydrogen atom in its ground state) (NIST value)
74kcal_per_mole_si = kcal_si / Nav # [J] kcal/mole
75erg_si = 1e-7 # [J] erg
76dyne_centimeter_si = 1e-7 # [J[ dyne*centimeter
77picogram_micrometersq_per_microsecondsq_si = (
78 picogram_si * micrometer_si ** 2 / microsecond_si ** 2
79) # [J] picogram*micrometer^2/microsecond^2
80attogram_nanometersq_per_nanosecondsq_si = (
81 attogram_si * nanometer_si ** 2 / nanosecond_si ** 2
82) # [J] attogram*nanometer^2/nanosecond^2
84# Velocity units
85meter_per_second_si = 1.0
86angstrom_per_femtosecond_si = (
87 angstrom_si / femtosecond_si
88) # [m/s] Angstrom/femtosecond
89angstrom_per_picosecond_si = (
90 angstrom_si / picosecond_si
91) # [m/s] Angstrom/picosecond
92micrometer_per_microsecond_si = (
93 micrometer_si / microsecond_si
94) # [m/s] micrometer/microsecond
95nanometer_per_nanosecond_si = (
96 nanometer_si / nanosecond_si
97) # [m/s] nanometer/nanosecond
98centimeter_per_second_si = centimeter_si # [m/s] centimeter/second
99bohr_per_atu_si = bohr_si / atu_electron_si # [m/s] bohr/atu
101# Force units
102newton_si = 1.0
103kcal_per_mole_angstrom_si = (
104 kcal_per_mole_si / angstrom_si
105) # [N] kcal/(mole*Angstrom)
106ev_per_angstrom_si = ev_si / angstrom_si # [N] eV/Angstrom
107dyne_si = dyne_centimeter_si / centimeter_si # [N] dyne
108hartree_per_bohr_si = hartree_si / bohr_si # [N] hartree/bohr
109picogram_micrometer_per_microsecondsq_si = (
110 picogram_si * micrometer_si / microsecond_si ** 2
111) # [N] picogram*micrometer/microsecond^2
112attogram_nanometer_per_nanosecondsq_si = (
113 attogram_si * nanometer_si / nanosecond_si ** 2
114) # [N] attogram*nanometer/nanosecond^2
116# Temperature units
117kelvin_si = 1.0
119# Pressure units
120pascal_si = 1.0
121atmosphere_si = 101325.0 # [Pa] standard atmosphere (NIST value)
122bar_si = 1e5 # [Pa] bar
123dyne_per_centimetersq_si = (
124 dyne_centimeter_si / centimeter_si ** 3
125) # [Pa] dyne/centimeter^2
126picogram_per_micrometer_microsecondsq_si = picogram_si / (
127 micrometer_si * microsecond_si ** 2
128) # [Pa] picogram/(micrometer*microsecond^2)
129attogram_per_nanometer_nanosecondsq_si = attogram_si / (
130 nanometer_si * nanosecond_si ** 2
131) # [Pa] attogram/(nanometer*nanosecond^2)
133# Viscosity units
134poise_si = 0.1 # [Pa*s] Poise
135amu_per_bohr_femtosecond_si = amu_si / (
136 bohr_si * femtosecond_si
137) # [Pa*s] amu/(bohr*femtosecond)
138picogram_per_micrometer_microsecond_si = picogram_si / (
139 micrometer_si * microsecond_si
140) # [Pa*s] picogram/(micrometer*microsecond)
141attogram_per_nanometer_nanosecond_si = attogram_si / (
142 nanometer_si * nanosecond_si
143) # [Pa*s] attogram/(nanometer*nanosecond)
145# Charge units
146coulomb_si = 1.0
147echarge_si = e_si # [C] electron charge unit
148statcoulomb_si = (
149 e_si / 4.8032044e-10
150) # [C] Statcoulomb or esu (value from LAMMPS units documentation)
151picocoulomb_si = 1e-12 # [C] picocoulomb
153# Dipole units
154coulomb_meter_si = 1
155electron_angstrom_si = echarge_si * angstrom_si # [C*m] electron*angstrom
156statcoulomb_centimeter_si = (
157 statcoulomb_si * centimeter_si
158) # [C*m] statcoulomb*centimeter
159debye_si = 1e-18 * statcoulomb_centimeter_si # [C*m] Debye
160picocoulomb_micrometer_si = (
161 picocoulomb_si * micrometer_si
162) # [C*m] picocoulomb*micrometer
163electron_nanometer_si = echarge_si * nanometer_si # [C*m] electron*nanometer
165# Electric field units
166volt_si = 1.0
167volt_per_meter_si = 1
168volt_per_angstrom_si = 1.0 / angstrom_si # [V/m] volt/angstrom
169statvolt_per_centimeter_si = erg_si / (
170 statcoulomb_si * centimeter_si
171) # [V/m] statvolt/centimeter
172volt_per_centimeter_si = 1.0 / centimeter_si # [V/m] volt/centimeter
173volt_per_micrometer_si = 1.0 / micrometer_si # [V/m] volt/micrometer
174volt_per_nanometer_si = 1.0 / nanometer_si # [V/m] volt/nanometer