Coverage for larch/utils/physical_constants.py: 100%

19 statements  

« prev     ^ index     » next       coverage.py v7.6.0, created at 2024-10-16 21:04 +0000

1# Useful physical constants 

2# most of these are put into common X-ray units (Angstroms, ev) 

3 

4import scipy.constants as consts 

5from numpy import pi 

6 

7I = 0.0 + 1.0j 

8 

9RAD2DEG = 180.0/pi 

10DEG2RAD = pi/180.0 

11PI = pi 

12TAU = 2*pi 

13 

14# cross-section unit 

15BARN = 1.e-24 # cm^2 

16 

17# atoms/mol = 6.0221413e23 atoms/mol 

18AVOGADRO = consts.Avogadro 

19 

20# ATOMIC MASS in grams 

21AMU = consts.atomic_mass * 1000.0 

22 

23# electron rest mass in eV 

24E_MASS = consts.electron_mass * consts.c**2 / consts.e 

25 

26# Planck's Constant 

27# h*c ~= 12398.42 eV*Ang 

28# hbar*c ~= 1973.27 eV*Ang 

29PLANCK_HC = 1.e10 * consts.Planck * consts.c / consts.e 

30PLANCK_HBARC = PLANCK_HC / TAU 

31 

32# Rydberg constant in eV (~13.6 eV) 

33RYDBERG = consts.Rydberg * consts.Planck * consts.c/ consts.e 

34 

35# classical electron radius in cm and Ang 

36R_ELECTRON_CM = 100.0 * consts.physical_constants['classical electron radius'][0] 

37R_ELECTRON_ANG = 1.e8 * R_ELECTRON_CM 

38 

39 

40# a few standard lattice constants 

41STD_LATTICE_CONSTANTS = {'Si': 5.4310205, 'C': 3.567095, 'Ge': 5.64613} 

42 

43 

44# will be able to import these from xraydb when v 4.5.1 is required 

45ATOM_SYMS = ['H', 'He', 'Li', 'Be', 'B', 'C', 'N', 'O', 'F', 'Ne', 'Na', 'Mg', 

46 'Al', 'Si', 'P', 'S', 'Cl', 'Ar', 'K', 'Ca', 'Sc', 'Ti', 'V', 'Cr', 

47 'Mn', 'Fe', 'Co', 'Ni', 'Cu', 'Zn', 'Ga', 'Ge', 'As', 'Se', 'Br', 

48 'Kr', 'Rb', 'Sr', 'Y', 'Zr', 'Nb', 'Mo', 'Tc', 'Ru', 'Rh', 'Pd', 

49 'Ag', 'Cd', 'In', 'Sn', 'Sb', 'Te', 'I', 'Xe', 'Cs', 'Ba', 'La', 

50 'Ce', 'Pr', 'Nd', 'Pm', 'Sm', 'Eu', 'Gd', 'Tb', 'Dy', 'Ho', 'Er', 

51 'Tm', 'Yb', 'Lu', 'Hf', 'Ta', 'W', 'Re', 'Os', 'Ir', 'Pt', 'Au', 

52 'Hg', 'Tl', 'Pb', 'Bi', 'Po', 'At', 'Rn', 'Fr', 'Ra', 'Ac', 'Th', 

53 'Pa', 'U', 'Np', 'Pu', 'Am', 'Cm', 'Bk', 'Cf', 'Es', 'Fm', 'Md', 

54 'No', 'Lr', 'Rf', 'Db', 'Sg', 'Bh', 'Hs', 'Mt', 'Ds', 'Rg', 'Cn', 

55 'Nh', 'Fl', 'Mc', 'Lv', 'Ts', 'Og'] 

56 

57ATOM_NAMES = ['hydrogen', 'helium', 'lithium', 'beryllium', 'boron', 'carbon', 

58 'nitrogen', 'oxygen', 'fluorine', 'neon', 'sodium', 'magnesium', 

59 'aluminum', 'silicon', 'phosphorus', 'sulfur', 'chlorine', 'argon', 

60 'potassium', 'calcium', 'scandium', 'titanium', 'vanadium', 

61 'chromium', 'manganese', 'iron', 'cobalt', 'nickel', 'copper', 

62 'zinc', 'gallium', 'germanium', 'arsenic', 'selenium', 'bromine', 

63 'krypton', 'rubidium', 'strontium', 'yttrium', 'zirconium', 

64 'niobium', 'molybdenum', 'technetium', 'ruthenium', 'rhodium', 

65 'palladium', 'silver', 'cadmium', 'indium', 'tin', 'antimony', 

66 'tellurium', 'iodine', 'xenon', 'cesium', 'barium', 'lanthanum', 

67 'cerium', 'praseodymium', 'neodymium', 'promethium', 'samarium', 

68 'europium', 'gadolinium', 'terbium', 'dysprosium', 'holmium', 

69 'erbium', 'thulium', 'ytterbium', 'lutetium', 'hafnium', 

70 'tantalum', 'tungsten', 'rhenium', 'osmium', 'iridium', 'platinum', 

71 'gold', 'mercury', 'thallium', 'lead', 'bismuth', 'polonium', 

72 'astatine', 'radon', 'francium', 'radium', 'actinium', 'thorium', 

73 'protactinium', 'uranium', 'neptunium', 'plutonium', 'americium', 

74 'curium', 'berkelium', 'californium', 'einsteinium', 'fermium', 

75 'mendelevium', 'nobelium', 'lawrencium', 'rutherfordium', 

76 'dubnium', 'seaborgium', 'bohrium', 'hassium', 'meitnerium', 

77 'darmstadtium', 'roentgenium', 'copernicium', 'nihonium', 

78 'flerovium', 'moscovium', 'livermorium', 'tennessine', 'oganesson']