def main(rowNum): conc = get_conc(rowNum) print(conc) if conc is None: return settings = settings_from_json(settings_file) atoms = bulk('Al', a=4.05, crystalstructure='fcc', cubic=True) * (N, N, N) atoms = attach_calculator(settings, atoms, get_eci()) cu = ['Cu'] * int(conc['Cu'] * len(atoms)) si = ['Si'] * int(conc['Si'] * len(atoms)) mg = ['Mg'] * int(conc['Mg'] * len(atoms)) al = ['Al'] * (len(atoms) - len(cu) - len(mg) - len(si)) symbols = al + mg + si + cu shuffle(symbols) atoms.symbols = symbols # Trigger a calculation atoms.get_potential_energy() temperatures = list(range(1000, 1, -50)) obs = LowestEnergyStructure(atoms) for T in temperatures: print(f"Temperature {T}") mc = Montecarlo(atoms, T) mc.attach(obs) mc.run(steps=20 * len(atoms)) db = connect(db_name) calc = SinglePointCalculator(obs.emin_atoms, energy=obs.lowest_energy) obs.emin_atoms.set_calculator(calc) db.write(obs.emin_atoms)
def test_mgsi100(): eci = {} with open("data/almgsix_normal_ce.json", 'r') as infile: data = json.load(infile) eci = data['eci'] settings = settings_from_json("data/settings_almgsiX_voldev.json") settings.basis_func_type = "binary_linear" atoms = bulk('Al', a=4.05, cubic=True) * (4, 4, 4) atoms = attach_calculator(settings, atoms, eci) for i in range(int(len(atoms) / 2)): atoms[i].symbol = 'Mg' atoms[i + int(len(atoms) / 2)].symbol = 'Si' mc = Montecarlo(atoms, 1000) temps = [1000, 800, 600, 500, 400, 300, 200, 100] for T in temps: mc.T = T mc.run(steps=100 * len(atoms)) fname = "data/" + atoms.get_chemical_formula() + "_mc_test.xyz" write(fname, atoms)
def main(): settings = settings_from_json("data/almgsicu_settings.json") cf = CorrFunction(settings) traj = TrajectoryReader("../../AlMgSiMC/data/surfacePure.traj") corrs = [] energies = [] sizes = [] for i in range(0, len(traj), 2): init = traj[i] final = traj[i + 1] corrs.append(cf.get_cf(wrap_and_sort_by_position(init))) sizes.append(len(init)) energies.append(final.get_potential_energy()) keys = sorted(corrs[0].keys()) with open(outfile, 'w') as out: header = ",".join(keys) header += ",E_DFT,size" out.write(header + "\n") for c, e, s in zip(corrs, energies, sizes): data = ",".join(str(c[k]) for k in keys) data += f",{e},{s}\n" out.write(data) print(f"Data written to {outfile}")
from clease.settings import settings_from_json from clease import NewStructures from ase.db import connect settings = settings_from_json("data/cupd_settings.json") dft_db = "data/cupd.db" def main(): initial_structs = [] final_structs = [] with connect(dft_db) as db: groups = set() for row in db.select(): groups.add(row.get('group', -1)) for g in groups: try: init = db.get([('group', '=', g), ('struct_type', '=', 'initial')]) final = db.get([('group', '=', g), ('struct_type', '=', 'relaxed')]) initial_structs.append(init.toatoms()) final_structs.append(final.toatoms()) except KeyError: pass # Sanity checks for i, f in zip(initial_structs, final_structs): i_formula = i.get_chemical_formula() f_formula = f.get_chemical_formula()
from clease.settings import settings_from_json from clease import NewStructures from ase.db import connect settings = settings_from_json("data/almgsicu_settings.json") dft_db = "data/almgsicu.db" def main(): initial_structs = [] final_structs = [] with connect(dft_db) as db: groups = set() for row in db.select(): groups.add(row.get('group', -1)) for g in groups: try: init = db.get([('group', '=', g), ('struct_type', '=', 'initial')]) final = db.get([('group', '=', g), ('struct_type', '=', 'relaxed')]) initial_structs.append(init.toatoms()) final_structs.append(final.toatoms()) except KeyError: pass # Sanity checks for i, f in zip(initial_structs, final_structs): i_formula = i.get_chemical_formula() f_formula = f.get_chemical_formula()