def gen_iupac_ordering(): periodic_table = loadfn("periodic_table.json") order = [ ([18], range(6, 0, -1)), # noble gasses ([1], range(7, 1, -1)), # alkali metals ([2], range(7, 1, -1)), # alkali earth metals (range(17, 2, -1), [9]), # actinides (range(17, 2, -1), [8]), # lanthanides ([3], (5, 4)), # Y, Sc ([4], (6, 5, 4)), # Hf -> Ti ([5], (6, 5, 4)), # Ta -> V ([6], (6, 5, 4)), # W -> Cr ([7], (6, 5, 4)), # Re -> Mn ([8], (6, 5, 4)), # Os -> Fe ([9], (6, 5, 4)), # Ir -> Co ([10], (6, 5, 4)), # Pt -> Ni ([11], (6, 5, 4)), # Au -> Cu ([12], (6, 5, 4)), # Hg -> Zn ([13], range(6, 1, -1)), # Tl -> B ([14], range(6, 1, -1)), # Pb -> C ([15], range(6, 1, -1)), # Bi -> N ([1], [1]), # Hydrogen ([16], range(6, 1, -1)), # Po -> O ([17], range(6, 1, -1)), ] # At -> F order = sum([list(product(x, y)) for x, y in order], []) iupac_ordering_dict = dict( zip([Element.from_row_and_group(row, group) for group, row in order], range(len(order)))) # first clean periodic table of any IUPAC ordering for el in periodic_table: periodic_table[el].pop("IUPAC ordering", None) # now add iupac ordering for el in periodic_table: if "IUPAC ordering" in periodic_table[el]: # sanity check that we don't cover the same element twice raise KeyError("IUPAC ordering already exists for {}".format(el)) periodic_table[el]["IUPAC ordering"] = iupac_ordering_dict[get_el_sp( el)]
def gen_iupac_ordering(): periodic_table = loadfn("periodic_table.json") order = [([18], range(6, 0, -1)), # noble gasses ([1], range(7, 1, -1)), # alkali metals ([2], range(7, 1, -1)), # alkali earth metals (range(17, 2, -1), [9]), # actinides (range(17, 2, -1), [8]), # lanthanides ([3], (5, 4)), # Y, Sc ([4], (6, 5, 4)), # Hf -> Ti ([5], (6, 5, 4)), # Ta -> V ([6], (6, 5, 4)), # W -> Cr ([7], (6, 5, 4)), # Re -> Mn ([8], (6, 5, 4)), # Os -> Fe ([9], (6, 5, 4)), # Ir -> Co ([10], (6, 5, 4)), # Pt -> Ni ([11], (6, 5, 4)), # Au -> Cu ([12], (6, 5, 4)), # Hg -> Zn ([13], range(6, 1, -1)), # Tl -> B ([14], range(6, 1, -1)), # Pb -> C ([15], range(6, 1, -1)), # Bi -> N ([1], [1]), # Hydrogen ([16], range(6, 1, -1)), # Po -> O ([17], range(6, 1, -1))] # At -> F order = sum([list(product(x, y)) for x, y in order], []) iupac_ordering_dict = dict(zip( [Element.from_row_and_group(row, group) for group, row in order], range(len(order)))) # first clean periodic table of any IUPAC ordering for el in periodic_table: periodic_table[el].pop('IUPAC ordering', None) # now add iupac ordering for el in periodic_table: if 'IUPAC ordering' in periodic_table[el]: # sanity check that we don't cover the same element twice raise KeyError("IUPAC ordering already exists for {}".format(el)) periodic_table[el]['IUPAC ordering'] = iupac_ordering_dict[get_el_sp(el)]
print(fe.thermal_conductivity) # html print(fe.boiling_point) # html print(fe.melting_point) # html print(fe.critical_temperature) # html print(fe.superconduction_temperature) # html print(fe.liquid_range) # html print(fe.bulk_modulus) # html print(fe.youngs_modulus) # html print(fe.brinell_hardness) # html print(fe.rigidity_modulus) # html print(fe.mineral_hardness) # html print(fe.vickers_hardness) # html print(fe.density_of_solid) # html print(fe.coefficient_of_linear_thermal_expansion) # html print(fe.average_ionic_radius) print(fe.ionic_radii) print(fe.is_valid_symbol("Fe")) # dir print(fe.from_Z(26)) # dir print(fe.as_dict()) # dir print(fe.from_dict(fe.as_dict())) # dir print(fe.from_row_and_group(4, 8)) # dir print(fe.ground_state_term_symbol) # dir print(fe.icsd_oxidation_states) # dir print(fe.name) # dir print(fe.print_periodic_table()) # dir print(fe.term_symbols) # dir print(fe.valence) # dir print(fe.value) # dir print(fe.boiling_point) print(float(fe.boiling_point.to("")))