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))
'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')