从MP数据库提取结构

  1. 参数设置
  • 得到符合MP数据库的计算参数
  • from mp_api.client import MPRester
    from pymatgen.core import composition
    from pymatgen.io.vasp.inputs import Poscar
    mpr=MPRester("5BhZJctjosrFpkuE6qErpu85dT4gw4VZ")
    mp_entries = mpr.get_entries_in_chemsys(elements=["Na","Mo","Si","O"],additional_criteria={"thermo_types": ["GGA_GGA+U"]}) 
    count = 0 
    for entries in mp_entries:
        count +=1
        struc = entries.structure
        vasp_str = Poscar(struc)
        vasp_str.write_file('%d.vasp'%count)
    #print(mp_entries[0].structure)
    

    参数设置

    https://github.com/materialsproject/pymatgen/blob/v2025.5.28/src/pymatgen/io/vasp/MPRelaxSet.yaml

    得到符合MP数据库的计算参数

    from pymatgen.core import Structure
    from pymatgen.io.vasp.sets import MPStaticSet
    import os
    
    # 读取 POSCAR 文件
    structure = Structure.from_file("POSCAR")
    
    # 创建 MPStaticSet(适用于自洽计算)
    # 默认使用 Materials Project 的 PBE 函数和标准参数
    vasp_input_set = MPStaticSet(structure)
    
    # 指定输出目录
    output_dir = "static_vasp_inputs"
    os.makedirs(output_dir, exist_ok=True)
    
    # 写入输入文件
    vasp_input_set.write_input(output_dir)
    
    print(f"已生成用于自洽计算的 VASP 输入文件,路径: {output_dir}/")
    

    转载请注明来源 有问题可通过github提交issue