def validate_upf_family(pseudo_family, all_species): """ Validate if the pseudo_family is correct. """ elements = all_species UpfData = DataFactory('upf') valid_families = UpfData.get_upf_groups(filter_elements=elements) valid_families_names = [family.name for family in valid_families] if pseudo_family not in valid_families_names: raise ValueError("Invalid pseudo family '{}'. " "Valid family names are: {}".format( pseudo_family, ",".join(valid_families_names)))
alat, ], ] # BaTiO3 cubic structure s = StructureData(cell=cell) s.append_atom(position=(0., 0., 0.), symbols=['Ba']) s.append_atom(position=(alat / 2., alat / 2., alat / 2.), symbols=['Ti']) s.append_atom(position=(alat / 2., alat / 2., 0.), symbols=['O']) s.append_atom(position=(alat / 2., 0., alat / 2.), symbols=['O']) s.append_atom(position=(0., alat / 2., alat / 2.), symbols=['O']) elements = list(s.get_symbols_set()) if auto_pseudos: valid_pseudo_groups = UpfData.get_upf_groups(filter_elements=elements) try: pseudo_family = sys.argv[3] except IndexError: print >> sys.stderr, "Error, auto_pseudos set to True. You therefore need to pass as second parameter" print >> sys.stderr, "the pseudo family name." print >> sys.stderr, "Valid UPF families are:" print >> sys.stderr, "\n".join("* {}".format(i.name) for i in valid_pseudo_groups) sys.exit(1) try: UpfData.get_upf_group(pseudo_family) except NotExistent: print >> sys.stderr, "auto_pseudos is set to True and pseudo_family='{}',".format(