mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-22 20:34:58 +01:00
Updated atomic data
This commit is contained in:
parent
714d53363e
commit
d50cca6f88
747
ocaml/Element.ml
747
ocaml/Element.ml
@ -3,14 +3,19 @@ open Qptypes
|
||||
|
||||
exception ElementError of string
|
||||
|
||||
type t =
|
||||
|X
|
||||
type t = X
|
||||
|
||||
|H |He
|
||||
|Li|Be |B |C |N |O |F |Ne
|
||||
|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
|
||||
|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]
|
||||
|
||||
let of_string x =
|
||||
@ -70,7 +75,70 @@ let of_string x =
|
||||
| "Te" | "Tellurium" -> Te
|
||||
| "I" | "Iodine" -> I
|
||||
| "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
|
||||
| "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"))
|
||||
|
||||
|
||||
@ -130,7 +198,70 @@ let to_string = function
|
||||
| Te -> "Te"
|
||||
| I -> "I"
|
||||
| Xe -> "Xe"
|
||||
| Cs -> "Cs"
|
||||
| Ba -> "Ba"
|
||||
| La -> "La"
|
||||
| Hf -> "Hf"
|
||||
| Ta -> "Ta"
|
||||
| W -> "W"
|
||||
| Re -> "Re"
|
||||
| Os -> "Os"
|
||||
| Ir -> "Ir"
|
||||
| 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
|
||||
@ -189,8 +320,70 @@ let to_long_string = function
|
||||
| Te -> "Tellurium"
|
||||
| I -> "Iodine"
|
||||
| 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"
|
||||
|
||||
| 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 result = match c with
|
||||
@ -249,7 +442,70 @@ let to_charge c =
|
||||
| Te -> 52
|
||||
| I -> 53
|
||||
| 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
|
||||
| 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
|
||||
|
||||
|
||||
@ -309,49 +565,112 @@ let of_charge c = match (Charge.to_int c) with
|
||||
| 52 -> Te
|
||||
| 53 -> I
|
||||
| 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
|
||||
| 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"))
|
||||
|
||||
|
||||
let covalent_radius x =
|
||||
let result = function
|
||||
| X -> 0.
|
||||
| H -> 0.37
|
||||
| He -> 0.70
|
||||
| Li -> 1.23
|
||||
| Be -> 0.89
|
||||
| B -> 0.90
|
||||
| C -> 0.85
|
||||
| N -> 0.74
|
||||
| O -> 0.74
|
||||
| F -> 0.72
|
||||
| Ne -> 0.70
|
||||
| Na -> 1.00
|
||||
| Mg -> 1.36
|
||||
| Al -> 1.25
|
||||
| Si -> 1.17
|
||||
| P -> 1.10
|
||||
| S -> 1.10
|
||||
| Cl -> 0.99
|
||||
| Ar -> 0.70
|
||||
| H -> 0.31
|
||||
| He -> 0.28
|
||||
| Li -> 1.28
|
||||
| Be -> 0.96
|
||||
| B -> 0.85
|
||||
| C -> 0.76
|
||||
| N -> 0.71
|
||||
| O -> 0.66
|
||||
| F -> 0.57
|
||||
| Ne -> 0.58
|
||||
| Na -> 1.66
|
||||
| Mg -> 1.41
|
||||
| Al -> 1.21
|
||||
| Si -> 1.11
|
||||
| P -> 1.07
|
||||
| S -> 1.05
|
||||
| Cl -> 1.02
|
||||
| Ar -> 1.06
|
||||
| K -> 2.03
|
||||
| Ca -> 1.74
|
||||
| Sc -> 1.44
|
||||
| Ti -> 1.32
|
||||
| V -> 1.22
|
||||
| Cr -> 0.00
|
||||
| Mn -> 1.16
|
||||
| Fe -> 0.00
|
||||
| Co -> 1.15
|
||||
| Ni -> 1.17
|
||||
| Cu -> 1.25
|
||||
| Zn -> 1.25
|
||||
| Ga -> 1.20
|
||||
| Ge -> 1.21
|
||||
| As -> 1.16
|
||||
| Se -> 0.70
|
||||
| Br -> 1.24
|
||||
| Kr -> 1.91
|
||||
| Ca -> 1.76
|
||||
| Sc -> 1.70
|
||||
| Ti -> 1.60
|
||||
| V -> 1.53
|
||||
| Cr -> 1.39
|
||||
| Mn -> 1.39
|
||||
| Fe -> 1.32
|
||||
| Co -> 1.26
|
||||
| Ni -> 1.24
|
||||
| Cu -> 1.32
|
||||
| Zn -> 1.22
|
||||
| Ga -> 1.22
|
||||
| Ge -> 1.20
|
||||
| As -> 1.19
|
||||
| Se -> 1.20
|
||||
| Br -> 1.20
|
||||
| Kr -> 1.16
|
||||
| Rb -> 2.20
|
||||
| Sr -> 1.95
|
||||
| Y -> 1.90
|
||||
@ -370,112 +689,241 @@ let covalent_radius x =
|
||||
| Te -> 1.38
|
||||
| I -> 1.39
|
||||
| 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
|
||||
Units.angstrom_to_bohr *. (result x)
|
||||
|> Positive_float.of_float
|
||||
|
||||
|
||||
let vdw_radius x =
|
||||
let result = function
|
||||
| X -> 0.
|
||||
| H -> 1.20
|
||||
| He -> 1.70
|
||||
| Li -> 1.70
|
||||
| Be -> 1.70
|
||||
| B -> 1.70
|
||||
| C -> 1.70
|
||||
| N -> 1.55
|
||||
| O -> 1.52
|
||||
| F -> 1.47
|
||||
| Ne -> 1.70
|
||||
| Na -> 1.70
|
||||
| Mg -> 1.70
|
||||
| Al -> 1.94
|
||||
| Si -> 2.10
|
||||
| P -> 1.80
|
||||
| S -> 1.80
|
||||
| Cl -> 1.75
|
||||
| Ar -> 1.70
|
||||
| K -> 1.70
|
||||
| Ca -> 1.70
|
||||
| Sc -> 1.70
|
||||
| Ti -> 1.70
|
||||
| V -> 1.98
|
||||
| Cr -> 1.94
|
||||
| Mn -> 1.93
|
||||
| Fe -> 1.93
|
||||
| Co -> 1.92
|
||||
| Ni -> 1.70
|
||||
| Cu -> 1.70
|
||||
| Zn -> 1.70
|
||||
| Ga -> 2.02
|
||||
| Ge -> 1.70
|
||||
| As -> 1.96
|
||||
| Se -> 1.70
|
||||
| Br -> 2.10
|
||||
| Kr -> 1.70
|
||||
| Rb -> 3.03
|
||||
| Sr -> 2.49
|
||||
| Y -> 0.
|
||||
| Zr -> 0.
|
||||
| Nb -> 0.
|
||||
| Mo -> 0.
|
||||
| Tc -> 0.
|
||||
| Ru -> 0.
|
||||
| Rh -> 0.
|
||||
| Pd -> 1.63
|
||||
| Ag -> 1.72
|
||||
| Cd -> 1.58
|
||||
| In -> 1.93
|
||||
| Sn -> 2.17
|
||||
| Sb -> 2.06
|
||||
| Te -> 2.06
|
||||
| I -> 1.98
|
||||
| Xe -> 2.16
|
||||
| Pt -> 1.75
|
||||
| X -> Some 0.
|
||||
| H -> Some 1.20
|
||||
| He -> Some 1.40
|
||||
| Li -> Some 1.82
|
||||
| Be -> None
|
||||
| B -> None
|
||||
| C -> Some 1.70
|
||||
| N -> Some 1.55
|
||||
| O -> Some 1.52
|
||||
| F -> Some 1.47
|
||||
| Ne -> Some 1.54
|
||||
| Na -> Some 2.27
|
||||
| Mg -> Some 1.73
|
||||
| Al -> Some 1.94
|
||||
| Si -> Some 2.10
|
||||
| P -> Some 1.80
|
||||
| S -> Some 1.80
|
||||
| Cl -> Some 1.75
|
||||
| Ar -> Some 1.88
|
||||
| K -> Some 2.75
|
||||
| Ca -> None
|
||||
| Sc -> None
|
||||
| Ti -> None
|
||||
| V -> Some 1.98
|
||||
| Cr -> Some 1.94
|
||||
| Mn -> Some 1.93
|
||||
| Fe -> Some 1.93
|
||||
| Co -> Some 1.92
|
||||
| Ni -> Some 1.63
|
||||
| Cu -> Some 1.40
|
||||
| Zn -> Some 1.39
|
||||
| Ga -> Some 1.87
|
||||
| Ge -> None
|
||||
| As -> Some 1.85
|
||||
| Se -> Some 1.90
|
||||
| Br -> Some 1.85
|
||||
| Kr -> Some 2.02
|
||||
| Rb -> Some 3.03
|
||||
| Sr -> Some 2.49
|
||||
| Y -> None
|
||||
| Zr -> None
|
||||
| Nb -> None
|
||||
| Mo -> None
|
||||
| Tc -> None
|
||||
| Ru -> None
|
||||
| Rh -> None
|
||||
| Pd -> Some 1.63
|
||||
| Ag -> Some 1.72
|
||||
| Cd -> Some 1.58
|
||||
| In -> Some 1.93
|
||||
| Sn -> Some 2.17
|
||||
| Sb -> Some 2.06
|
||||
| Te -> Some 2.06
|
||||
| I -> Some 1.98
|
||||
| Xe -> Some 2.16
|
||||
| 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
|
||||
Units.angstrom_to_bohr *. (result x)
|
||||
|> Positive_float.of_float
|
||||
match result x with
|
||||
| Some y -> Some (Positive_float.of_float @@ Units.angstrom_to_bohr *. y )
|
||||
| None -> None
|
||||
|
||||
|
||||
let mass x =
|
||||
let result = function
|
||||
| X -> 0.
|
||||
| H -> 1.0079
|
||||
| He -> 4.00260
|
||||
| He -> 4.002602
|
||||
| Li -> 6.941
|
||||
| Be -> 9.01218
|
||||
| Be -> 9.0121831
|
||||
| B -> 10.81
|
||||
| C -> 12.011
|
||||
| N -> 14.0067
|
||||
| O -> 15.9994
|
||||
| F -> 18.998403
|
||||
| Ne -> 20.179
|
||||
| Na -> 22.98977
|
||||
| F -> 18.998403163
|
||||
| Ne -> 20.1797
|
||||
| Na -> 22.98976928
|
||||
| Mg -> 24.305
|
||||
| Al -> 26.98154
|
||||
| Al -> 26.9815385
|
||||
| Si -> 28.0855
|
||||
| P -> 30.97376
|
||||
| P -> 30.973761998
|
||||
| S -> 32.06
|
||||
| Cl -> 35.453
|
||||
| Ar -> 39.948
|
||||
| K -> 39.0983
|
||||
| Ca -> 40.08
|
||||
| Sc -> 44.9559
|
||||
| Ti -> 47.90
|
||||
| Ca -> 40.078
|
||||
| Sc -> 44.955908
|
||||
| Ti -> 47.867
|
||||
| V -> 50.9415
|
||||
| Cr -> 51.996
|
||||
| Mn -> 54.9380
|
||||
| Fe -> 55.9332
|
||||
| Co -> 58.9332
|
||||
| Ni -> 58.70
|
||||
| Cr -> 51.9961
|
||||
| Mn -> 54.938044
|
||||
| Fe -> 55.845
|
||||
| Co -> 58.933194
|
||||
| Ni -> 58.6934
|
||||
| Cu -> 63.546
|
||||
| Zn -> 65.38
|
||||
| Ga -> 69.72
|
||||
| Ge -> 72.59
|
||||
| As -> 74.9216
|
||||
| Se -> 78.96
|
||||
| Ga -> 69.723
|
||||
| Ge -> 72.630
|
||||
| As -> 74.921595
|
||||
| Se -> 78.971
|
||||
| Br -> 79.904
|
||||
| Kr -> 83.80
|
||||
| Kr -> 83.798
|
||||
| Rb -> 85.4678
|
||||
| Sr -> 87.62
|
||||
| Y -> 88.90584
|
||||
@ -494,7 +942,70 @@ let mass x =
|
||||
| Te -> 127.60
|
||||
| I -> 126.90447
|
||||
| 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
|
||||
| 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
|
||||
result x
|
||||
|> Positive_float.of_float
|
||||
|
@ -1,13 +1,18 @@
|
||||
exception ElementError of string
|
||||
|
||||
type t =
|
||||
|X
|
||||
type t = X
|
||||
|
||||
|H |He
|
||||
|Li|Be |B |C |N |O |F |Ne
|
||||
|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
|
||||
|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]
|
||||
|
||||
(** String conversion functions *)
|
||||
@ -19,5 +24,5 @@ val to_long_string : t -> string
|
||||
val to_charge : t -> Charge.t
|
||||
val of_charge : Charge.t -> 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
|
||||
|
Loading…
Reference in New Issue
Block a user