Last active
August 29, 2015 14:24
-
-
Save zmactep/919b0d88aabab4972243 to your computer and use it in GitHub Desktop.
Chemicals
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
abstract class Atom(val isotope : Int, val charge : Int = 0) { | |
def number : Int | |
def name : String | |
def symbol : String | |
def valence : Set[Int] = Set.empty[Int] | |
} | |
trait Organic | |
object Atom { | |
object isotope { | |
def H : Int = 1 | |
def He : Int = 4 | |
def Li : Int = 6 | |
def Be : Int = 9 | |
def B : Int = 10 | |
def C : Int = 12 | |
def N : Int = 14 | |
def O : Int = 16 | |
def F : Int = 18 | |
def Ne : Int = 20 | |
def Na : Int = 22 | |
def Mg : Int = 24 | |
def Al : Int = 26 | |
def Si : Int = 28 | |
def P : Int = 30 | |
def S : Int = 32 | |
def Cl : Int = 35 | |
def Ar : Int = 39 | |
def K : Int = 39 | |
def Ca : Int = 40 | |
def Sc : Int = 44 | |
def Ti : Int = 47 | |
def V : Int = 50 | |
def Cr : Int = 51 | |
def Mn : Int = 54 | |
def Fe : Int = 55 | |
def Co : Int = 58 | |
def Ni : Int = 58 | |
def Cu : Int = 63 | |
def Zn : Int = 65 | |
def Ga : Int = 69 | |
def Ge : Int = 72 | |
def As : Int = 74 | |
def Se : Int = 78 | |
def Br : Int = 79 | |
def Kr : Int = 83 | |
def Rb : Int = 85 | |
def Sr : Int = 87 | |
def Y : Int = 88 | |
def Zr : Int = 91 | |
def Nb : Int = 92 | |
def Mo : Int = 95 | |
def Tc : Int = 981 | |
def Ru : Int = 101 | |
def Rh : Int = 102 | |
def Pd : Int = 106 | |
def Ag : Int = 107 | |
def Cd : Int = 112 | |
def In : Int = 114 | |
def Sn : Int = 118 | |
def Sb : Int = 121 | |
def Te : Int = 127 | |
def I : Int = 126 | |
def Xe : Int = 131 | |
def Cs : Int = 132 | |
def Ba : Int = 137 | |
def La : Int = 138 | |
def Ce : Int = 140 | |
def Pr : Int = 140 | |
def Nd : Int = 144 | |
def Pm : Int = 1451 | |
def Sm : Int = 150 | |
def Eu : Int = 151 | |
def Gd : Int = 157 | |
def Tb : Int = 158 | |
def Dy : Int = 162 | |
def Ho : Int = 164 | |
def Er : Int = 167 | |
def Tm : Int = 168 | |
def Yb : Int = 173 | |
def Lu : Int = 174 | |
def Hf : Int = 178 | |
def Ta : Int = 180 | |
def W : Int = 183 | |
def Re : Int = 186 | |
def Os : Int = 190 | |
def Ir : Int = 192 | |
def Pt : Int = 195 | |
def Au : Int = 196 | |
def Hg : Int = 200 | |
def Tl : Int = 204 | |
def Pb : Int = 207 | |
def Bi : Int = 208 | |
def Po : Int = 2091 | |
def At : Int = 2101 | |
def Rn : Int = 2221 | |
def Fr : Int = 2231 | |
def Ra : Int = 2261 | |
def Ac : Int = 2271 | |
def Th : Int = 232 | |
def Pa : Int = 231 | |
def U : Int = 238 | |
def Np : Int = 2371 | |
def Pu : Int = 2441 | |
def Am : Int = 2431 | |
def Cm : Int = 2471 | |
def Bk : Int = 2471 | |
def Cf : Int = 2511 | |
def Es : Int = 2521 | |
def Fm : Int = 2571 | |
def Md : Int = 2581 | |
def No : Int = 2591 | |
def Lr : Int = 2661 | |
def Rf : Int = 2671 | |
def Db : Int = 2681 | |
def Sg : Int = 2691 | |
def Bh : Int = 2701 | |
def Hs : Int = 2691 | |
def Mt : Int = 2781 | |
def Ds : Int = 2811 | |
def Rg : Int = 2811 | |
def Cn : Int = 2851 | |
def Uut : Int = 2861 | |
def Fl : Int = 2891 | |
def Uup : Int = 2891 | |
def Lv : Int = 2931 | |
def Uus : Int = 2941 | |
def Uuo : Int = 2941 | |
} | |
} | |
class Hydrogen(isotope : Int = Atom.isotope.H, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 1 | |
override def name : String = "Hydrogen" | |
override def symbol : String = "H" | |
override def valence : Set[Int] = Set(1, -1) | |
} | |
class Helium(isotope : Int = Atom.isotope.He, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 2 | |
override def name : String = "Helium" | |
override def symbol : String = "He" | |
override def valence : Set[Int] = Set(0) | |
} | |
class Lithium(isotope : Int = Atom.isotope.Li, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 3 | |
override def name : String = "Lithium" | |
override def symbol : String = "Li" | |
override def valence : Set[Int] = Set(1) | |
} | |
class Beryllium(isotope : Int = Atom.isotope.Be, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 4 | |
override def name : String = "Beryllium" | |
override def symbol : String = "Be" | |
override def valence : Set[Int] = Set(2) | |
} | |
class Boron(isotope : Int = Atom.isotope.B, charge : Int = 0) extends Atom(isotope, charge) with Organic { | |
override def number : Int = 5 | |
override def name : String = "Boron" | |
override def symbol : String = "B" | |
override def valence : Set[Int] = Set(3, -3) | |
} | |
class Carbon(isotope : Int = Atom.isotope.C, charge : Int = 0) extends Atom(isotope, charge) with Organic { | |
override def number : Int = 6 | |
override def name : String = "Carbon" | |
override def symbol : String = "C" | |
override def valence : Set[Int] = Set(2, 4) | |
} | |
class Nitrogen(isotope : Int = Atom.isotope.N, charge : Int = 0) extends Atom(isotope, charge) with Organic { | |
override def number : Int = 7 | |
override def name : String = "Nitrogen" | |
override def symbol : String = "N" | |
override def valence : Set[Int] = Set(1, 2, 3, 4, 5, -3, -2, -1) | |
} | |
class Oxygen(isotope : Int = Atom.isotope.O, charge : Int = 0) extends Atom(isotope, charge) with Organic { | |
override def number : Int = 8 | |
override def name : String = "Oxygen" | |
override def symbol : String = "O" | |
override def valence : Set[Int] = Set(-2) | |
} | |
class Fluorine(isotope : Int = Atom.isotope.F, charge : Int = 0) extends Atom(isotope, charge) with Organic { | |
override def number : Int = 9 | |
override def name : String = "Fluorine" | |
override def symbol : String = "F" | |
override def valence : Set[Int] = Set(1, -1) | |
} | |
class Neon(isotope : Int = Atom.isotope.Ne, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 10 | |
override def name : String = "Neon" | |
override def symbol : String = "Ne" | |
override def valence : Set[Int] = Set(0) | |
} | |
class Sodium(isotope : Int = Atom.isotope.Na, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 11 | |
override def name : String = "Sodium" | |
override def symbol : String = "Na" | |
override def valence : Set[Int] = Set(1) | |
} | |
class Magnesium(isotope : Int = Atom.isotope.Mg, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 12 | |
override def name : String = "Magnesium" | |
override def symbol : String = "Mg" | |
override def valence : Set[Int] = Set(2) | |
} | |
class Aluminium(isotope : Int = Atom.isotope.Al, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 13 | |
override def name : String = "Aluminium" | |
override def symbol : String = "Al" | |
override def valence : Set[Int] = Set(3) | |
} | |
class Silicon(isotope : Int = Atom.isotope.Si, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 14 | |
override def name : String = "Silicon" | |
override def symbol : String = "Si" | |
override def valence : Set[Int] = Set(2, -4, 4) | |
} | |
class Phosphorus(isotope : Int = Atom.isotope.P, charge : Int = 0) extends Atom(isotope, charge) with Organic { | |
override def number : Int = 15 | |
override def name : String = "Phosphorus" | |
override def symbol : String = "P" | |
override def valence : Set[Int] = Set(1, 3, -3, 5) | |
} | |
class Sulfur(isotope : Int = Atom.isotope.S, charge : Int = 0) extends Atom(isotope, charge) with Organic { | |
override def number : Int = 16 | |
override def name : String = "Sulfur" | |
override def symbol : String = "S" | |
override def valence : Set[Int] = Set(2, 4, -2, 6) | |
} | |
class Chlorine(isotope : Int = Atom.isotope.Cl, charge : Int = 0) extends Atom(isotope, charge) with Organic { | |
override def number : Int = 17 | |
override def name : String = "Chlorine" | |
override def symbol : String = "Cl" | |
override def valence : Set[Int] = Set(1, 2, 3, 4, 5, 7, -1) | |
} | |
class Argon(isotope : Int = Atom.isotope.Ar, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 18 | |
override def name : String = "Argon" | |
override def symbol : String = "Ar" | |
override def valence : Set[Int] = Set(0) | |
} | |
class Potassium(isotope : Int = Atom.isotope.K, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 19 | |
override def name : String = "Potassium" | |
override def symbol : String = "K" | |
override def valence : Set[Int] = Set(1) | |
} | |
class Calcium(isotope : Int = Atom.isotope.Ca, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 20 | |
override def name : String = "Calcium" | |
override def symbol : String = "Ca" | |
override def valence : Set[Int] = Set(2) | |
} | |
class Scandium(isotope : Int = Atom.isotope.Sc, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 21 | |
override def name : String = "Scandium" | |
override def symbol : String = "Sc" | |
override def valence : Set[Int] = Set(3) | |
} | |
class Titanium(isotope : Int = Atom.isotope.Ti, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 22 | |
override def name : String = "Titanium" | |
override def symbol : String = "Ti" | |
override def valence : Set[Int] = Set(2, 3, 4) | |
} | |
class Vanadium(isotope : Int = Atom.isotope.V, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 23 | |
override def name : String = "Vanadium" | |
override def symbol : String = "V" | |
override def valence : Set[Int] = Set(2, 3, 4, 5) | |
} | |
class Chromium(isotope : Int = Atom.isotope.Cr, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 24 | |
override def name : String = "Chromium" | |
override def symbol : String = "Cr" | |
override def valence : Set[Int] = Set(2, 3, 6) | |
} | |
class Manganese(isotope : Int = Atom.isotope.Mn, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 25 | |
override def name : String = "Manganese" | |
override def symbol : String = "Mn" | |
override def valence : Set[Int] = Set(2, 3, 4, 6, 7) | |
} | |
class Iron(isotope : Int = Atom.isotope.Fe, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 26 | |
override def name : String = "Iron" | |
override def symbol : String = "Fe" | |
override def valence : Set[Int] = Set(2, 3, 4, 6) | |
} | |
class Cobalt(isotope : Int = Atom.isotope.Co, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 27 | |
override def name : String = "Cobalt" | |
override def symbol : String = "Co" | |
override def valence : Set[Int] = Set(2, 3, 4) | |
} | |
class Nickel(isotope : Int = Atom.isotope.Ni, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 28 | |
override def name : String = "Nickel" | |
override def symbol : String = "Ni" | |
override def valence : Set[Int] = Set(1, 2, 3, 4) | |
} | |
class Copper(isotope : Int = Atom.isotope.Cu, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 29 | |
override def name : String = "Copper" | |
override def symbol : String = "Cu" | |
override def valence : Set[Int] = Set(1, 2, 3) | |
} | |
class Zinc(isotope : Int = Atom.isotope.Zn, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 30 | |
override def name : String = "Zinc" | |
override def symbol : String = "Zn" | |
override def valence : Set[Int] = Set(2) | |
} | |
class Gallium(isotope : Int = Atom.isotope.Ga, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 31 | |
override def name : String = "Gallium" | |
override def symbol : String = "Ga" | |
override def valence : Set[Int] = Set(2, 3) | |
} | |
class Germanium(isotope : Int = Atom.isotope.Ge, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 32 | |
override def name : String = "Germanium" | |
override def symbol : String = "Ge" | |
override def valence : Set[Int] = Set(2, -4, 4) | |
} | |
class Arsenic(isotope : Int = Atom.isotope.As, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 33 | |
override def name : String = "Arsenic" | |
override def symbol : String = "As" | |
override def valence : Set[Int] = Set(2, 3, -3, 5) | |
} | |
class Selenium(isotope : Int = Atom.isotope.Se, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 34 | |
override def name : String = "Selenium" | |
override def symbol : String = "Se" | |
override def valence : Set[Int] = Set(2, 4, -2, 6) | |
} | |
class Bromine(isotope : Int = Atom.isotope.Br, charge : Int = 0) extends Atom(isotope, charge) with Organic { | |
override def number : Int = 35 | |
override def name : String = "Bromine" | |
override def symbol : String = "Br" | |
override def valence : Set[Int] = Set(1, 3, 4, 5, -1) | |
} | |
class Krypton(isotope : Int = Atom.isotope.Kr, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 36 | |
override def name : String = "Krypton" | |
override def symbol : String = "Kr" | |
override def valence : Set[Int] = Set(0) | |
} | |
class Rubidium(isotope : Int = Atom.isotope.Rb, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 37 | |
override def name : String = "Rubidium" | |
override def symbol : String = "Rb" | |
override def valence : Set[Int] = Set(1) | |
} | |
class Strontium(isotope : Int = Atom.isotope.Sr, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 38 | |
override def name : String = "Strontium" | |
override def symbol : String = "Sr" | |
override def valence : Set[Int] = Set(2) | |
} | |
class Yttrium(isotope : Int = Atom.isotope.Y, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 39 | |
override def name : String = "Yttrium" | |
override def symbol : String = "Y" | |
override def valence : Set[Int] = Set(3) | |
} | |
class Zirconium(isotope : Int = Atom.isotope.Zr, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 40 | |
override def name : String = "Zirconium" | |
override def symbol : String = "Zr" | |
override def valence : Set[Int] = Set(2, 3, 4) | |
} | |
class Niobium(isotope : Int = Atom.isotope.Nb, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 41 | |
override def name : String = "Niobium" | |
override def symbol : String = "Nb" | |
override def valence : Set[Int] = Set(2, 3, 4, 5) | |
} | |
class Molybdenum(isotope : Int = Atom.isotope.Mo, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 42 | |
override def name : String = "Molybdenum" | |
override def symbol : String = "Mo" | |
override def valence : Set[Int] = Set(2, 3, 4, 5, 6) | |
} | |
class Technetium(isotope : Int = Atom.isotope.Tc, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 43 | |
override def name : String = "Technetium" | |
override def symbol : String = "Tc" | |
override def valence : Set[Int] = Set(6) | |
} | |
class Ruthenium(isotope : Int = Atom.isotope.Ru, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 44 | |
override def name : String = "Ruthenium" | |
override def symbol : String = "Ru" | |
override def valence : Set[Int] = Set(2, 3, 4, 6, 7, 8) | |
} | |
class Rhodium(isotope : Int = Atom.isotope.Rh, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 45 | |
override def name : String = "Rhodium" | |
override def symbol : String = "Rh" | |
override def valence : Set[Int] = Set(2, 3, 4, 6) | |
} | |
class Palladium(isotope : Int = Atom.isotope.Pd, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 46 | |
override def name : String = "Palladium" | |
override def symbol : String = "Pd" | |
override def valence : Set[Int] = Set(2, 4, 6) | |
} | |
class Silver(isotope : Int = Atom.isotope.Ag, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 47 | |
override def name : String = "Silver" | |
override def symbol : String = "Ag" | |
override def valence : Set[Int] = Set(1, 2, 3) | |
} | |
class Cadmium(isotope : Int = Atom.isotope.Cd, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 48 | |
override def name : String = "Cadmium" | |
override def symbol : String = "Cd" | |
override def valence : Set[Int] = Set(1, 2) | |
} | |
class Indium(isotope : Int = Atom.isotope.In, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 49 | |
override def name : String = "Indium" | |
override def symbol : String = "In" | |
override def valence : Set[Int] = Set(1, 2, 3) | |
} | |
class Tin(isotope : Int = Atom.isotope.Sn, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 50 | |
override def name : String = "Tin" | |
override def symbol : String = "Sn" | |
override def valence : Set[Int] = Set(2, 4) | |
} | |
class Antimony(isotope : Int = Atom.isotope.Sb, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 51 | |
override def name : String = "Antimony" | |
override def symbol : String = "Sb" | |
override def valence : Set[Int] = Set(3, 4, -3, 5) | |
} | |
class Tellurium(isotope : Int = Atom.isotope.Te, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 52 | |
override def name : String = "Tellurium" | |
override def symbol : String = "Te" | |
override def valence : Set[Int] = Set(2, 4, -2, 6) | |
} | |
class Iodine(isotope : Int = Atom.isotope.I, charge : Int = 0) extends Atom(isotope, charge) with Organic { | |
override def number : Int = 53 | |
override def name : String = "Iodine" | |
override def symbol : String = "I" | |
override def valence : Set[Int] = Set(1, 3, 4, 5, 7, -1) | |
} | |
class Xenon(isotope : Int = Atom.isotope.Xe, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 54 | |
override def name : String = "Xenon" | |
override def symbol : String = "Xe" | |
override def valence : Set[Int] = Set(0) | |
} | |
class Caesium(isotope : Int = Atom.isotope.Cs, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 55 | |
override def name : String = "Caesium" | |
override def symbol : String = "Cs" | |
override def valence : Set[Int] = Set(1) | |
} | |
class Barium(isotope : Int = Atom.isotope.Ba, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 56 | |
override def name : String = "Barium" | |
override def symbol : String = "Ba" | |
override def valence : Set[Int] = Set(2) | |
} | |
class Lanthanum(isotope : Int = Atom.isotope.La, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 57 | |
override def name : String = "Lanthanum" | |
override def symbol : String = "La" | |
override def valence : Set[Int] = Set(3) | |
} | |
class Cerium(isotope : Int = Atom.isotope.Ce, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 58 | |
override def name : String = "Cerium" | |
override def symbol : String = "Ce" | |
override def valence : Set[Int] = Set(3, 4) | |
} | |
class Praseodymium(isotope : Int = Atom.isotope.Pr, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 59 | |
override def name : String = "Praseodymium" | |
override def symbol : String = "Pr" | |
override def valence : Set[Int] = Set(3) | |
} | |
class Neodymium(isotope : Int = Atom.isotope.Nd, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 60 | |
override def name : String = "Neodymium" | |
override def symbol : String = "Nd" | |
override def valence : Set[Int] = Set(3, 4) | |
} | |
class Promethium(isotope : Int = Atom.isotope.Pm, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 61 | |
override def name : String = "Promethium" | |
override def symbol : String = "Pm" | |
override def valence : Set[Int] = Set(3) | |
} | |
class Samarium(isotope : Int = Atom.isotope.Sm, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 62 | |
override def name : String = "Samarium" | |
override def symbol : String = "Sm" | |
override def valence : Set[Int] = Set(2, 3) | |
} | |
class Europium(isotope : Int = Atom.isotope.Eu, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 63 | |
override def name : String = "Europium" | |
override def symbol : String = "Eu" | |
override def valence : Set[Int] = Set(2, 3) | |
} | |
class Gadolinium(isotope : Int = Atom.isotope.Gd, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 64 | |
override def name : String = "Gadolinium" | |
override def symbol : String = "Gd" | |
override def valence : Set[Int] = Set(3) | |
} | |
class Terbium(isotope : Int = Atom.isotope.Tb, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 65 | |
override def name : String = "Terbium" | |
override def symbol : String = "Tb" | |
override def valence : Set[Int] = Set(3, 4) | |
} | |
class Dysprosium(isotope : Int = Atom.isotope.Dy, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 66 | |
override def name : String = "Dysprosium" | |
override def symbol : String = "Dy" | |
override def valence : Set[Int] = Set(3) | |
} | |
class Holmium(isotope : Int = Atom.isotope.Ho, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 67 | |
override def name : String = "Holmium" | |
override def symbol : String = "Ho" | |
override def valence : Set[Int] = Set(3) | |
} | |
class Erbium(isotope : Int = Atom.isotope.Er, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 68 | |
override def name : String = "Erbium" | |
override def symbol : String = "Er" | |
override def valence : Set[Int] = Set(3) | |
} | |
class Thulium(isotope : Int = Atom.isotope.Tm, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 69 | |
override def name : String = "Thulium" | |
override def symbol : String = "Tm" | |
override def valence : Set[Int] = Set(2, 3) | |
} | |
class Ytterbium(isotope : Int = Atom.isotope.Yb, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 70 | |
override def name : String = "Ytterbium" | |
override def symbol : String = "Yb" | |
override def valence : Set[Int] = Set(2, 3) | |
} | |
class Lutetium(isotope : Int = Atom.isotope.Lu, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 71 | |
override def name : String = "Lutetium" | |
override def symbol : String = "Lu" | |
override def valence : Set[Int] = Set(3) | |
} | |
class Hafnium(isotope : Int = Atom.isotope.Hf, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 72 | |
override def name : String = "Hafnium" | |
override def symbol : String = "Hf" | |
override def valence : Set[Int] = Set(4) | |
} | |
class Tantalum(isotope : Int = Atom.isotope.Ta, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 73 | |
override def name : String = "Tantalum" | |
override def symbol : String = "Ta" | |
override def valence : Set[Int] = Set(3, 4, 5) | |
} | |
class Tungsten(isotope : Int = Atom.isotope.W, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 74 | |
override def name : String = "Tungsten" | |
override def symbol : String = "W" | |
override def valence : Set[Int] = Set(2, 3, 4, 5, 6) | |
} | |
class Rhenium(isotope : Int = Atom.isotope.Re, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 75 | |
override def name : String = "Rhenium" | |
override def symbol : String = "Re" | |
override def valence : Set[Int] = Set(1, 2, 3, 4, 5, 6, 7, -1) | |
} | |
class Osmium(isotope : Int = Atom.isotope.Os, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 76 | |
override def name : String = "Osmium" | |
override def symbol : String = "Os" | |
override def valence : Set[Int] = Set(8, 2, 3, 4, 6) | |
} | |
class Iridium(isotope : Int = Atom.isotope.Ir, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 77 | |
override def name : String = "Iridium" | |
override def symbol : String = "Ir" | |
override def valence : Set[Int] = Set(1, 2, 3, 4, 6) | |
} | |
class Platinum(isotope : Int = Atom.isotope.Pt, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 78 | |
override def name : String = "Platinum" | |
override def symbol : String = "Pt" | |
override def valence : Set[Int] = Set(1, 2, 3, 4, 6) | |
} | |
class Gold(isotope : Int = Atom.isotope.Au, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 79 | |
override def name : String = "Gold" | |
override def symbol : String = "Au" | |
override def valence : Set[Int] = Set(1, 2, 3) | |
} | |
class Mercury(isotope : Int = Atom.isotope.Hg, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 80 | |
override def name : String = "Mercury" | |
override def symbol : String = "Hg" | |
override def valence : Set[Int] = Set(1, 2) | |
} | |
class Thallium(isotope : Int = Atom.isotope.Tl, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 81 | |
override def name : String = "Thallium" | |
override def symbol : String = "Tl" | |
override def valence : Set[Int] = Set(1, 2, 3) | |
} | |
class Lead(isotope : Int = Atom.isotope.Pb, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 82 | |
override def name : String = "Lead" | |
override def symbol : String = "Pb" | |
override def valence : Set[Int] = Set(2, 4) | |
} | |
class Bismuth(isotope : Int = Atom.isotope.Bi, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 83 | |
override def name : String = "Bismuth" | |
override def symbol : String = "Bi" | |
override def valence : Set[Int] = Set(2, 3, 4, -3, 5) | |
} | |
class Polonium(isotope : Int = Atom.isotope.Po, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 84 | |
override def name : String = "Polonium" | |
override def symbol : String = "Po" | |
override def valence : Set[Int] = Set(2, 4, -2, 6) | |
} | |
class Astatine(isotope : Int = Atom.isotope.At, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 85 | |
override def name : String = "Astatine" | |
override def symbol : String = "At" | |
} | |
class Radon(isotope : Int = Atom.isotope.Rn, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 86 | |
override def name : String = "Radon" | |
override def symbol : String = "Rn" | |
override def valence : Set[Int] = Set(0) | |
} | |
class Francium(isotope : Int = Atom.isotope.Fr, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 87 | |
override def name : String = "Francium" | |
override def symbol : String = "Fr" | |
} | |
class Radium(isotope : Int = Atom.isotope.Ra, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 88 | |
override def name : String = "Radium" | |
override def symbol : String = "Ra" | |
override def valence : Set[Int] = Set(2) | |
} | |
class Actinium(isotope : Int = Atom.isotope.Ac, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 89 | |
override def name : String = "Actinium" | |
override def symbol : String = "Ac" | |
override def valence : Set[Int] = Set(3) | |
} | |
class Thorium(isotope : Int = Atom.isotope.Th, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 90 | |
override def name : String = "Thorium" | |
override def symbol : String = "Th" | |
override def valence : Set[Int] = Set(4) | |
} | |
class Protactinium(isotope : Int = Atom.isotope.Pa, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 91 | |
override def name : String = "Protactinium" | |
override def symbol : String = "Pa" | |
override def valence : Set[Int] = Set(5) | |
} | |
class Uranium(isotope : Int = Atom.isotope.U, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 92 | |
override def name : String = "Uranium" | |
override def symbol : String = "U" | |
override def valence : Set[Int] = Set(2, 3, 4, 5, 6) | |
} | |
class Neptunium(isotope : Int = Atom.isotope.Np, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 93 | |
override def name : String = "Neptunium" | |
override def symbol : String = "Np" | |
} | |
class Plutonium(isotope : Int = Atom.isotope.Pu, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 94 | |
override def name : String = "Plutonium" | |
override def symbol : String = "Pu" | |
} | |
class Americium(isotope : Int = Atom.isotope.Am, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 95 | |
override def name : String = "Americium" | |
override def symbol : String = "Am" | |
} | |
class Curium(isotope : Int = Atom.isotope.Cm, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 96 | |
override def name : String = "Curium" | |
override def symbol : String = "Cm" | |
} | |
class Berkelium(isotope : Int = Atom.isotope.Bk, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 97 | |
override def name : String = "Berkelium" | |
override def symbol : String = "Bk" | |
} | |
class Californium(isotope : Int = Atom.isotope.Cf, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 98 | |
override def name : String = "Californium" | |
override def symbol : String = "Cf" | |
} | |
class Einsteinium(isotope : Int = Atom.isotope.Es, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 99 | |
override def name : String = "Einsteinium" | |
override def symbol : String = "Es" | |
} | |
class Fermium(isotope : Int = Atom.isotope.Fm, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 100 | |
override def name : String = "Fermium" | |
override def symbol : String = "Fm" | |
} | |
class Mendelevium(isotope : Int = Atom.isotope.Md, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 101 | |
override def name : String = "Mendelevium" | |
override def symbol : String = "Md" | |
} | |
class Nobelium(isotope : Int = Atom.isotope.No, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 102 | |
override def name : String = "Nobelium" | |
override def symbol : String = "No" | |
} | |
class Lawrencium(isotope : Int = Atom.isotope.Lr, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 103 | |
override def name : String = "Lawrencium" | |
override def symbol : String = "Lr" | |
} | |
class Rutherfordium(isotope : Int = Atom.isotope.Rf, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 104 | |
override def name : String = "Rutherfordium" | |
override def symbol : String = "Rf" | |
} | |
class Dubnium(isotope : Int = Atom.isotope.Db, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 105 | |
override def name : String = "Dubnium" | |
override def symbol : String = "Db" | |
} | |
class Seaborgium(isotope : Int = Atom.isotope.Sg, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 106 | |
override def name : String = "Seaborgium" | |
override def symbol : String = "Sg" | |
} | |
class Bohrium(isotope : Int = Atom.isotope.Bh, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 107 | |
override def name : String = "Bohrium" | |
override def symbol : String = "Bh" | |
} | |
class Hassium(isotope : Int = Atom.isotope.Hs, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 108 | |
override def name : String = "Hassium" | |
override def symbol : String = "Hs" | |
} | |
class Meitnerium(isotope : Int = Atom.isotope.Mt, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 109 | |
override def name : String = "Meitnerium" | |
override def symbol : String = "Mt" | |
} | |
class Darmstadtium(isotope : Int = Atom.isotope.Ds, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 110 | |
override def name : String = "Darmstadtium" | |
override def symbol : String = "Ds" | |
} | |
class Roentgenium(isotope : Int = Atom.isotope.Rg, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 111 | |
override def name : String = "Roentgenium" | |
override def symbol : String = "Rg" | |
} | |
class Copernicium(isotope : Int = Atom.isotope.Cn, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 112 | |
override def name : String = "Copernicium" | |
override def symbol : String = "Cn" | |
} | |
class Ununtrium(isotope : Int = Atom.isotope.Uut, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 113 | |
override def name : String = "Ununtrium" | |
override def symbol : String = "Uut" | |
} | |
class Flerovium(isotope : Int = Atom.isotope.Fl, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 114 | |
override def name : String = "Flerovium" | |
override def symbol : String = "Fl" | |
} | |
class Ununpentium(isotope : Int = Atom.isotope.Uup, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 115 | |
override def name : String = "Ununpentium" | |
override def symbol : String = "Uup" | |
} | |
class Livermorium(isotope : Int = Atom.isotope.Lv, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 116 | |
override def name : String = "Livermorium" | |
override def symbol : String = "Lv" | |
} | |
class Ununseptium(isotope : Int = Atom.isotope.Uus, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 117 | |
override def name : String = "Ununseptium" | |
override def symbol : String = "Uus" | |
} | |
class Ununoctium(isotope : Int = Atom.isotope.Uuo, charge : Int = 0) extends Atom(isotope, charge) { | |
override def number : Int = 118 | |
override def name : String = "Ununoctium" | |
override def symbol : String = "Uuo" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment