9
1
mirror of https://github.com/QuantumPackage/qp2.git synced 2024-11-07 05:53:37 +01:00

Updated atomic data

This commit is contained in:
Anthony Scemama 2019-05-28 11:42:36 +02:00
parent 714d53363e
commit d50cca6f88
2 changed files with 786 additions and 270 deletions

View File

@ -3,14 +3,19 @@ open Qptypes
exception ElementError of string exception ElementError of string
type t = type t = X
|X
|H |He |H |He
|Li|Be |B |C |N |O |F |Ne |Li|Be |B |C |N |O |F |Ne
|Na|Mg |Al|Si|P |S |Cl|Ar |Na|Mg |Al|Si|P |S |Cl|Ar
|K |Ca|Sc|Ti|V |Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr |K |Ca|Sc|Ti|V |Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr
|Rb|Sr|Y |Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I |Xe |Rb|Sr|Y |Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I |Xe
|Pt |Cs|Ba|La|Hf|Ta|W |Re|Os|Ir|Pt|Au|Hg|Tl|Pb|Bi|Po|At|Rn
|Fr|Ra|Ac|Rf|Db|Sg|Bh|Hs|Mt|Ds|Rg|Cn|Nh|Fl|Mc|Lv|Ts|Og
|Ce|Pr|Nd|Pm|Sm|Eu|Gd|Tb|Dy|Ho|Er|Tm|Yb|Lu
|Th|Pa|U |Np|Pu|Am|Cm|Bk|Cf|Es|Fm|Md|No|Lr
[@@deriving sexp] [@@deriving sexp]
let of_string x = let of_string x =
@ -70,7 +75,70 @@ let of_string x =
| "Te" | "Tellurium" -> Te | "Te" | "Tellurium" -> Te
| "I" | "Iodine" -> I | "I" | "Iodine" -> I
| "Xe" | "Xenon" -> Xe | "Xe" | "Xenon" -> Xe
| "Cs" | "Cesium" -> Cs
| "Ba" | "Barium" -> Ba
| "La" | "Lanthanum" -> La
| "Ce" | "Cerium" -> Ce
| "Pr" | "Praseodymium" -> Pr
| "Nd" | "Neodymium" -> Nd
| "Pm" | "Promethium" -> Pm
| "Sm" | "Samarium" -> Sm
| "Eu" | "Europium" -> Eu
| "Gd" | "Gadolinium" -> Gd
| "Tb" | "Terbium" -> Tb
| "Dy" | "Dysprosium" -> Dy
| "Ho" | "Holmium" -> Ho
| "Er" | "Erbium" -> Er
| "Tm" | "Thulium" -> Tm
| "Yb" | "Ytterbium" -> Yb
| "Lu" | "Lutetium" -> Lu
| "Hf" | "Hafnium" -> Hf
| "Ta" | "Tantalum" -> Ta
| "W" | "Tungsten" -> W
| "Re" | "Rhenium" -> Re
| "Os" | "Osmium" -> Os
| "Ir" | "Iridium" -> Ir
| "Pt" | "Platinum" -> Pt | "Pt" | "Platinum" -> Pt
| "Au" | "Gold" -> Au
| "Hg" | "Mercury" -> Hg
| "Tl" | "Thallium" -> Tl
| "Pb" | "Lead" -> Pb
| "Bi" | "Bismuth" -> Bi
| "Po" | "Polonium" -> Po
| "At" | "Astatine" -> At
| "Rn" | "Radon" -> Rn
| "Fr" | "Francium" -> Fr
| "Ra" | "Radium" -> Ra
| "Ac" | "Actinium" -> Ac
| "Th" | "Thorium" -> Th
| "Pa" | "Protactinium" -> Pa
| "U" | "Uranium" -> U
| "Np" | "Neptunium" -> Np
| "Pu" | "Plutonium" -> Pu
| "Am" | "Americium" -> Am
| "Cm" | "Curium" -> Cm
| "Bk" | "Berkelium" -> Bk
| "Cf" | "Californium" -> Cf
| "Es" | "Einsteinium" -> Es
| "Fm" | "Fermium" -> Fm
| "Md" | "Mendelevium" -> Md
| "No" | "Nobelium" -> No
| "Lr" | "Lawrencium" -> Lr
| "Rf" | "Rutherfordium"-> Rf
| "Db" | "Dubnium" -> Db
| "Sg" | "Seaborgium" -> Sg
| "Bh" | "Bohrium" -> Bh
| "Hs" | "Hassium" -> Hs
| "Mt" | "Meitnerium" -> Mt
| "Ds" | "Darmstadtium" -> Ds
| "Rg" | "Roentgenium" -> Rg
| "Cn" | "Copernicium" -> Cn
| "Nh" | "Nihonium" -> Nh
| "Fl" | "Flerovium" -> Fl
| "Mc" | "Moscovium" -> Mc
| "Lv" | "Livermorium" -> Lv
| "Ts" | "Tennessine" -> Ts
| "Og" | "Oganesson" -> Og
| x -> raise (ElementError ("Element "^x^" unknown")) | x -> raise (ElementError ("Element "^x^" unknown"))
@ -130,7 +198,70 @@ let to_string = function
| Te -> "Te" | Te -> "Te"
| I -> "I" | I -> "I"
| Xe -> "Xe" | Xe -> "Xe"
| Cs -> "Cs"
| Ba -> "Ba"
| La -> "La"
| Hf -> "Hf"
| Ta -> "Ta"
| W -> "W"
| Re -> "Re"
| Os -> "Os"
| Ir -> "Ir"
| Pt -> "Pt" | Pt -> "Pt"
| Au -> "Au"
| Hg -> "Hg"
| Tl -> "Tl"
| Pb -> "Pb"
| Bi -> "Bi"
| Po -> "Po"
| At -> "At"
| Rn -> "Rn"
| Fr -> "Fr"
| Ra -> "Ra"
| Ac -> "Ac"
| Rf -> "Rf"
| Db -> "Db"
| Sg -> "Sg"
| Bh -> "Bh"
| Hs -> "Hs"
| Mt -> "Mt"
| Ds -> "Ds"
| Rg -> "Rg"
| Cn -> "Cn"
| Nh -> "Nh"
| Fl -> "Fl"
| Mc -> "Mc"
| Lv -> "Lv"
| Ts -> "Ts"
| Og -> "Og"
| Ce -> "Ce"
| Pr -> "Pr"
| Nd -> "Nd"
| Pm -> "Pm"
| Sm -> "Sm"
| Eu -> "Eu"
| Gd -> "Gd"
| Tb -> "Tb"
| Dy -> "Dy"
| Ho -> "Ho"
| Er -> "Er"
| Tm -> "Tm"
| Yb -> "Yb"
| Lu -> "Lu"
| Th -> "Th"
| Pa -> "Pa"
| U -> "U"
| Np -> "Np"
| Pu -> "Pu"
| Am -> "Am"
| Cm -> "Cm"
| Bk -> "Bk"
| Cf -> "Cf"
| Es -> "Es"
| Fm -> "Fm"
| Md -> "Md"
| No -> "No"
| Lr -> "Lr"
let to_long_string = function let to_long_string = function
@ -189,8 +320,70 @@ let to_long_string = function
| Te -> "Tellurium" | Te -> "Tellurium"
| I -> "Iodine" | I -> "Iodine"
| Xe -> "Xenon" | Xe -> "Xenon"
| Cs -> "Cesium"
| Ba -> "Barium"
| La -> "Lanthanum"
| Ce -> "Cerium"
| Pr -> "Praseodymium"
| Nd -> "Neodymium"
| Pm -> "Promethium"
| Sm -> "Samarium"
| Eu -> "Europium"
| Gd -> "Gadolinium"
| Tb -> "Terbium"
| Dy -> "Dysprosium"
| Ho -> "Holmium"
| Er -> "Erbium"
| Tm -> "Thulium"
| Yb -> "Ytterbium"
| Lu -> "Lutetium"
| Hf -> "Hafnium"
| Ta -> "Tantalum"
| W -> "Tungsten"
| Re -> "Rhenium"
| Os -> "Osmium"
| Ir -> "Iridium"
| Pt -> "Platinum" | Pt -> "Platinum"
| Au -> "Gold"
| Hg -> "Mercury"
| Tl -> "Thallium"
| Pb -> "Lead"
| Bi -> "Bismuth"
| Po -> "Polonium"
| At -> "Astatine"
| Rn -> "Radon"
| Fr -> "Francium"
| Ra -> "Radium"
| Ac -> "Actinium"
| Th -> "Thorium"
| Pa -> "Protactinium"
| U -> "Uranium"
| Np -> "Neptunium"
| Pu -> "Plutonium"
| Am -> "Americium"
| Cm -> "Curium"
| Bk -> "Berkelium"
| Cf -> "Californium"
| Es -> "Einsteinium"
| Fm -> "Fermium"
| Md -> "Mendelevium"
| No -> "Nobelium"
| Lr -> "Lawrencium"
| Rf -> "Rutherfordium"
| Db -> "Dubnium"
| Sg -> "Seaborgium"
| Bh -> "Bohrium"
| Hs -> "Hassium"
| Mt -> "Meitnerium"
| Ds -> "Darmstadtium"
| Rg -> "Roentgenium"
| Cn -> "Copernicium"
| Nh -> "Nihonium"
| Fl -> "Flerovium"
| Mc -> "Moscovium"
| Lv -> "Livermorium"
| Ts -> "Tennessine"
| Og -> "Oganesson"
let to_charge c = let to_charge c =
let result = match c with let result = match c with
@ -249,7 +442,70 @@ let to_charge c =
| Te -> 52 | Te -> 52
| I -> 53 | I -> 53
| Xe -> 54 | Xe -> 54
| Cs -> 55
| Ba -> 56
| La -> 57
| Ce -> 58
| Pr -> 59
| Nd -> 60
| Pm -> 61
| Sm -> 62
| Eu -> 63
| Gd -> 64
| Tb -> 65
| Dy -> 66
| Ho -> 67
| Er -> 68
| Tm -> 69
| Yb -> 70
| Lu -> 71
| Hf -> 72
| Ta -> 73
| W -> 74
| Re -> 75
| Os -> 76
| Ir -> 77
| Pt -> 78 | Pt -> 78
| Au -> 79
| Hg -> 80
| Tl -> 81
| Pb -> 82
| Bi -> 83
| Po -> 84
| At -> 85
| Rn -> 86
| Fr -> 87
| Ra -> 88
| Ac -> 89
| Th -> 90
| Pa -> 91
| U -> 92
| Np -> 93
| Pu -> 94
| Am -> 95
| Cm -> 96
| Bk -> 97
| Cf -> 98
| Es -> 99
| Fm -> 100
| Md -> 101
| No -> 102
| Lr -> 103
| Rf -> 104
| Db -> 105
| Sg -> 106
| Bh -> 107
| Hs -> 108
| Mt -> 109
| Ds -> 110
| Rg -> 111
| Cn -> 112
| Nh -> 113
| Fl -> 114
| Mc -> 115
| Lv -> 116
| Ts -> 117
| Og -> 118
in Charge.of_int result in Charge.of_int result
@ -309,49 +565,112 @@ let of_charge c = match (Charge.to_int c) with
| 52 -> Te | 52 -> Te
| 53 -> I | 53 -> I
| 54 -> Xe | 54 -> Xe
| 55 -> Cs
| 56 -> Ba
| 57 -> La
| 58 -> Ce
| 59 -> Pr
| 60 -> Nd
| 61 -> Pm
| 62 -> Sm
| 63 -> Eu
| 64 -> Gd
| 65 -> Tb
| 66 -> Dy
| 67 -> Ho
| 68 -> Er
| 69 -> Tm
| 70 -> Yb
| 71 -> Lu
| 72 -> Hf
| 73 -> Ta
| 74 -> W
| 75 -> Re
| 76 -> Os
| 77 -> Ir
| 78 -> Pt | 78 -> Pt
| 79 -> Au
| 80 -> Hg
| 81 -> Tl
| 82 -> Pb
| 83 -> Bi
| 84 -> Po
| 85 -> At
| 86 -> Rn
| 87 -> Fr
| 88 -> Ra
| 89 -> Ac
| 90 -> Th
| 91 -> Pa
| 92 -> U
| 93 -> Np
| 94 -> Pu
| 95 -> Am
| 96 -> Cm
| 97 -> Bk
| 98 -> Cf
| 99 -> Es
| 100 -> Fm
| 101 -> Md
| 102 -> No
| 103 -> Lr
| 104 -> Rf
| 105 -> Db
| 106 -> Sg
| 107 -> Bh
| 108 -> Hs
| 109 -> Mt
| 110 -> Ds
| 111 -> Rg
| 112 -> Cn
| 113 -> Nh
| 114 -> Fl
| 115 -> Mc
| 116 -> Lv
| 117 -> Ts
| 118 -> Og
| x -> raise (ElementError ("Element of charge "^(string_of_int x)^" unknown")) | x -> raise (ElementError ("Element of charge "^(string_of_int x)^" unknown"))
let covalent_radius x = let covalent_radius x =
let result = function let result = function
| X -> 0. | X -> 0.
| H -> 0.37 | H -> 0.31
| He -> 0.70 | He -> 0.28
| Li -> 1.23 | Li -> 1.28
| Be -> 0.89 | Be -> 0.96
| B -> 0.90 | B -> 0.85
| C -> 0.85 | C -> 0.76
| N -> 0.74 | N -> 0.71
| O -> 0.74 | O -> 0.66
| F -> 0.72 | F -> 0.57
| Ne -> 0.70 | Ne -> 0.58
| Na -> 1.00 | Na -> 1.66
| Mg -> 1.36 | Mg -> 1.41
| Al -> 1.25 | Al -> 1.21
| Si -> 1.17 | Si -> 1.11
| P -> 1.10 | P -> 1.07
| S -> 1.10 | S -> 1.05
| Cl -> 0.99 | Cl -> 1.02
| Ar -> 0.70 | Ar -> 1.06
| K -> 2.03 | K -> 2.03
| Ca -> 1.74 | Ca -> 1.76
| Sc -> 1.44 | Sc -> 1.70
| Ti -> 1.32 | Ti -> 1.60
| V -> 1.22 | V -> 1.53
| Cr -> 0.00 | Cr -> 1.39
| Mn -> 1.16 | Mn -> 1.39
| Fe -> 0.00 | Fe -> 1.32
| Co -> 1.15 | Co -> 1.26
| Ni -> 1.17 | Ni -> 1.24
| Cu -> 1.25 | Cu -> 1.32
| Zn -> 1.25 | Zn -> 1.22
| Ga -> 1.20 | Ga -> 1.22
| Ge -> 1.21 | Ge -> 1.20
| As -> 1.16 | As -> 1.19
| Se -> 0.70 | Se -> 1.20
| Br -> 1.24 | Br -> 1.20
| Kr -> 1.91 | Kr -> 1.16
| Rb -> 2.20 | Rb -> 2.20
| Sr -> 1.95 | Sr -> 1.95
| Y -> 1.90 | Y -> 1.90
@ -370,112 +689,241 @@ let covalent_radius x =
| Te -> 1.38 | Te -> 1.38
| I -> 1.39 | I -> 1.39
| Xe -> 1.40 | Xe -> 1.40
| Pt -> 1.30 | Cs -> 2.44
| Ba -> 2.15
| La -> 2.07
| Ce -> 2.04
| Pr -> 2.03
| Nd -> 2.01
| Pm -> 1.99
| Sm -> 1.98
| Eu -> 1.98
| Gd -> 1.96
| Tb -> 1.94
| Dy -> 1.92
| Ho -> 1.92
| Er -> 1.89
| Tm -> 1.90
| Yb -> 1.87
| Lu -> 1.87
| Hf -> 1.75
| Ta -> 1.70
| W -> 1.62
| Re -> 1.51
| Os -> 1.44
| Ir -> 1.41
| Pt -> 1.36
| Au -> 1.36
| Hg -> 1.32
| Tl -> 1.45
| Pb -> 1.46
| Bi -> 1.48
| Po -> 1.40
| At -> 1.50
| Rn -> 1.50
| Fr -> 2.60
| Ra -> 2.21
| Ac -> 2.15
| Th -> 2.06
| Pa -> 2.00
| U -> 1.96
| Np -> 1.90
| Pu -> 1.87
| Am -> 1.80
| Cm -> 1.69
| Bk -> raise (ElementError "Covalent radius not defined for Bk")
| Cf -> raise (ElementError "Covalent radius not defined for Cf")
| Es -> raise (ElementError "Covalent radius not defined for Es")
| Fm -> raise (ElementError "Covalent radius not defined for Fm")
| Md -> raise (ElementError "Covalent radius not defined for Md")
| No -> raise (ElementError "Covalent radius not defined for No")
| Lr -> raise (ElementError "Covalent radius not defined for Lr")
| Rf -> raise (ElementError "Covalent radius not defined for Rf")
| Db -> raise (ElementError "Covalent radius not defined for Db")
| Sg -> raise (ElementError "Covalent radius not defined for Sg")
| Bh -> raise (ElementError "Covalent radius not defined for Bh")
| Hs -> raise (ElementError "Covalent radius not defined for Hs")
| Mt -> raise (ElementError "Covalent radius not defined for Mt")
| Ds -> raise (ElementError "Covalent radius not defined for Ds")
| Rg -> raise (ElementError "Covalent radius not defined for Rg")
| Cn -> raise (ElementError "Covalent radius not defined for Cn")
| Nh -> raise (ElementError "Covalent radius not defined for Nh")
| Fl -> raise (ElementError "Covalent radius not defined for Fl")
| Mc -> raise (ElementError "Covalent radius not defined for Mc")
| Lv -> raise (ElementError "Covalent radius not defined for Lv")
| Ts -> raise (ElementError "Covalent radius not defined for Ts")
| Og -> raise (ElementError "Covalent radius not defined for Og")
in in
Units.angstrom_to_bohr *. (result x) Units.angstrom_to_bohr *. (result x)
|> Positive_float.of_float |> Positive_float.of_float
let vdw_radius x = let vdw_radius x =
let result = function let result = function
| X -> 0. | X -> Some 0.
| H -> 1.20 | H -> Some 1.20
| He -> 1.70 | He -> Some 1.40
| Li -> 1.70 | Li -> Some 1.82
| Be -> 1.70 | Be -> None
| B -> 1.70 | B -> None
| C -> 1.70 | C -> Some 1.70
| N -> 1.55 | N -> Some 1.55
| O -> 1.52 | O -> Some 1.52
| F -> 1.47 | F -> Some 1.47
| Ne -> 1.70 | Ne -> Some 1.54
| Na -> 1.70 | Na -> Some 2.27
| Mg -> 1.70 | Mg -> Some 1.73
| Al -> 1.94 | Al -> Some 1.94
| Si -> 2.10 | Si -> Some 2.10
| P -> 1.80 | P -> Some 1.80
| S -> 1.80 | S -> Some 1.80
| Cl -> 1.75 | Cl -> Some 1.75
| Ar -> 1.70 | Ar -> Some 1.88
| K -> 1.70 | K -> Some 2.75
| Ca -> 1.70 | Ca -> None
| Sc -> 1.70 | Sc -> None
| Ti -> 1.70 | Ti -> None
| V -> 1.98 | V -> Some 1.98
| Cr -> 1.94 | Cr -> Some 1.94
| Mn -> 1.93 | Mn -> Some 1.93
| Fe -> 1.93 | Fe -> Some 1.93
| Co -> 1.92 | Co -> Some 1.92
| Ni -> 1.70 | Ni -> Some 1.63
| Cu -> 1.70 | Cu -> Some 1.40
| Zn -> 1.70 | Zn -> Some 1.39
| Ga -> 2.02 | Ga -> Some 1.87
| Ge -> 1.70 | Ge -> None
| As -> 1.96 | As -> Some 1.85
| Se -> 1.70 | Se -> Some 1.90
| Br -> 2.10 | Br -> Some 1.85
| Kr -> 1.70 | Kr -> Some 2.02
| Rb -> 3.03 | Rb -> Some 3.03
| Sr -> 2.49 | Sr -> Some 2.49
| Y -> 0. | Y -> None
| Zr -> 0. | Zr -> None
| Nb -> 0. | Nb -> None
| Mo -> 0. | Mo -> None
| Tc -> 0. | Tc -> None
| Ru -> 0. | Ru -> None
| Rh -> 0. | Rh -> None
| Pd -> 1.63 | Pd -> Some 1.63
| Ag -> 1.72 | Ag -> Some 1.72
| Cd -> 1.58 | Cd -> Some 1.58
| In -> 1.93 | In -> Some 1.93
| Sn -> 2.17 | Sn -> Some 2.17
| Sb -> 2.06 | Sb -> Some 2.06
| Te -> 2.06 | Te -> Some 2.06
| I -> 1.98 | I -> Some 1.98
| Xe -> 2.16 | Xe -> Some 2.16
| Pt -> 1.75 | Cs -> None
| Ba -> None
| La -> None
| Ce -> None
| Pr -> None
| Nd -> None
| Pm -> None
| Sm -> None
| Eu -> None
| Gd -> None
| Tb -> None
| Dy -> None
| Ho -> None
| Er -> None
| Tm -> None
| Yb -> None
| Lu -> None
| Hf -> None
| Ta -> None
| W -> None
| Re -> None
| Os -> None
| Ir -> None
| Pt -> Some 1.75
| Au -> Some 1.66
| Hg -> Some 1.55
| Tl -> Some 1.96
| Pb -> Some 2.02
| Bi -> None
| Po -> None
| At -> None
| Rn -> None
| Fr -> None
| Ra -> None
| Ac -> None
| Th -> None
| Pa -> None
| U -> Some 1.86
| Np -> None
| Pu -> None
| Am -> None
| Cm -> None
| Bk -> None
| Cf -> None
| Es -> None
| Fm -> None
| Md -> None
| No -> None
| Lr -> None
| Rf -> None
| Db -> None
| Sg -> None
| Bh -> None
| Hs -> None
| Mt -> None
| Ds -> None
| Rg -> None
| Cn -> None
| Nh -> None
| Fl -> None
| Mc -> None
| Lv -> None
| Ts -> None
| Og -> None
in in
Units.angstrom_to_bohr *. (result x) match result x with
|> Positive_float.of_float | Some y -> Some (Positive_float.of_float @@ Units.angstrom_to_bohr *. y )
| None -> None
let mass x = let mass x =
let result = function let result = function
| X -> 0. | X -> 0.
| H -> 1.0079 | H -> 1.0079
| He -> 4.00260 | He -> 4.002602
| Li -> 6.941 | Li -> 6.941
| Be -> 9.01218 | Be -> 9.0121831
| B -> 10.81 | B -> 10.81
| C -> 12.011 | C -> 12.011
| N -> 14.0067 | N -> 14.0067
| O -> 15.9994 | O -> 15.9994
| F -> 18.998403 | F -> 18.998403163
| Ne -> 20.179 | Ne -> 20.1797
| Na -> 22.98977 | Na -> 22.98976928
| Mg -> 24.305 | Mg -> 24.305
| Al -> 26.98154 | Al -> 26.9815385
| Si -> 28.0855 | Si -> 28.0855
| P -> 30.97376 | P -> 30.973761998
| S -> 32.06 | S -> 32.06
| Cl -> 35.453 | Cl -> 35.453
| Ar -> 39.948 | Ar -> 39.948
| K -> 39.0983 | K -> 39.0983
| Ca -> 40.08 | Ca -> 40.078
| Sc -> 44.9559 | Sc -> 44.955908
| Ti -> 47.90 | Ti -> 47.867
| V -> 50.9415 | V -> 50.9415
| Cr -> 51.996 | Cr -> 51.9961
| Mn -> 54.9380 | Mn -> 54.938044
| Fe -> 55.9332 | Fe -> 55.845
| Co -> 58.9332 | Co -> 58.933194
| Ni -> 58.70 | Ni -> 58.6934
| Cu -> 63.546 | Cu -> 63.546
| Zn -> 65.38 | Zn -> 65.38
| Ga -> 69.72 | Ga -> 69.723
| Ge -> 72.59 | Ge -> 72.630
| As -> 74.9216 | As -> 74.921595
| Se -> 78.96 | Se -> 78.971
| Br -> 79.904 | Br -> 79.904
| Kr -> 83.80 | Kr -> 83.798
| Rb -> 85.4678 | Rb -> 85.4678
| Sr -> 87.62 | Sr -> 87.62
| Y -> 88.90584 | Y -> 88.90584
@ -494,7 +942,70 @@ let mass x =
| Te -> 127.60 | Te -> 127.60
| I -> 126.90447 | I -> 126.90447
| Xe -> 131.293 | Xe -> 131.293
| Cs -> 132.90545196
| Ba -> 137.327
| La -> 138.90547
| Ce -> 140.116
| Pr -> 140.90766
| Nd -> 144.242
| Pm -> 145.
| Sm -> 150.36
| Eu -> 151.964
| Gd -> 157.25
| Tb -> 158.92535
| Dy -> 162.500
| Ho -> 164.93033
| Er -> 167.259
| Tm -> 168.93422
| Yb -> 173.045
| Lu -> 174.9668
| Hf -> 178.49
| Ta -> 180.94788
| W -> 183.84
| Re -> 186.207
| Os -> 190.23
| Ir -> 192.217
| Pt -> 195.084 | Pt -> 195.084
| Au -> 196.966569
| Hg -> 200.592
| Tl -> 204.38
| Pb -> 207.2
| Bi -> 208.98040
| Po -> 209.
| At -> 210.
| Rn -> 222.
| Fr -> 223.
| Ra -> 226.
| Ac -> 227.
| Th -> 232.0377
| Pa -> 231.03588
| U -> 238.02891
| Np -> 237.
| Pu -> 244.
| Am -> 243.
| Cm -> 247.
| Bk -> 247.
| Cf -> 251.
| Es -> 252.
| Fm -> 257.
| Md -> 258.
| No -> 259.
| Lr -> 262.
| Rf -> 267.
| Db -> 270.
| Sg -> 269.
| Bh -> 270.
| Hs -> 270.
| Mt -> 278.
| Ds -> 281.
| Rg -> 281.
| Cn -> 285.
| Nh -> 286.
| Fl -> 289.
| Mc -> 289.
| Lv -> 293.
| Ts -> 293.
| Og -> 294.
in in
result x result x
|> Positive_float.of_float |> Positive_float.of_float

View File

@ -1,13 +1,18 @@
exception ElementError of string exception ElementError of string
type t = type t = X
|X
|H |He |H |He
|Li|Be |B |C |N |O |F |Ne |Li|Be |B |C |N |O |F |Ne
|Na|Mg |Al|Si|P |S |Cl|Ar |Na|Mg |Al|Si|P |S |Cl|Ar
|K |Ca|Sc|Ti|V |Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr |K |Ca|Sc|Ti|V |Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr
|Rb|Sr|Y |Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I |Xe |Rb|Sr|Y |Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I |Xe
|Pt |Cs|Ba|La|Hf|Ta|W |Re|Os|Ir|Pt|Au|Hg|Tl|Pb|Bi|Po|At|Rn
|Fr|Ra|Ac|Rf|Db|Sg|Bh|Hs|Mt|Ds|Rg|Cn|Nh|Fl|Mc|Lv|Ts|Og
|Ce|Pr|Nd|Pm|Sm|Eu|Gd|Tb|Dy|Ho|Er|Tm|Yb|Lu
|Th|Pa|U |Np|Pu|Am|Cm|Bk|Cf|Es|Fm|Md|No|Lr
[@@deriving sexp] [@@deriving sexp]
(** String conversion functions *) (** String conversion functions *)
@ -19,5 +24,5 @@ val to_long_string : t -> string
val to_charge : t -> Charge.t val to_charge : t -> Charge.t
val of_charge : Charge.t -> t val of_charge : Charge.t -> t
val covalent_radius : t -> Qptypes.Positive_float.t val covalent_radius : t -> Qptypes.Positive_float.t
val vdw_radius : t -> Qptypes.Positive_float.t val vdw_radius : t -> Qptypes.Positive_float.t option
val mass : t -> Qptypes.Positive_float.t val mass : t -> Qptypes.Positive_float.t