""" Generate test_generator.json for tests generation Date: 2015/08/24 Author: Junhao Li Updated 2018/4/02 Daniel S. Karls, University of Minnesota """ import json from ase.data import chemical_symbols from ase.data import reference_states from random import randint # Read periodic table periodic_table = {} with open('periodic_table.txt') as f: for line in f.read().splitlines(): atomic_number, symbol, fullname, atomic_mass = line.split() periodic_table[symbol] = {'atomic_number': atomic_number, 'fullname': fullname, 'atomic_mass': atomic_mass} lattices = ["bcc", "diamond", "fcc", "hcp", "sc"] species = {} species['bcc'] = ["Li", "Na", "K", "V", "Cr", "Mn", "Fe", "Rb", "Nb", "Mo", "Cs", "Ba", "W", "Fr", "Ra"] species['diamond'] = ["Si", "Ge"] species['fcc'] = ["Ac", "Ag", "Al", "Au", "Ca", "Cu", "Es", "Ir", "Ni", "Pb", "Pd", "Pt", "Rh", "Sr", "Th", "Yb"] species['hcp'] = ["He", "Be", "Mg", "Sc", "Ti", "Co", "Zn", "Y", "Zr", "Tc", "Ru", "Cd", "Hf", "Re", "Os", "Tl"] species['sc'] = ["O", "F", "Po"] with open('test_generator.json', 'w') as f: for lattice in lattices: if lattice == 'hcp': latticeProperty = 'structure-hexagonal-crystal-npt' else: latticeProperty = 'structure-cubic-crystal-npt' for elem in species[lattice]: kimnum = '{:012d}'.format(randint(0, 10**12 - 1)) f.write(json.dumps({ 'elem': elem, 'elemnumber': periodic_table[elem]["atomic_number"], 'lattice': lattice, 'kimnum': kimnum, 'latticeProperty': latticeProperty, 'version': '000' }) + '\n')