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

1# fmt: off 

2 

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 

9 

10from numpy import sqrt 

11 

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 

17 

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 

27 

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 

34 

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 

46 

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 

58 

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 

83 

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 

100 

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 

115 

116# Temperature units 

117kelvin_si = 1.0 

118 

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) 

132 

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) 

144 

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 

152 

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 

164 

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