name=name,
                      username=username,
                      password=password)

#IDS = sorted(launchpad.get_fw_ids(query={"state": 'COMPLETED'}))
IDS = [i for i in range(29700, 30700)]
rs = 0

for ID in IDS:
    print('Processing: {0}'.format(ID))
    launch = launchpad.get_fw_by_id(ID)
    atoms = encode_to_atoms(launch.spec['_tasks'][0]['args'][0])[0]
    if len(atoms) > 10 and len(atoms.constraints[0].get_indices()) < 8:
        print(len(atoms))
        print(atoms.constraints[0].get_indices())
        constraint = FixAtoms(indices=[i for i in range(8)])
        atoms.set_constraint(constraint)
        rs += 1
        print(atoms.constraints[0].get_indices())
        atoms._calc = None
        encoding = atoms_to_encode(atoms)
        print(encoding)
        launchpad.update_spec([ID],
                              spec_document={'_tasks.0.args.0': encoding})
        launchpad.rerun_fw(ID)

if os.path.exists('input.traj'):
    os.remove('input.traj')

print('Total number of resubmitted jobs: {}'.format(rs))
Exemplo n.º 2
0
               'spinpol': False,
               'mixing_beta': 0.2,
               'electron_maxstep': 2000}


    formula = set(atoms.get_chemical_symbols())
    if np.array([a in pol_metal for a in formula]).any():
        atoms.set_initial_magnetic_moments([3 if atom.symbol == 'Fe'
                                       else 2 if atom.symbol == 'Co'
                                       else 1 if atom.symbol == 'Ni'
                                       else 3 if atom.symbol == 'Mn'
                                       else 0 for atom in atoms])
        atoms.info['calculator_parameters'].update({'spinpol': True,
                                                    'mixing_beta': 0.1,
                                                   'electron_maxstep': 4000})
    print(atoms.info)
    atoms._calc = None

    encoding = atoms_to_encode(atoms)
    print('Submitting job ....')
    launchpad.rerun_fw(i)
    launchpad.update_spec([i],
                spec_document={'_tasks.0.args.0': encoding,
                '_tasks.0.func': 'catkit.flow.fwio.encode_to_atoms',
                '_tasks.1.args': ['decaf.Espresso'],
                '_tasks.1.func':
                'catkit.flow.fwase.get_potential_energy'})

if os.path.exists('input.traj'):
    os.remove('input.traj')