|
| 1 | +from math import pi |
| 2 | + |
| 3 | + |
1 | 4 | class Coefficients: |
| 5 | + # Same as used in: JS/TS |
2 | 6 | EV_TO_RY = 0.0734986176 |
3 | 7 | BOHR_TO_ANGSTROM = 0.52917721092 |
4 | 8 | ANGSTROM_TO_BOHR = 1 / 0.52917721092 |
5 | 9 | EV_A_TO_RY_BOHR = 1 / 25.71104309541616 |
6 | 10 |
|
| 11 | + # The below is migrated from: |
| 12 | + # https://github.com/Exabyte-io/express/blob/22614e549cdc3b0c344718b72ee2000383d77922/express/parsers/settings.py |
| 13 | + # and originally taken from https://github.com/hplgit/physical-quantities/blob/master/PhysicalQuantities.py |
| 14 | + |
| 15 | + # Internal, for convenience purposes |
| 16 | + _c = 299792458.0 # speed of light, m/s |
| 17 | + _mu0 = 4.0e-7 * pi # permeability of vacuum |
| 18 | + _eps0 = 1 / _mu0 / _c**2 # permittivity of vacuum |
| 19 | + _Grav = 6.67259e-11 # gravitational constant |
| 20 | + _hplanck = 6.6260755e-34 # Planck constant, J s |
| 21 | + _hbar = _hplanck / (2 * pi) # Planck constant / 2pi, J s |
| 22 | + _e = 1.60217733e-19 # elementary charge |
| 23 | + _me = 9.1093897e-31 # electron mass |
| 24 | + _mp = 1.6726231e-27 # proton mass |
| 25 | + _Nav = 6.0221367e23 # Avogadro number |
| 26 | + _k = 1.380658e-23 # Boltzmann constant, J/K |
| 27 | + _amu = 1.6605402e-27 # atomic mass unit, kg |
| 28 | + |
| 29 | + # External |
| 30 | + BOHR = 4e10 * pi * _eps0 * _hbar**2 / _me / _e**2 # Bohr radius in angstrom |
| 31 | + eV = 1.0 |
| 32 | + HARTREE = _me * _e**3 / 16 / pi**2 / _eps0**2 / _hbar**2 # in eV |
| 33 | + RYDBERG = 0.5 * HARTREE # in eV |
| 34 | + Ry = RYDBERG |
| 35 | + Ha = HARTREE |
| 36 | + kJ = 1000.0 / _e |
| 37 | + kcal = 4.184 * kJ |
| 38 | + cm_inv_to_ev = 0.00012398 # cm^-1 to eV |
| 39 | + ry_bohr_to_eV_A = 25.71104309541616 # or RYDBERG / BOHR |
| 40 | + |
7 | 41 |
|
8 | 42 | class Tolerance: |
9 | 43 | # in crystal coordinates |
|
0 commit comments