Beispiel #1
0
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)
Beispiel #2
0
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}")
Beispiel #4
0
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()
Beispiel #5
0
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()