コード例 #1
0
ファイル: lv_scrape.py プロジェクト: alexsquires/lazy_vasping
def main():
    df = pd.read_csv('calc_data.csv')
    converged = df['converged'] == True
    few_steps = df['ionic_steps'] < 10

    to_scrape = list(df[converged & few_steps].iloc[:, 0])

    converged_calculations = []
    for converged_calculation in tqdm(to_scrape):
        vr = Vasprun(f'{converged_calculation}/vasprun.xml',
                     parse_potcar_file=False)

        entry = vr.get_computed_entry()
        entry.entry_id = converged_calculation
        entry_dict = entry.as_dict()

        if vr.parameters['LORBIT'] == 11:
            outcar = Outcar(f'{converged_calculation}/OUTCAR')
            entry_dict.update({'MAGMOMS': outcar.magnetization})

        converged_calculations.append(entry_dict)

    with open('calculation_data.json', 'w') as calc_data:
        json.dump(converged_calculations, calc_data)
コード例 #2
0
        entry for entry in all_entries if entry.composition.reduced_formula ==
        Composition(formula).reduced_formula
    ]
    relevant_entries = sorted(relevant_entries,
                              key=lambda e: e.energy_per_atom)
    return relevant_entries[0]


def get_comp_entries(formula, all_entries):
    relevant_entries = [
        entry for entry in all_entries if entry.composition.reduced_formula ==
        Composition(formula).reduced_formula
    ]
    return relevant_entries


def find_entry_index(formula, all_entries):
    entry_index = [
        all_entries.index(entry) for entry in all_entries
        if entry.composition.reduced_formula == Composition(
            formula).reduced_formula
    ]
    return entry_index


vasprun = Vasprun("vasprun.xml")
entry = vasprun.get_computed_entry(inc_structure=True)

compatibility = MaterialsProjectCompatibility()
entry = compatibility.process_entry(entry)
#entries = compatibility.process_entries([entry] + mp_entries)