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
« 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)
4import scipy.constants as consts
5from numpy import pi
7I = 0.0 + 1.0j
9RAD2DEG = 180.0/pi
10DEG2RAD = pi/180.0
11PI = pi
12TAU = 2*pi
14# cross-section unit
15BARN = 1.e-24 # cm^2
17# atoms/mol = 6.0221413e23 atoms/mol
18AVOGADRO = consts.Avogadro
20# ATOMIC MASS in grams
21AMU = consts.atomic_mass * 1000.0
23# electron rest mass in eV
24E_MASS = consts.electron_mass * consts.c**2 / consts.e
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
32# Rydberg constant in eV (~13.6 eV)
33RYDBERG = consts.Rydberg * consts.Planck * consts.c/ consts.e
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
40# a few standard lattice constants
41STD_LATTICE_CONSTANTS = {'Si': 5.4310205, 'C': 3.567095, 'Ge': 5.64613}
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']
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']