diff --git a/atomdb/__init__.py b/atomdb/__init__.py index 92bb2aed..b061614c 100644 --- a/atomdb/__init__.py +++ b/atomdb/__init__.py @@ -24,6 +24,8 @@ from atomdb.promolecule import * +from atomdb.periodic import * + __version__ = version r"""AtomDB version string.""" diff --git a/atomdb/data/data_info.csv b/atomdb/data/data_info.csv new file mode 100644 index 00000000..8a2ff908 --- /dev/null +++ b/atomdb/data/data_info.csv @@ -0,0 +1,18 @@ +#Property key,Property name,Source key,units,Property description,Reference,doi,Notes +cov_radius,Covalent radius,cordero,angstrom,Covalent radius (derived from crystallographic data),"B. Cordero, V. Gomez, A. E. Platero-Prats, M. Reves, J. Echeverria,E. Cremades,\nF. Barragan, and S. Alvarez, Dalton Trans. pp. 2832--2838 (2008)",http://dx.doi.org/10.1039/b801115j,"For carbon the number is a weighted average over the data for different hybridizations.\nFor Mn, Fe, and Co, the number is a weighted average over the data for different spins\n(high spin and low spin)" +cov_radius,Covalent radius,bragg,angstrom,"Bragg radius (covalent, metallic and ionic bonds, derived from crystallographic data)","W. L. Bragg, Phil. Mag. 40, 169 (1920)",http://dx.doi.org/10.1080/14786440808636111, +cov_radius,Covalent radius,slater,angstrom,"Slater radius (covalent, metallic and ionic bonds, derived from crystallographic data)","J. C. Slater, J. Chem. Phys. 41, 3199 (1964)",http://dx.doi.org/10.1063/1.1725697, +vdw_radius,van der Waals radius,bondi,angstrom,van der Waals radius according to Bondi,"A. Bondi, J. Phys. Chem. 68, 441 (1964)",http://dx.doi.org/10.1021/j100785a001, +vdw_radius,van der Waals radius,truhlar,angstrom,van der Waals radii by Truhlar (corrections and additions to Bondi),M. Mantina A. C. Chamberlin R. Valero C. J. Cramer D. G. Truhlar J. Phys. Chem. A 113 5806 (2009),http://dx.doi.org/10.1021/jp8111556, +vdw_radius,van der Waals radius,rt,angstrom,van der Waals radius according to Rowland and Taylor,"R. S. Rowland and R. Taylor, J. Phys. Chem. 100, 7384 (1996)",http://dx.doi.org/10.1021/jp953141+, +vdw_radius,van der Waals radius,batsanov,angstrom,van der Waals radii by Batsanov,S. S. Batsanov Inorganic Materials 37 871 (2001),http://dx.doi.org/10.1023/a%3a1011625728803, +vdw_radius,van der Waals radius,dreiding,2angstrom,van der Waals radii from the DREIDING FF,"Stephen L. Mayo, Barry D. Olafson, and William A. Goddard III J. Phys. Chem. 94 8897 (1990)",http://dx.doi.org/10.1021/j100389a010,"R_0 parameter, unit 2angstrom is used so that numbers are divided by 2 upon reading" +vdw_radius,van der Waals radius,uff,2angstrom,van der Waals radii from UFF ,"A. K. Rappi, C. J. Casewit, K. S. Colwell, W. A. Goddard III, and W. M. Skid J. Am. Chem. Soc. 114 10024 (1992)",http://dx.doi.org/10.1021/ja00051a040,"x_I parameter, unit 2angstrom is used so that numbers are divided by 2 upon reading" +vdw_radius,van der Waals radius,mm3,angstrom,van der Waals radii from MM3,"N. L. Allinger, X. Zhou, and J. Bergsma, Journal of Molecular Structure: THEOCHEM 312, 69 (1994)",http://dx.doi.org/10.1016/s0166-1280(09)80008-0, +at_radius,atomic radius,wc,angstrom,Waber-Cromer atomic radius,"J. T. Waber and D. T. Cromer, J. Chem. Phys. 42, 4116 (1965)",http://dx.doi.org/10.1063/1.1695904,"For each element, the largest radius of the outer orbitals is taken." +at_radius,atomic radius,cr,angstrom,Clementi-Raimondi atomic radius,"E. Clementi, D. L. Raimondi, W. P. Reinhardt, J. Chem. Phys. 47, 1300 (1967)",http://dx.doi.org/10.1063/1.1712084, +eneg,Electronegativity,pauling,,Pauling electronegativity,"A. L. Allred, J. Inorg. Nuc. Chem. 17, 215 (1961)",http://dx.doi.org/10.1016/0022-1902(61)80142-5, +pold,Isolated atom dipole polarizability,crc,angstrom**3,Isolated atom dipole polarizability,"CRC Handbook of Chemistry and Physics (CRC, Boca Raton, FL, 2003).",,"If multiple values were present in the CRC book, the value used in Erin's postg code is taken" +pold,Isolated atom dipole polarizability,chu,au,Isolated atom dipole polarizability,"X. Chu & A. Dalgarno, J. Chem. Phys., 121(9), 4083–4088 (2004)",http://dx.doi.org/10.1063/1.1779576,"Theoretical value for hydrogen from this paper:\nA.D. Buckingham, K.L. Clarke, Chem. Phys. Lett. 57(3), 321--325 (1978)\nhttp://dx.doi.org/10.1016/0009-2614(78)85517-1" +c6,Isolated atom C6 dispersion coefficients,chu,au,Isolated atom C6 dispersion coefficients,"X. Chu & A. Dalgarno, J. Chem. Phys., 121(9), 4083–4088 (2004)",http://dx.doi.org/10.1063/1.1779576,"Theoretical value for hydrogen from this paper:\nK. T. Tang, J. M. Norbeck and P. R. Certain, J. Chem. Phys. 64, 3063 (1976)\nhttp://dx.doi.org/10.1063/1.432569" +mass,Atomic mass,stb,amu,IUPAC atomic mass (or weight for the chemists),"Thomas Prohaska et. al. Pure Appl. Chem. 2022, 94",https://doi.org/10.1515/pac-2019-0603, diff --git a/atomdb/data/elements.csv b/atomdb/data/elements.csv deleted file mode 100644 index 1100bbf3..00000000 --- a/atomdb/data/elements.csv +++ /dev/null @@ -1,213 +0,0 @@ -# Periodic table used in HORTON,,,,,,,,,,,,,,,,,,,,, -"# To make the numbers verifiable, the provenance of each data column is given below.",,,,,,,,,,,,,,,,,,,,, -# Only numbers literally mentioned in these papers are included.,,,,,,,,,,,,,,,,,,,,, -"# When some data is not provided in the reference for a given element, the cell is left empty.",,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# A: atomic number,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# B: atomic symbol,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# C: name,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# D: group,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# E: period,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# F: covalent radius (derived from crystallographic data),,,,,,,,,,,,,,,,,,,,, -"# B. Cordero, V. Gomez, A. E. Platero-Prats, M. Reves, J. Echeverria, E. Cremades, F. Barragan, and S. Alvarez, Dalton Trans. pp. 2832--2838 (2008)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1039/b801115j,,,,,,,,,,,,,,,,,,,,, -# For carbon the number is a weighted average over the data for different hybridizations.,,,,,,,,,,,,,,,,,,,,, -"# For Mn, Fe, and Co, the number is a weighted average over the data for different spins (high spin and low spin)",,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -"# G: Bragg radius (covalent, metallic and ionic bonds, derived from crystallographic data)",,,,,,,,,,,,,,,,,,,,, -"# W. L. Bragg, Phil. Mag. 40, 169 (1920)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1080/14786440808636111,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -"# H: Slater radius (covalent, metallic and ionic bonds, derived from crystallographic data)",,,,,,,,,,,,,,,,,,,,, -"# J. C. Slater, J. Chem. Phys. 41, 3199 (1964)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1063/1.1725697,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# I: van der Waals radius according to Bondi,,,,,,,,,,,,,,,,,,,,, -"# A. Bondi, J. Phys. Chem. 68, 441 (1964)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1021/j100785a001,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# J: van der Waals radii by Truhlar (corrections and additions to Bondi),,,,,,,,,,,,,,,,,,,,, -# M. Mantina A. C. Chamberlin R. Valero C. J. Cramer D. G. Truhlar J. Phys. Chem. A 113 5806 (2009),,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1021/jp8111556,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# K: van der Waals radius according to Rowland and Taylor,,,,,,,,,,,,,,,,,,,,, -"# R. S. Rowland and R. Taylor, J. Phys. Chem. 100, 7384 (1996)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1021/jp953141+,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# L: van der Waals radii by Batsanov,,,,,,,,,,,,,,,,,,,,, -# S. S. Batsanov Inorganic Materials 37 871 (2001),,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1023/a%3a1011625728803,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -"# M: van der Waals radii from the DREIDING FF (R_0 parameter, unit 2angstrom is used so that numbers are divided by 2 upon reading)",,,,,,,,,,,,,,,,,,,,, -"# Stephen L. Mayo, Barry D. Olafson, and William A. Goddard III J. Phys. Chem. 94 8897 (1990)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1021/j100389a010,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -"# N: van der Waals radii from UFF (x_I parameter, unit 2angstrom is used so that numbers are divided by 2 upon reading)",,,,,,,,,,,,,,,,,,,,, -"# A. K. Rappi, C. J. Casewit, K. S. Colwell, W. A. Goddard III, and W. M. Skid J. Am. Chem. Soc. 114 10024 (1992)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1021/ja00051a040,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# O: van der Waals radii from MM3,,,,,,,,,,,,,,,,,,,,, -"# N. L. Allinger, X. Zhou, and J. Bergsma, Journal of Molecular Structure: THEOCHEM 312, 69 (1994)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1016/s0166-1280(09)80008-0,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# P: Waber-Cromer radius,,,,,,,,,,,,,,,,,,,,, -"# J. T. Waber and D. T. Cromer, J. Chem. Phys. 42, 4116 (1965)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1063/1.1695904,,,,,,,,,,,,,,,,,,,,, -"# For each element, the largest radius of the outer orbitals is taken.",,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# Q: Clementi-Raimondi radius,,,,,,,,,,,,,,,,,,,,, -"# E. Clementi, D. L. Raimondi, W. P. Reinhardt, J. Chem. Phys. 47, 1300 (1967)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1063/1.1712084,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# R: Pauling electronegativity,,,,,,,,,,,,,,,,,,,,, -"# A. L. Allred, J. Inorg. Nuc. Chem. 17, 215 (1961)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1016/0022-1902(61)80142-5,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# S: Isolated atom dipole polarizability,,,,,,,,,,,,,,,,,,,,, -"# CRC Handbook of Chemistry and Physics (CRC, Boca Raton, FL, 2003).",,,,,,,,,,,,,,,,,,,,, -"# If multiple values were present in the CRC book, the value used in Erin's postg code is taken",,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# T: Isolated atom dipole polarizability,,,,,,,,,,,,,,,,,,,,, -"# X. Chu & A. Dalgarno, J. Chem. Phys., 121(9), 4083–4088 (2004)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1063/1.1779576,,,,,,,,,,,,,,,,,,,,, -# Theoretical value for hydrogen from this paper:,,,,,,,,,,,,,,,,,,,,, -"# A.D. Buckingham, K.L. Clarke, Chem. Phys. Lett. 57(3), 321--325 (1978)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1016/0009-2614(78)85517-1,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# U: Isolated atom C6 dispersion coefficients,,,,,,,,,,,,,,,,,,,,, -"# X. Chu & A. Dalgarno, J. Chem. Phys., 121(9), 4083–4088 (2004)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1063/1.1779576,,,,,,,,,,,,,,,,,,,,, -# Theoretical value for hydrogen from this paper:,,,,,,,,,,,,,,,,,,,,, -"# K. T. Tang, J. M. Norbeck and P. R. Certain, J. Chem. Phys. 64, 3063 (1976)",,,,,,,,,,,,,,,,,,,,, -# http://dx.doi.org/10.1063/1.432569,,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -# V: IUPAC atomic mass (or weight for the chemists),,,,,,,,,,,,,,,,,,,,, -"# T.B. Coplen, W.A. Brand, J. Meija, M. Gröning, N.E. Holden, M. Berglund, P. De Bièvre, R.D. Loss, T. Prohaska, and T. Walczyk. ciaaw.org (2013)",,,,,,,,,,,,,,,,,,,,, -# http://www.ciaaw.org/pubs/TSAW2013_xls.xls,,,,,,,,,,,,,,,,,,,,, -"# When ranges are provided, the middle of the range is used",,,,,,,,,,,,,,,,,,,,, -,,,,,,,,,,,,,,,,,,,,, -number,symbol,name,group,period,cov_radius_cordero,cov_radius_bragg,cov_radius_slater,vdw_radius_bondi,vdw_radius_truhlar,vdw_radius_rt,vdw_radius_batsanov,vdw_radius_dreiding,vdw_radius_uff,vdw_radius_mm3,wc_radius,cr_radius,eneg_pauling,pold_crc,pold_chu,c6_chu,mass -int,str,str,int,int,angstrom,angstrom,angstrom,angstrom,angstrom,angstrom,angstrom,2angstrom,2angstrom,angstrom,angstrom,angstrom,float,angstrom**3,au,au,amu -1,H,Hydrogen,1,1,0.31,,0.25,1.2,,1.1,,3.195,2.886,1.62,0.529192875,0.53,2.2,0.666793,4.5,6.499026705,1.007975 -2,He,Helium,18,1,0.28,,,1.4,,,,,2.362,1.53,0.291,0.31,,0.204956,1.38,1.42,4.002602 -3,Li,Lithium,1,2,1.28,1.5,1.45,1.81,,,2.2,,2.451,2.55,1.586,1.67,0.98,24.3,164,1392,6.9675 -4,Be,Beryllium,2,2,0.96,1.15,1.05,,1.53,,1.9,,2.745,2.23,1.04,1.12,1.57,5.6,38,227,9.0121831 -5,B,Boron,13,2,0.84,,0.85,,1.92,,1.8,4.02,4.083,2.15,0.776,0.87,2.04,3.03,21,99.5,10.8135 -6,C,Carbon,14,2,0.7445337366,0.77,0.7,1.7,,1.77,1.7,3.8983,3.851,2.04,0.62,0.67,2.55,1.76,12,46.6,12.0106 -7,N,Nitrogen,15,2,0.71,0.65,0.65,1.55,,1.64,1.6,3.6621,3.66,1.93,0.521,0.56,3.04,1.1,7.4,24.2,14.006855 -8,O,Oxygen,16,2,0.66,0.65,0.6,1.52,,1.58,1.55,3.4046,3.5,1.82,0.45,0.48,3.44,0.802,5.4,15.6,15.9994 -9,F,Fluorine,17,2,0.57,0.67,0.5,1.47,,1.46,1.5,3.472,3.364,1.71,0.396,0.42,3.98,0.557,3.8,9.52,18.998403163 -10,Ne,Neon,18,2,0.58,,,1.54,,1.81,,,3.243,1.6,0.354,0.38,,0.3956,2.67,6.2,20.1797 -11,Na,Sodium,1,3,1.66,1.77,1.8,2.27,,1.76,2.4,,2.983,2.7,1.713,1.9,0.93,24.11,163,1518,22.98976928 -12,Mg,Magnesium,2,3,1.41,1.42,1.5,1.73,,1.87,2.2,,3.021,2.43,1.279,1.45,1.31,10.6,71,626,24.3055 -13,Al,Aluminium,13,3,1.21,1.35,1.25,,1.84,2.03,2.1,4.39,4.499,2.36,1.312,1.18,1.61,6.8,60,528,26.9815385 -14,Si,Silicon,14,3,1.11,1.17,1.1,2.1,,,2.1,4.27,4.295,2.29,1.068,1.11,1.9,5.38,37,305,28.085 -15,P,Phosphorus,15,3,1.07,,1,1.8,,,1.95,4.15,4.147,2.22,0.919,0.98,2.19,3.63,25,185,30.973761998 -16,S,Sulfur,16,3,1.05,1.02,1,1.8,,,1.8,4.03,4.035,2.15,0.81,0.88,2.58,2.9,19.6,134,32.0675 -17,Cl,Chlorine,17,3,1.02,1.05,1,1.75,,,1.8,3.9503,3.947,2.07,0.725,0.79,3.16,2.18,15,94.6,35.4515 -18,Ar,Argon,18,3,1.06,,,1.88,,,,,3.868,1.99,0.659,0.71,,1.6411,11.1,64.2,39.948 -19,K,Potassium,1,4,2.03,2.07,2.2,2.75,,,2.8,,3.812,3.09,2.162,2.43,0.82,43.4,294,3923,39.0983 -20,Ca,Calcium,2,4,1.76,1.7,1.8,,2.31,,2.4,,3.399,2.81,1.69,1.94,1,22.8,160,2163,40.078 -21,Sc,Scandium,3,4,1.7,,1.6,,,,2.3,,3.295,2.61,1.57,1.84,1.36,17.8,120,1383,44.955908 -22,Ti,Titanium,4,4,1.6,1.4,1.4,,,,2.15,,3.175,2.39,1.477,1.76,1.54,14.6,98,1044,47.867 -23,V,Vanadium,5,4,1.53,,1.35,,,,2.05,,3.144,2.29,1.401,1.71,1.63,12.4,84,832,50.9415 -24,Cr,Chromium,6,4,1.39,1.4,1.4,,,,2.05,,3.023,2.25,1.453,1.66,1.66,11.6,78,602,51.9961 -25,Mn,Manganese,7,4,1.553504,1.47,1.4,,,,2.05,,2.961,2.24,1.278,1.61,1.55,9.4,63,552,54.938044 -26,Fe,Iron,8,4,1.4841791045,1.4,1.4,,,,2.05,,2.912,2.23,1.227,1.56,1.83,8.4,56,482,55.845 -27,Co,Cobalt,9,4,1.2975449102,1.37,1.35,,,,2,,2.872,2.23,1.181,1.52,1.88,7.5,50,408,58.933194 -28,Ni,Nickel,10,4,1.24,1.35,1.35,,,,2,,2.834,2.22,1.139,1.49,1.91,6.8,48,373,58.6934 -29,Cu,Copper,11,4,1.32,1.37,1.35,,,,2,,3.495,2.26,1.191,1.45,1.9,6.2,42,253,63.546 -30,Zn,Zinc,12,4,1.22,1.32,1.35,,,,2.1,,2.763,2.29,1.065,1.42,1.65,5.75,40,284,65.38 -31,Ga,Gallium,13,4,1.22,,1.3,1.87,,,2.1,4.39,4.383,2.46,1.254,1.36,1.81,8.12,60,498,69.723 -32,Ge,Germanium,14,4,1.2,,1.25,,2.11,,2.1,4.27,4.28,2.44,1.09,1.25,2.01,6.07,41,354,72.63 -33,As,Arsenic,15,4,1.19,1.26,1.15,1.85,,,2.05,4.15,4.23,2.36,1.001,1.14,2.18,4.31,29,246,74.921595 -34,Se,Selenium,16,4,1.2,1.17,1.15,1.9,,,1.9,4.03,4.205,2.29,0.918,1.03,2.55,3.77,25,210,78.971 -35,Br,Bromine,17,4,1.2,1.19,1.15,1.83,,,1.9,3.95,4.189,2.22,0.851,0.94,2.96,3.05,20,162,79.904 -36,Kr,Krypton,18,4,1.16,,,2.02,,,,,4.141,2.15,0.795,0.88,,2.4844,16.7,130,83.798 -37,Rb,Rubidium,1,5,2.2,2.25,2.35,,3.03,,2.9,,4.114,3.25,2.287,2.65,0.82,47.3,320,4769,85.4678 -38,Sr,Strontium,2,5,1.95,1.95,2,,2.49,,2.55,,3.641,3,1.836,2.19,0.95,27.6,199,3175,87.62 -39,Y,Yttrium,3,5,1.9,,1.8,,,,2.4,,3.345,2.71,1.693,2.12,1.22,22.7,,,88.90584 -40,Zr,Zirconium,4,5,1.75,,1.55,,,,2.3,,3.124,2.54,1.593,2.06,1.33,17.9,,,91.224 -41,Nb,Niobium,5,5,1.64,,1.45,,,,2.15,,3.165,2.43,1.589,1.98,,15.7,,,92.90637 -42,Mo,Molybdenum,6,5,1.54,,1.45,,,,2.1,,3.052,2.39,1.52,1.9,2.16,12.8,,,95.95 -43,Tc,Technetium,7,5,1.47,,1.35,,,,2.05,,2.998,2.36,1.391,1.83,,11.4,,, -44,Ru,Ruthenium,8,5,1.46,,1.3,,,,2.05,,2.963,2.34,1.41,1.78,,9.6,,,101.07 -45,Rh,Rhodium,9,5,1.42,,1.35,,,,2,,2.929,2.34,1.364,1.73,2.28,8.6,,,102.9055 -46,Pd,Palladium,10,5,1.39,,1.4,,,,2.05,,2.899,2.37,0.567,1.69,2.2,4.8,,,106.42 -47,Ag,Silver,11,5,1.45,1.77,1.6,,,,2.1,,3.148,2.43,1.286,1.65,1.93,7.2,,,107.8682 -48,Cd,Cadmium,12,5,1.44,1.6,1.55,,,,2.2,,2.848,2.5,1.184,1.61,1.69,7.36,,,112.414 -49,In,Indium,13,5,1.42,,1.55,1.93,,,2.2,4.59,4.463,2.64,1.382,1.56,1.78,10.2,75,779,114.818 -50,Sn,Tin,14,5,1.39,1.4,1.45,2.17,,,2.25,4.47,4.392,2.59,1.24,1.45,1.96,7.7,60,659,118.71 -51,Sb,Antimony,15,5,1.39,1.4,1.45,,2.06,,2.2,4.35,4.42,2.52,1.193,1.33,2.05,6.6,44,492,121.76 -52,Te,Tellurium,16,5,1.38,1.33,1.4,2.06,,,2.1,4.23,4.47,2.44,1.111,1.23,,5.5,40,445,127.6 -53,I,Iodine,17,5,1.39,1.4,1.4,1.98,,,2.1,4.15,4.5,2.36,1.044,1.15,2.66,5.35,35,385,126.90447 -54,Xe,Xenon,18,5,1.4,,,2.16,,,,,4.404,2.28,0.986,1.08,,4.044,,,131.293 -55,Cs,Caesium,1,6,2.44,2.37,2.6,,3.43,,3,,4.517,3.44,2.518,2.98,0.79,59.42,,,132.90545196 -56,Ba,Barium,2,6,2.15,2.1,2.15,,2.68,,2.7,,3.703,3.07,2.06,2.53,0.89,39.7,,,137.327 -57,La,Lanthanum,,6,2.07,,1.95,,,,2.5,,3.522,2.78,1.915,,1.1,31.1,,,138.90547 -58,Ce,Cerium,,6,2.04,,1.85,,,,,,3.556,2.74,1.978,,,29.6,,,140.116 -59,Pr,Praseodymium,,6,2.03,,1.85,,,,,,3.606,2.73,1.942,2.47,1.13,28.2,,,140.90766 -60,Nd,Neodymium,,6,2.01,,1.85,,,,,,3.575,2.73,1.912,2.06,1.14,31.4,,,144.242 -61,Pm,Promethium,,6,1.99,,1.85,,,,,,3.547,2.72,1.882,2.05,,30.1,,, -62,Sm,Samarium,,6,1.98,,1.85,,,,,,3.52,2.71,1.854,2.38,1.17,28.8,,,150.36 -63,Eu,Europium,,6,1.98,,1.85,,,,,,3.493,2.94,1.826,2.31,,27.7,,,151.964 -64,Gd,Gadolinium,,6,1.96,,1.8,,,,,,3.368,2.71,1.713,2.33,1.2,23.5,,,157.25 -65,Tb,Terbium,,6,1.94,,1.75,,,,,,3.451,2.7,1.775,2.25,,25.5,,,158.92535 -66,Dy,Dysprosium,,6,1.92,,1.75,,,,,,3.428,2.9,1.75,2.28,1.22,24.5,,,162.5 -67,Ho,Holmium,,6,1.92,,1.75,,,,,,3.409,2.67,1.727,2.26,1.23,23.6,,,164.93033 -68,Er,Erbium,,6,1.89,,1.75,,,,,,3.391,2.67,1.703,2.26,1.24,22.7,,,167.259 -69,Tm,Thulium,,6,1.9,,1.75,,,,,,3.374,2.67,1.681,2.22,1.25,21.8,,,168.93422 -70,Yb,Ytterbium,,6,1.87,,1.75,,,,,,3.355,2.79,1.658,2.22,,21,,,173.054 -71,Lu,Lutetium,3,6,1.87,,1.75,,,,,,3.64,2.65,1.553,2.17,1.27,21.9,,,174.9668 -72,Hf,Hafnium,4,6,1.75,,1.55,,,,2.25,,3.141,2.53,1.476,2.08,,16.2,,,178.49 -73,Ta,Tantalum,5,6,1.7,,1.45,,,,2.2,,3.17,2.43,1.413,2,,13.1,,,180.94788 -74,W,Tungsten,6,6,1.62,,1.35,,,,2.1,,3.096,2.39,1.36,1.93,2.36,11.1,,,183.84 -75,Re,Rhenium,7,6,1.51,,1.35,,,,2.05,,2.954,2.37,1.31,1.88,,9.7,,,186.207 -76,Os,Osmium,8,6,1.44,,1.3,,,,2,,3.12,2.35,1.266,1.85,,8.5,,,190.23 -77,Ir,Iridium,9,6,1.41,,1.35,,,,2,,2.84,2.36,1.227,1.8,2.2,7.6,,,192.217 -78,Pt,Platinum,10,6,1.36,,1.35,,,,2.05,,2.754,2.39,1.221,1.77,2.28,6.5,,,195.084 -79,Au,Gold,11,6,1.36,,1.35,,,,2.1,,3.293,2.43,1.187,1.74,2.54,5.8,,,196.966569 -80,Hg,Mercury,12,6,1.32,,1.5,,,,2.05,,2.705,2.53,1.126,1.71,2,5.02,,,200.592 -81,Tl,Thallium,13,6,1.45,1.9,1.9,1.96,,,2.2,,4.347,2.59,1.319,1.56,2.04,7.6,,,204.3835 -82,Pb,Lead,14,6,1.46,,,2.02,,,2.3,,4.297,2.74,1.215,1.54,2.33,6.8,,,207.2 -83,Bi,Bismuth,15,6,1.48,1.48,1.6,,2.07,,2.3,,4.37,2.66,1.295,1.43,2.02,7.4,,,208.9804 -84,Po,Polonium,16,6,1.4,,1.9,,1.97,,,,4.709,2.59,1.212,1.35,,6.8,,, -85,At,Astatine,17,6,1.5,,,,2.02,,,,4.75,2.51,1.146,1.27,,6,,, -86,Rn,Radon,18,6,1.5,,,,2.2,,,,4.765,2.43,1.09,1.2,,5.3,,, -87,Fr,Francium,1,7,2.6,,,,3.48,,,,4.9,3.64,2.447,,,47.1,,, -88,Ra,Radium,2,7,2.21,,2.15,,2.83,,,,3.677,3.27,2.042,,,38.3,,, -89,Ac,Actinium,,7,2.15,,1.95,,,,,,3.478,3.08,1.895,,,32.1,,, -90,Th,Thorium,,7,2.06,,1.8,,,,2.4,,3.396,2.74,1.788,,,32.1,,,232.0377 -91,Pa,Protactinium,,7,2,,1.8,,,,,,3.424,2.64,1.804,,,25.4,,,231.03588 -92,U,Uranium,,7,1.96,,1.75,,,,2.3,,3.395,2.52,1.775,,1.38,24.9,,,238.02891 -93,Np,Neptunium,,7,1.9,,1.75,,,,,,3.424,2.52,1.741,,1.36,24.8,,, -94,Pu,Plutonium,,7,1.87,,1.75,,,,,,3.424,2.52,1.784,,1.28,24.5,,, -95,Am,Americium,,7,1.8,,1.75,,,,,,3.381,,1.757,,,23.3,,, -96,Cm,Curium,,7,1.69,,,,,,,,3.326,,1.657,,,23,,, -97,Bk,Berkelium,,7,,,,,,,,,3.339,,1.626,,,22.7,,, -98,Cf,Californium,,7,,,,,,,,,3.313,,1.598,,,20.5,,, -99,Es,Einsteinium,,7,,,,,,,,,3.299,,1.576,,,19.7,,, -100,Fm,Fermium,,7,,,,,,,,,3.286,,1.557,,,23.8,,, -101,Md,Mendelevium,,7,,,,,,,,,3.274,,1.527,,,18.2,,, -102,No,Nobelium,,7,,,,,,,,,3.248,,1.581,,,17.5,,, -103,Lr,Lawrencium,3,7,,,,,,,,,3.236,,,,,,,, -104,Rf,Rutherfordium,4,7,,,,,,,,,,,,,,,,, -105,Db,Dubnium,5,7,,,,,,,,,,,,,,,,, -106,Sg,Seaborgium,6,7,,,,,,,,,,,,,,,,, -107,Bh,Bohrium,7,7,,,,,,,,,,,,,,,,, -108,Hs,Hassium,8,7,,,,,,,,,,,,,,,,, -109,Mt,Meitnerium,9,7,,,,,,,,,,,,,,,,, -110,Ds,Darmstadtium,10,7,,,,,,,,,,,,,,,,, -111,Rg,Roentgenium,11,7,,,,,,,,,,,,,,,,, -112,Cn,Copernicium,12,7,,,,,,,,,,,,,,,,, -113,Uut,Ununtrium,13,7,,,,,,,,,,,,,,,,, -114,Fl,Flerovium,14,7,,,,,,,,,,,,,,,,, -115,Uup,Ununpentium,15,7,,,,,,,,,,,,,,,,, -116,Lv,Livermorium,16,7,,,,,,,,,,,,,,,,, -117,Uus,Ununseptium,17,7,,,,,,,,,,,,,,,,, -118,Uuo,Ununoctium,18,7,,,,,,,,,,,,,,,,, diff --git a/atomdb/data/elements_data.csv b/atomdb/data/elements_data.csv new file mode 100644 index 00000000..d8621dda --- /dev/null +++ b/atomdb/data/elements_data.csv @@ -0,0 +1,125 @@ +#Periodic Table data.,,,,,,,,,,,,,,,,,,,,,, +# First row indicates the property,,,,,,,,,,,,,,,,,,,,,, +# Second row indicates the source/alternative for a given property (can be empty) it is used to link the references with the values,,,,,,,,,,,,,,,,,,,,,, +# Third row indicates the units,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,, +atnum,symbol,name,group,period,multiplicity,cov_radius,cov_radius,cov_radius,vdw_radius,vdw_radius,vdw_radius,vdw_radius,vdw_radius,vdw_radius,vdw_radius,at_radius,at_radius,eneg,pold,pold,c6,mass +,,,,,,cordero,bragg,slater,bondi,truhlar,rt,batsanov,dreiding,uff,mm3,wc,cr,pauling,crc,chu,chu,stb +int,str,str,int,int,int,angstrom,angstrom,angstrom,angstrom,angstrom,angstrom,angstrom,2angstrom,2angstrom,angstrom,angstrom,angstrom,float,angstrom**3,au,au,amu +1,H,Hydrogen,1,1,2,0.31,,0.25,1.2,,1.1,,3.195,2.886,1.62,0.529192875,0.53,2.2,0.666793,4.5,6.499026705,1.007975 +2,He,Helium,18,1,1,0.28,,,1.4,,,,,2.362,1.53,0.291,0.31,,0.204956,1.38,1.42,4.002602 +3,Li,Lithium,1,2,2,1.28,1.5,1.45,1.81,,,2.2,,2.451,2.55,1.586,1.67,0.98,24.3,164,1392,6.9675 +4,Be,Beryllium,2,2,1,0.96,1.15,1.05,,1.53,,1.9,,2.745,2.23,1.04,1.12,1.57,5.6,38,227,9.0121831 +5,B,Boron,13,2,2,0.84,,0.85,,1.92,,1.8,4.02,4.083,2.15,0.776,0.87,2.04,3.03,21,99.5,10.8135 +6,C,Carbon,14,2,3,0.7445337366,0.77,0.7,1.7,,1.77,1.7,3.8983,3.851,2.04,0.62,0.67,2.55,1.76,12,46.6,12.0106 +7,N,Nitrogen,15,2,4,0.71,0.65,0.65,1.55,,1.64,1.6,3.6621,3.66,1.93,0.521,0.56,3.04,1.1,7.4,24.2,14.006855 +8,O,Oxygen,16,2,3,0.66,0.65,0.6,1.52,,1.58,1.55,3.4046,3.5,1.82,0.45,0.48,3.44,0.802,5.4,15.6,15.9994 +9,F,Fluorine,17,2,2,0.57,0.67,0.5,1.47,,1.46,1.5,3.472,3.364,1.71,0.396,0.42,3.98,0.557,3.8,9.52,18.998403163 +10,Ne,Neon,18,2,1,0.58,,,1.54,,1.81,,,3.243,1.6,0.354,0.38,,0.3956,2.67,6.2,20.1797 +11,Na,Sodium,1,3,2,1.66,1.77,1.8,2.27,,1.76,2.4,,2.983,2.7,1.713,1.9,0.93,24.11,163,1518,22.98976928 +12,Mg,Magnesium,2,3,1,1.41,1.42,1.5,1.73,,1.87,2.2,,3.021,2.43,1.279,1.45,1.31,10.6,71,626,24.3055 +13,Al,Aluminium,13,3,2,1.21,1.35,1.25,,1.84,2.03,2.1,4.39,4.499,2.36,1.312,1.18,1.61,6.8,60,528,26.9815385 +14,Si,Silicon,14,3,3,1.11,1.17,1.1,2.1,,,2.1,4.27,4.295,2.29,1.068,1.11,1.9,5.38,37,305,28.085 +15,P,Phosphorus,15,3,4,1.07,,1,1.8,,,1.95,4.15,4.147,2.22,0.919,0.98,2.19,3.63,25,185,30.973761998 +16,S,Sulfur,16,3,3,1.05,1.02,1,1.8,,,1.8,4.03,4.035,2.15,0.81,0.88,2.58,2.9,19.6,134,32.0675 +17,Cl,Chlorine,17,3,2,1.02,1.05,1,1.75,,,1.8,3.9503,3.947,2.07,0.725,0.79,3.16,2.18,15,94.6,35.4515 +18,Ar,Argon,18,3,1,1.06,,,1.88,,,,,3.868,1.99,0.659,0.71,,1.6411,11.1,64.2,39.948 +19,K,Potassium,1,4,2,2.03,2.07,2.2,2.75,,,2.8,,3.812,3.09,2.162,2.43,0.82,43.4,294,3923,39.0983 +20,Ca,Calcium,2,4,1,1.76,1.7,1.8,,2.31,,2.4,,3.399,2.81,1.69,1.94,1,22.8,160,2163,40.078 +21,Sc,Scandium,3,4,2,1.7,,1.6,,,,2.3,,3.295,2.61,1.57,1.84,1.36,17.8,120,1383,44.955908 +22,Ti,Titanium,4,4,3,1.6,1.4,1.4,,,,2.15,,3.175,2.39,1.477,1.76,1.54,14.6,98,1044,47.867 +23,V,Vanadium,5,4,4,1.53,,1.35,,,,2.05,,3.144,2.29,1.401,1.71,1.63,12.4,84,832,50.9415 +24,Cr,Chromium,6,4,7,1.39,1.4,1.4,,,,2.05,,3.023,2.25,1.453,1.66,1.66,11.6,78,602,51.9961 +25,Mn,Manganese,7,4,6,1.553504,1.47,1.4,,,,2.05,,2.961,2.24,1.278,1.61,1.55,9.4,63,552,54.938044 +26,Fe,Iron,8,4,5,1.4841791045,1.4,1.4,,,,2.05,,2.912,2.23,1.227,1.56,1.83,8.4,56,482,55.845 +27,Co,Cobalt,9,4,4,1.2975449102,1.37,1.35,,,,2,,2.872,2.23,1.181,1.52,1.88,7.5,50,408,58.933194 +28,Ni,Nickel,10,4,3,1.24,1.35,1.35,,,,2,,2.834,2.22,1.139,1.49,1.91,6.8,48,373,58.6934 +29,Cu,Copper,11,4,2,1.32,1.37,1.35,,,,2,,3.495,2.26,1.191,1.45,1.9,6.2,42,253,63.546 +30,Zn,Zinc,12,4,1,1.22,1.32,1.35,,,,2.1,,2.763,2.29,1.065,1.42,1.65,5.75,40,284,65.38 +31,Ga,Gallium,13,4,2,1.22,,1.3,1.87,,,2.1,4.39,4.383,2.46,1.254,1.36,1.81,8.12,60,498,69.723 +32,Ge,Germanium,14,4,3,1.2,,1.25,,2.11,,2.1,4.27,4.28,2.44,1.09,1.25,2.01,6.07,41,354,72.63 +33,As,Arsenic,15,4,4,1.19,1.26,1.15,1.85,,,2.05,4.15,4.23,2.36,1.001,1.14,2.18,4.31,29,246,74.921595 +34,Se,Selenium,16,4,3,1.2,1.17,1.15,1.9,,,1.9,4.03,4.205,2.29,0.918,1.03,2.55,3.77,25,210,78.971 +35,Br,Bromine,17,4,2,1.2,1.19,1.15,1.83,,,1.9,3.95,4.189,2.22,0.851,0.94,2.96,3.05,20,162,79.904 +36,Kr,Krypton,18,4,1,1.16,,,2.02,,,,,4.141,2.15,0.795,0.88,,2.4844,16.7,130,83.798 +37,Rb,Rubidium,1,5,2,2.2,2.25,2.35,,3.03,,2.9,,4.114,3.25,2.287,2.65,0.82,47.3,320,4769,85.4678 +38,Sr,Strontium,2,5,1,1.95,1.95,2,,2.49,,2.55,,3.641,3,1.836,2.19,0.95,27.6,199,3175,87.62 +39,Y,Yttrium,3,5,2,1.9,,1.8,,,,2.4,,3.345,2.71,1.693,2.12,1.22,22.7,,,88.90584 +40,Zr,Zirconium,4,5,3,1.75,,1.55,,,,2.3,,3.124,2.54,1.593,2.06,1.33,17.9,,,91.224 +41,Nb,Niobium,5,5,6,1.64,,1.45,,,,2.15,,3.165,2.43,1.589,1.98,,15.7,,,92.90637 +42,Mo,Molybdenum,6,5,7,1.54,,1.45,,,,2.1,,3.052,2.39,1.52,1.9,2.16,12.8,,,95.95 +43,Tc,Technetium,7,5,6,1.47,,1.35,,,,2.05,,2.998,2.36,1.391,1.83,,11.4,,, +44,Ru,Ruthenium,8,5,5,1.46,,1.3,,,,2.05,,2.963,2.34,1.41,1.78,,9.6,,,101.07 +45,Rh,Rhodium,9,5,4,1.42,,1.35,,,,2,,2.929,2.34,1.364,1.73,2.28,8.6,,,102.9055 +46,Pd,Palladium,10,5,1,1.39,,1.4,,,,2.05,,2.899,2.37,0.567,1.69,2.2,4.8,,,106.42 +47,Ag,Silver,11,5,2,1.45,1.77,1.6,,,,2.1,,3.148,2.43,1.286,1.65,1.93,7.2,,,107.8682 +48,Cd,Cadmium,12,5,1,1.44,1.6,1.55,,,,2.2,,2.848,2.5,1.184,1.61,1.69,7.36,,,112.414 +49,In,Indium,13,5,2,1.42,,1.55,1.93,,,2.2,4.59,4.463,2.64,1.382,1.56,1.78,10.2,75,779,114.818 +50,Sn,Tin,14,5,3,1.39,1.4,1.45,2.17,,,2.25,4.47,4.392,2.59,1.24,1.45,1.96,7.7,60,659,118.71 +51,Sb,Antimony,15,5,4,1.39,1.4,1.45,,2.06,,2.2,4.35,4.42,2.52,1.193,1.33,2.05,6.6,44,492,121.76 +52,Te,Tellurium,16,5,3,1.38,1.33,1.4,2.06,,,2.1,4.23,4.47,2.44,1.111,1.23,,5.5,40,445,127.6 +53,I,Iodine,17,5,2,1.39,1.4,1.4,1.98,,,2.1,4.15,4.5,2.36,1.044,1.15,2.66,5.35,35,385,126.90447 +54,Xe,Xenon,18,5,1,1.4,,,2.16,,,,,4.404,2.28,0.986,1.08,,4.044,,,131.293 +55,Cs,Caesium,1,6,2,2.44,2.37,2.6,,3.43,,3,,4.517,3.44,2.518,2.98,0.79,59.42,,,132.90545196 +56,Ba,Barium,2,6,1,2.15,2.1,2.15,,2.68,,2.7,,3.703,3.07,2.06,2.53,0.89,39.7,,,137.327 +57,La,Lanthanum,,6,2,2.07,,1.95,,,,2.5,,3.522,2.78,1.915,,1.1,31.1,,,138.90547 +58,Ce,Cerium,,6,1,2.04,,1.85,,,,,,3.556,2.74,1.978,,,29.6,,,140.116 +59,Pr,Praseodymium,,6,4,2.03,,1.85,,,,,,3.606,2.73,1.942,2.47,1.13,28.2,,,140.90766 +60,Nd,Neodymium,,6,5,2.01,,1.85,,,,,,3.575,2.73,1.912,2.06,1.14,31.4,,,144.242 +61,Pm,Promethium,,6,6,1.99,,1.85,,,,,,3.547,2.72,1.882,2.05,,30.1,,, +62,Sm,Samarium,,6,7,1.98,,1.85,,,,,,3.52,2.71,1.854,2.38,1.17,28.8,,,150.36 +63,Eu,Europium,,6,8,1.98,,1.85,,,,,,3.493,2.94,1.826,2.31,,27.7,,,151.964 +64,Gd,Gadolinium,,6,9,1.96,,1.8,,,,,,3.368,2.71,1.713,2.33,1.2,23.5,,,157.25 +65,Tb,Terbium,,6,6,1.94,,1.75,,,,,,3.451,2.7,1.775,2.25,,25.5,,,158.92535 +66,Dy,Dysprosium,,6,5,1.92,,1.75,,,,,,3.428,2.9,1.75,2.28,1.22,24.5,,,162.5 +67,Ho,Holmium,,6,4,1.92,,1.75,,,,,,3.409,2.67,1.727,2.26,1.23,23.6,,,164.93033 +68,Er,Erbium,,6,3,1.89,,1.75,,,,,,3.391,2.67,1.703,2.26,1.24,22.7,,,167.259 +69,Tm,Thulium,,6,2,1.9,,1.75,,,,,,3.374,2.67,1.681,2.22,1.25,21.8,,,168.93422 +70,Yb,Ytterbium,,6,1,1.87,,1.75,,,,,,3.355,2.79,1.658,2.22,,21,,,173.054 +71,Lu,Lutetium,3,6,2,1.87,,1.75,,,,,,3.64,2.65,1.553,2.17,1.27,21.9,,,174.9668 +72,Hf,Hafnium,4,6,3,1.75,,1.55,,,,2.25,,3.141,2.53,1.476,2.08,,16.2,,,178.49 +73,Ta,Tantalum,5,6,4,1.7,,1.45,,,,2.2,,3.17,2.43,1.413,2,,13.1,,,180.94788 +74,W,Tungsten,6,6,5,1.62,,1.35,,,,2.1,,3.096,2.39,1.36,1.93,2.36,11.1,,,183.84 +75,Re,Rhenium,7,6,6,1.51,,1.35,,,,2.05,,2.954,2.37,1.31,1.88,,9.7,,,186.207 +76,Os,Osmium,8,6,5,1.44,,1.3,,,,2,,3.12,2.35,1.266,1.85,,8.5,,,190.23 +77,Ir,Iridium,9,6,4,1.41,,1.35,,,,2,,2.84,2.36,1.227,1.8,2.2,7.6,,,192.217 +78,Pt,Platinum,10,6,3,1.36,,1.35,,,,2.05,,2.754,2.39,1.221,1.77,2.28,6.5,,,195.084 +79,Au,Gold,11,6,2,1.36,,1.35,,,,2.1,,3.293,2.43,1.187,1.74,2.54,5.8,,,196.966569 +80,Hg,Mercury,12,6,1,1.32,,1.5,,,,2.05,,2.705,2.53,1.126,1.71,2,5.02,,,200.592 +81,Tl,Thallium,13,6,2,1.45,1.9,1.9,1.96,,,2.2,,4.347,2.59,1.319,1.56,2.04,7.6,,,204.3835 +82,Pb,Lead,14,6,3,1.46,,,2.02,,,2.3,,4.297,2.74,1.215,1.54,2.33,6.8,,,207.2 +83,Bi,Bismuth,15,6,4,1.48,1.48,1.6,,2.07,,2.3,,4.37,2.66,1.295,1.43,2.02,7.4,,,208.9804 +84,Po,Polonium,16,6,3,1.4,,1.9,,1.97,,,,4.709,2.59,1.212,1.35,,6.8,,, +85,At,Astatine,17,6,2,1.5,,,,2.02,,,,4.75,2.51,1.146,1.27,,6,,, +86,Rn,Radon,18,6,1,1.5,,,,2.2,,,,4.765,2.43,1.09,1.2,,5.3,,, +87,Fr,Francium,1,7,2,2.6,,,,3.48,,,,4.9,3.64,2.447,,,47.1,,, +88,Ra,Radium,2,7,1,2.21,,2.15,,2.83,,,,3.677,3.27,2.042,,,38.3,,, +89,Ac,Actinium,,7,2,2.15,,1.95,,,,,,3.478,3.08,1.895,,,32.1,,, +90,Th,Thorium,,7,3,2.06,,1.8,,,,2.4,,3.396,2.74,1.788,,,32.1,,,232.0377 +91,Pa,Protactinium,,7,4,2,,1.8,,,,,,3.424,2.64,1.804,,,25.4,,,231.03588 +92,U,Uranium,,7,5,1.96,,1.75,,,,2.3,,3.395,2.52,1.775,,1.38,24.9,,,238.02891 +93,Np,Neptunium,,7,6,1.9,,1.75,,,,,,3.424,2.52,1.741,,1.36,24.8,,, +94,Pu,Plutonium,,7,7,1.87,,1.75,,,,,,3.424,2.52,1.784,,1.28,24.5,,, +95,Am,Americium,,7,8,1.8,,1.75,,,,,,3.381,,1.757,,,23.3,,, +96,Cm,Curium,,7,9,1.69,,,,,,,,3.326,,1.657,,,23,,, +97,Bk,Berkelium,,7,6,,,,,,,,,3.339,,1.626,,,22.7,,, +98,Cf,Californium,,7,5,,,,,,,,,3.313,,1.598,,,20.5,,, +99,Es,Einsteinium,,7,4,,,,,,,,,3.299,,1.576,,,19.7,,, +100,Fm,Fermium,,7,3,,,,,,,,,3.286,,1.557,,,23.8,,, +101,Md,Mendelevium,,7,2,,,,,,,,,3.274,,1.527,,,18.2,,, +102,No,Nobelium,,7,1,,,,,,,,,3.248,,1.581,,,17.5,,, +103,Lr,Lawrencium,3,7,2,,,,,,,,,3.236,,,,,,,, +104,Rf,Rutherfordium,4,7,3,,,,,,,,,,,,,,,,, +105,Db,Dubnium,5,7,4,,,,,,,,,,,,,,,,, +106,Sg,Seaborgium,6,7,5,,,,,,,,,,,,,,,,, +107,Bh,Bohrium,7,7,6,,,,,,,,,,,,,,,,, +108,Hs,Hassium,8,7,5,,,,,,,,,,,,,,,,, +109,Mt,Meitnerium,9,7,4,,,,,,,,,,,,,,,,, +110,Ds,Darmstadtium,10,7,3,,,,,,,,,,,,,,,,, +111,Rg,Roentgenium,11,7,2,,,,,,,,,,,,,,,,, +112,Cn,Copernicium,12,7,1,,,,,,,,,,,,,,,,, +113,Uut,Ununtrium,13,7,2,,,,,,,,,,,,,,,,, +114,Fl,Flerovium,14,7,3,,,,,,,,,,,,,,,,, +115,Uup,Ununpentium,15,7,4,,,,,,,,,,,,,,,,, +116,Lv,Livermorium,16,7,3,,,,,,,,,,,,,,,,, +117,Uus,Ununseptium,17,7,2,,,,,,,,,,,,,,,,, diff --git a/atomdb/periodic.py b/atomdb/periodic.py new file mode 100644 index 00000000..efc545c1 --- /dev/null +++ b/atomdb/periodic.py @@ -0,0 +1,213 @@ +import csv +import numpy as np + +from importlib.resources import files + +__all__ = ["sym2num", "name2num", "num2sym", "num2name", "Atom"] + +if __name__ == "__main__": + print("This module is not meant to be run directly.") + print("Use 'from atomdb.periodic import Atom' instead.") + raise SystemExit + +else: + # auxiliar functions + def _read_csv(file): + """Reads a csv file and returns a list of lists with the data. + + Parameters + ---------- + file : file + The file to read. + + Returns + ------- + list of lists + The data in the file. + """ + data = [] + for row in csv.reader(file): + # ignore comments and empty lines + if row and not row[0].startswith("#") and not all(c in ", \n" for c in row): + # Replace \n with new line in each element + data.append([element.replace("\\n", "\n") for element in row]) + return data + + def _indent_lines(input_string, indent): + """Indent each line of a string by a given number of spaces.""" + lines = input_string.splitlines() + indented_lines = [(indent * " ") + line for line in lines] + return "\n".join(indented_lines) + + def _gendoc(info_file): + """Generate a docstring for the Element class. + + Parameters + ---------- + info_file : str + The name of the csv file with the data for constructing the docstring. + """ + # create a dictionary to store the metadata of the properties + _data_src = _read_csv(open(info_file)) + _prop2name = {} + _prop2desc = {} + _prop2unit = {} + _prop2source = {} + _prop2url = {} + _prop2notes = {} + for prop, prop_name, key, unit, description, source, url, notes in _data_src: + _prop2name[prop] = prop_name + _prop2desc.setdefault(prop, {})[key] = description + _prop2unit.setdefault(prop, {})[key] = unit + _prop2source.setdefault(prop, {})[key] = source + _prop2url.setdefault(prop, {})[key] = url + _prop2notes.setdefault(prop, {})[key] = notes + + docstring = """Class to store the properties of the elements. + + Attributes + ---------- + atnum : int + Atomic number of the element. + symbol : str + Chemical symbol of the element. + name : str + Name of the element. + charge : int + Charge of the atom. + multiplicity : int + Multiplicity of the atom. + """ + + # autocomplete the docstring with data from the csv files + # for each property + for i in _prop2name: + # if only one source is available + if len(_prop2desc[i]) == 1: + # add line to docstring with property name, type, description, unit, source, and url + docstring += f"{i} : float\n {_prop2name[i]} of the element.\n" + if list(_prop2desc[i].values())[0] != "": + docstring += _indent_lines(f"{list(_prop2desc[i].values())[0]}", 4) + "\n" + if list(_prop2unit[i].values())[0] != "": + docstring += ( + _indent_lines(f"Units: {list(_prop2unit[i].values())[0]}", 4) + "\n" + ) + if list(_prop2source[i].values())[0] != "": + docstring += _indent_lines(f"{list(_prop2source[i].values())[0]}", 4) + "\n" + if list(_prop2url[i].values())[0] != "": + docstring += _indent_lines(f"{list(_prop2url[i].values())[0]}", 4) + "\n" + if list(_prop2notes[i].values())[0] != "": + docstring += ( + _indent_lines(f"Notes:\n{list(_prop2notes[i].values())[0]}", 4) + "\n" + ) + # if multiple sources are available + else: + docstring += ( + f"{i} : dict\n Dictionary with the {_prop2name[i]} of the element.\n" + ) + # add a line docstring with the description, source, and url for each source + for j in _prop2col[i]: + if _prop2desc[i][j] != "": + docstring += _indent_lines(f"{j} : {_prop2desc[i][j]}", 4) + "\n" + if _prop2unit[i][j] != "": + docstring += _indent_lines(f"Units: {_prop2unit[i][j]}", 8) + "\n" + return docstring + + # Code to run when the module is imported + data_file = files("atomdb.data").joinpath("elements_data.csv") + info_file = files("atomdb.data").joinpath("data_info.csv") + + # work with data from "elements_data.csv" + data = _read_csv(open(data_file)) + + # get properties and key sources + properties = data.pop(0)[3:] + key_sources = data.pop(0)[3:] + units = data.pop(0)[3:] + + # separate atnums, symbols, and names from the rest of the data + atnums, symbols, names = [], [], [] + for row in data: + atnums.append(int(row[0])) + symbols.append(row[1]) + names.append(row[2].lower()) + # convert the rest of the data to numbers + row[:] = [int(i) if i else np.nan for i in row[3:5]] + [ + float(i) if i else np.nan for i in row[5:] + ] + + # create utility dictionaries to convert between different element identifiers + sym2num = dict(zip(symbols, atnums)) + name2num = dict(zip(names, atnums)) + num2sym = dict(zip(atnums, symbols)) + num2name = dict(zip(atnums, names)) + + # create utility dictionary to locate the columns of the properties + _prop2col = {} + for column, (prop, key) in enumerate(zip(properties, key_sources)): + _prop2col.setdefault(prop, {})[key] = {"ncol": column} + + class Atom: + def __init__(self, id, charge=0): + """Create an Atom object. + + Parameters + ---------- + id : str or int + The atomic number, symbol, or name of the element. + charge : int, optional + The charge of the atom, by default 0. + """ + # check if the input is a valid element identifier and get the atomic number + if isinstance(id, str): + # if it is a is a name + if len(id) > 3: + self.atnum = name2num[id.lower()] + # if it is a symbol + else: + self.atnum = sym2num[id] + elif isinstance(id, int) and id in sym2num.values(): + self.atnum = id + else: + raise ValueError( + "Invalid input for element identifier, must be Z, symbol, or name of element" + ) + # set the symbol and name of the element + self.atsym = num2sym[self.atnum] + self.atname = num2name[self.atnum].capitalize() + + # check if the charge is valid and set the charge + if not isinstance(charge, int): + raise ValueError("Charge must be an integer") + if self.atnum - charge < 0: + raise ValueError( + f"Charge cannot be greater than atomic number. Z = {self.atnum}, charge = {charge}" + ) + if self.atnum - charge > max(atnums): + raise ValueError( + f"Number of electrons {self.atnum - charge} outside of range of known elements" + ) + + self.charge = charge + + # create a dictionary to store the properties of the element + tmp_dict = _prop2col.copy() + for i in tmp_dict: + # select the multiplicity of isoelectronic element + if i == "multiplicity": + nelectrons = self.atnum - charge + # if the number of electrons is 0 get the multiplicity of He (singlet) + if nelectrons == 0: + nelectrons = 2 + tmp_dict[i] = int(data[nelectrons - 1][tmp_dict[i][""]["ncol"]]) + elif len(tmp_dict[i]) == 1 and "" in tmp_dict[i]: + tmp_dict[i] = data[self.atnum - 1][tmp_dict[i][""]["ncol"]] + else: + tmp_dict[i] = { + j: data[self.atnum - 1][tmp_dict[i][j]["ncol"]] for j in tmp_dict[i] + } + # set the class attributes to the properties of the element + self.__dict__.update(tmp_dict) + + # set the docstring of the Atom class + Atom.__doc__ = _gendoc(info_file) diff --git a/atomdb/test/test_periodic.py b/atomdb/test/test_periodic.py new file mode 100644 index 00000000..7e9f728c --- /dev/null +++ b/atomdb/test/test_periodic.py @@ -0,0 +1,121 @@ +import pytest +import numpy as np +from atomdb.periodic import num2sym, sym2num, name2num, num2name, Atom + + +def test_num2sym(): + assert num2sym[1] == "H" + assert num2sym[6] == "C" + assert num2sym[26] == "Fe" + + +def test_sym2num(): + assert sym2num["H"] == 1 + assert sym2num["C"] == 6 + assert sym2num["Fe"] == 26 + + +def name2num(): + assert sym2num["hydrogen"] == 1 + assert sym2num["carbon"] == 6 + assert sym2num["iron"] == 26 + + assert sym2num["Hydrogen"] == 1 + assert sym2num["Carbon"] == 6 + assert sym2num["Iron"] == 26 + + +def num2name(): + assert sym2num[1] == "Hydrogen" + assert sym2num[6] == "Carbon" + assert sym2num[26] == "Iron" + + +def test_atom_invalid_element(): + with pytest.raises(Exception): + Atom("InvalidElement") + + +def test_atom_invalid_symbol(): + with pytest.raises(Exception): + Atom("AA") + + +def test_atom_invalid_atnum(): + with pytest.raises(Exception): + Atom(-2) + + +def test_atom_invalid_charge(): + with pytest.raises(Exception): + Atom(1, charge=2) + with pytest.raises(Exception): + Atom(1, charge=1.5) + with pytest.raises(Exception): + Atom(112, charge=-10) + + +def test_get_attributes(): + # will test getting the attributes of the atom for Hydrogen and Carbon + + atom = Atom(1) + assert atom.atnum == 1 + assert atom.atsym == "H" + assert atom.atname == "Hydrogen" + assert atom.charge == 0 + + h_data = { + "atnum": 1, + "atsym": "H", + "atname": "Hydrogen", + "charge": 0, + "group": 1, + "period": 1, + "multiplicity": 2, + "cov_radius": {"cordero": 0.31, "bragg": np.nan, "slater": 0.25}, + "vdw_radius": { + "bondi": 1.2, + "truhlar": np.nan, + "rt": 1.1, + "batsanov": np.nan, + "dreiding": 3.195, + "uff": 2.886, + "mm3": 1.62, + }, + "at_radius": {"wc": 0.529192875, "cr": 0.53}, + "eneg": {"pauling": 2.2}, + "pold": {"crc": 0.666793, "chu": 4.5}, + "c6": {"chu": 6.499026705}, + "mass": {"stb": 1.007975}, + } + for i in h_data: + assert getattr(atom, i) == h_data[i] + + atom = Atom(6) + c_data = { + "atnum": 6, + "atsym": "C", + "atname": "Carbon", + "charge": 0, + "group": 14, + "period": 2, + "multiplicity": 3, + "cov_radius": {"cordero": 0.7445337366, "bragg": 0.77, "slater": 0.7}, + "vdw_radius": { + "bondi": 1.7, + "truhlar": np.nan, + "rt": 1.77, + "batsanov": 1.7, + "dreiding": 3.8983, + "uff": 3.851, + "mm3": 2.04, + }, + "at_radius": {"wc": 0.62, "cr": 0.67}, + "eneg": {"pauling": 2.55}, + "pold": {"crc": 1.76, "chu": 12.0}, + "c6": {"chu": 46.6}, + "mass": {"stb": 12.0106}, + } + + for i in c_data: + assert getattr(atom, i) == c_data[i]