Source code for vasp_step.potentials

# -*- coding: utf-8 -*-

"""The PAW potentials VASP uses by default, by set and element, and named
variants of a set (e.g. "hard"), available without the graphical interface.

The tables were in tk_energy.py, so a calculation set up without the dialog
had no potentials at all (an empty "potentials" parameter gave a KeyError).
"""

default_potentials = {
    "potpaw_PBE.64": {
        "H": "H",
        "He": "He",
        "Li": "Li_sv",
        "Be": "Be",
        "B": "B",
        "C": "C",
        "N": "N",
        "O": "O",
        "F": "F",
        "Ne": "Ne",
        "Na": "Na_pv",
        "Mg": "Mg",
        "Al": "Al",
        "Si": "Si",
        "P": "P",
        "S": "S",
        "Cl": "Cl",
        "Ar": "Ar",
        "K": "K_sv",
        "Ca": "Ca_sv",
        "Sc": "Sc_sv",
        "Ti": "Ti_sv",
        "V": "V_sv",
        "Cr": "Cr_pv",
        "Mn": "Mn_pv",
        "Fe": "Fe",
        "Co": "Co",
        "Ni": "Ni",
        "Cu": "Cu",
        "Zn": "Zn",
        "Ga": "Ga_d",
        "Ge": "Ge_d",
        "As": "As",
        "Se": "Se",
        "Br": "Br",
        "Kr": "Kr",
        "Rb": "Rb_sv",
        "Sr": "Sr_sv",
        "Y": "Y_sv",
        "Zr": "Zr_sv",
        "Nb": "Nb_sv",
        "Mo": "Mo_sv",
        "Tc": "Tc_pv",
        "Ru": "Ru_pv",
        "Rh": "Rh_pv",
        "Pd": "Pd",
        "Ag": "Ag",
        "Cd": "Cd",
        "In": "In_d",
        "Sn": "Sn_d",
        "Sb": "Sb",
        "Te": "Te",
        "I": "I",
        "Xe": "Xe",
        "Cs": "Cs_sv",
        "Ba": "Ba_sv",
        "La": "La",
        "Ce": "Ce",
        "Pr": "Pr_3",
        "Nd": "Nd_3",
        "Pm": "Pm_3",
        "Sm": "Sm_3",
        "Eu": "Eu_2",
        "Gd": "Gd_3",
        "Tb": "Tb_3",
        "Dy": "Dy_3",
        "Ho": "Ho_3",
        "Er": "Er_3",
        "Tm": "Tm_3",
        "Yb": "Yb_2",
        "Lu": "Lu_3",
        "Hf": "Hf_pv",
        "Ta": "Ta_pv",
        "W": "W_sv",
        "Re": "Re",
        "Os": "Os",
        "Ir": "Ir",
        "Pt": "Pt",
        "Au": "Au",
        "Hg": "Hg",
        "Tl": "Tl_d",
        "Pb": "Pb_d",
        "Bi": "Bi_d",
        "Po": "Po_d",
        "At": "At",
        "Rn": "Rn",
        "Fr": "Fr_sv",
        "Ra": "Ra_sv",
        "Ac": "Ac",
        "Th": "Th",
        "Pa": "Pa",
        "U": "U",
        "Np": "Np",
        "Pu": "Pu",
        "Am": "Am",
        "Cm": "Cm",
        "Cf": "Cf",
    },
    "potpaw_LDA.64": {
        "H": "H",
        "He": "He",
        "Li": "Li_sv",
        "Be": "Be",
        "B": "B",
        "C": "C",
        "N": "N",
        "O": "O",
        "F": "F",
        "Ne": "Ne",
        "Na": "Na_pv",
        "Mg": "Mg",
        "Al": "Al",
        "Si": "Si",
        "P": "P",
        "S": "S",
        "Cl": "Cl",
        "Ar": "Ar",
        "K": "K_sv",
        "Ca": "Ca_sv",
        "Sc": "Sc_sv",
        "Ti": "Ti_sv",
        "V": "V_sv",
        "Cr": "Cr_pv",
        "Mn": "Mn_pv",
        "Fe": "Fe",
        "Co": "Co",
        "Ni": "Ni",
        "Cu": "Cu",
        "Zn": "Zn",
        "Ga": "Ga_d",
        "Ge": "Ge_d",
        "As": "As",
        "Se": "Se",
        "Br": "Br",
        "Kr": "Kr",
        "Rb": "Rb_sv",
        "Sr": "Sr_sv",
        "Y": "Y_sv",
        "Zr": "Zr_sv",
        "Nb": "Nb_sv",
        "Mo": "Mo_sv",
        "Tc": "Tc_pv",
        "Ru": "Ru_pv",
        "Rh": "Rh_pv",
        "Pd": "Pd",
        "Ag": "Ag",
        "Cd": "Cd",
        "In": "In_d",
        "Sn": "Sn_d",
        "Sb": "Sb",
        "Te": "Te",
        "I": "I",
        "Xe": "Xe",
        "Cs": "Cs_sv",
        "Ba": "Ba_sv",
        "La": "La",
        "Ce": "Ce",
        "Pr": "Pr_3",
        "Nd": "Nd_3",
        "Pm": "Pm_3",
        "Sm": "Sm_3",
        "Eu": "Eu_2",
        "Gd": "Gd_3",
        "Tb": "Tb_3",
        "Dy": "Dy_3",
        "Ho": "Ho_3",
        "Er": "Er_3",
        "Tm": "Tm_3",
        "Yb": "Yb_2",
        "Lu": "Lu_3",
        "Hf": "Hf_pv",
        "Ta": "Ta_pv",
        "W": "W_sv",
        "Re": "Re",
        "Os": "Os",
        "Ir": "Ir",
        "Pt": "Pt",
        "Au": "Au",
        "Hg": "Hg",
        "Tl": "Tl_d",
        "Pb": "Pb_d",
        "Bi": "Bi_d",
        "Po": "Po_d",
        "At": "At",
        "Rn": "Rn",
        "Fr": "Fr_sv",
        "Ra": "Ra_sv",
        "Ac": "Ac",
        "Th": "Th",
        "Pa": "Pa",
        "U": "U",
        "Np": "Np",
        "Pu": "Pu",
        "Am": "Am",
        "Cm": "Cm",
        "Cf": "Cf",
    },
    "potpaw_PBE.64_GW": {
        "H": "H_GW",
        "He": "He_GW",
        "Li": "Li_sv_GW",
        "Be": "Be_sv_GW",
        "B": "B_GW",
        "C": "C_GW",
        "N": "N_GW",
        "O": "O_GW",
        "F": "F_GW",
        "Ne": "Ne_GW",
        "Na": "Na_sv_GW",
        "Mg": "Mg_sv_GW",
        "Al": "Al_GW",
        "Si": "Si_GW",
        "P": "P_GW",
        "S": "S_GW",
        "Cl": "Cl_GW",
        "Ar": "Ar_GW",
        "K": "K_sv_GW",
        "Ca": "Ca_sv_GW",
        "Sc": "Sc_sv_GW",
        "Ti": "Ti_sv_GW",
        "V": "V_sv_GW",
        "Cr": "Cr_sv_GW",
        "Mn": "Mn_sv_GW",
        "Fe": "Fe_sv_GW",
        "Co": "Co_sv_GW",
        "Ni": "Ni_sv_GW",
        "Cu": "Cu_sv_GW",
        "Zn": "Zn_sv_GW",
        "Ga": "Ga_d_GW",
        "Ge": "Ge_d_GW",
        "As": "As_GW",
        "Se": "Se_GW",
        "Br": "Br_GW",
        "Kr": "Kr_GW",
        "Rb": "Rb_sv_GW",
        "Sr": "Sr_sv_GW",
        "Y": "Y_sv_GW",
        "Zr": "Zr_sv_GW",
        "Nb": "Nb_sv_GW",
        "Mo": "Mo_sv_GW",
        "Tc": "Tc_sv_GW",
        "Ru": "Ru_sv_GW",
        "Rh": "Rh_sv_GW",
        "Pd": "Pd_sv_GW",
        "Ag": "Ag_sv_GW",
        "Cd": "Cd_sv_GW",
        "In": "In_d_GW",
        "Sn": "Sn_d_GW",
        "Sb": "Sb_d_GW",
        "Te": "Te_GW",
        "I": "I_GW",
        "Xe": "Xe_GW",
        "Cs": "Cs_sv_GW",
        "Ba": "Ba_sv_GW",
        "La": "La_GW",
        "Ce": "Ce_GW",
        "Hf": "Hf_sv_GW",
        "Ta": "Ta_sv_GW",
        "W": "W_sv_GW",
        "Re": "Re_sv_GW",
        "Os": "Os_sv_GW",
        "Ir": "Ir_sv_GW",
        "Pt": "Pt_sv_GW",
        "Au": "Au_sv_GW",
        "Hg": "Hg_sv_GW",
        "Tl": "Tl_d_GW",
        "Pb": "Pb_d_GW",
        "Bi": "Bi_d_GW",
        "Po": "Po_d_GW",
        "At": "At_d_GW",
        "Rn": "Rn_d_GW",
    },
    "potpaw_LDA.64_GW": {
        "H": "H_GW",
        "He": "He_GW",
        "Li": "Li_sv_GW",
        "Be": "Be_sv_GW",
        "B": "B_GW",
        "C": "C_GW",
        "N": "N_GW",
        "O": "O_GW",
        "F": "F_GW",
        "Ne": "Ne_GW",
        "Na": "Na_sv_GW",
        "Mg": "Mg_sv_GW",
        "Al": "Al_GW",
        "Si": "Si_GW",
        "P": "P_GW",
        "S": "S_GW",
        "Cl": "Cl_GW",
        "Ar": "Ar_GW",
        "K": "K_sv_GW",
        "Ca": "Ca_sv_GW",
        "Sc": "Sc_sv_GW",
        "Ti": "Ti_sv_GW",
        "V": "V_sv_GW",
        "Cr": "Cr_sv_GW",
        "Mn": "Mn_sv_GW",
        "Fe": "Fe_sv_GW",
        "Co": "Co_sv_GW",
        "Ni": "Ni_sv_GW",
        "Cu": "Cu_sv_GW",
        "Zn": "Zn_sv_GW",
        "Ga": "Ga_d_GW",
        "Ge": "Ge_d_GW",
        "As": "As_GW",
        "Se": "Se_GW",
        "Br": "Br_GW",
        "Kr": "Kr_GW",
        "Rb": "Rb_sv_GW",
        "Sr": "Sr_sv_GW",
        "Y": "Y_sv_GW",
        "Zr": "Zr_sv_GW",
        "Nb": "Nb_sv_GW",
        "Mo": "Mo_sv_GW",
        "Tc": "Tc_sv_GW",
        "Ru": "Ru_sv_GW",
        "Rh": "Rh_sv_GW",
        "Pd": "Pd_sv_GW",
        "Ag": "Ag_sv_GW",
        "Cd": "Cd_sv_GW",
        "In": "In_d_GW",
        "Sn": "Sn_d_GW",
        "Sb": "Sb_d_GW",
        "Te": "Te_GW",
        "I": "I_GW",
        "Xe": "Xe_GW",
        "Cs": "Cs_sv_GW",
        "Ba": "Ba_sv_GW",
        "La": "La_GW",
        "Ce": "Ce_GW",
        "Hf": "Hf_sv_GW",
        "Ta": "Ta_sv_GW",
        "W": "W_sv_GW",
        "Re": "Re_sv_GW",
        "Os": "Os_sv_GW",
        "Ir": "Ir_sv_GW",
        "Pt": "Pt_sv_GW",
        "Au": "Au_sv_GW",
        "Hg": "Hg_sv_GW",
        "Tl": "Tl_d_GW",
        "Pb": "Pb_d_GW",
        "Bi": "Bi_d_GW",
        "Po": "Po_d_GW",
        "At": "At_d_GW",
        "Rn": "Rn_d_GW",
    },
    "potpaw_PBE.54": {
        "H": "H",
        "He": "He",
        "Li": "Li_sv",
        "Be": "Be",
        "B": "B",
        "C": "C",
        "N": "N",
        "O": "O",
        "F": "F",
        "Ne": "Ne",
        "Na": "Na_pv",
        "Mg": "Mg",
        "Al": "Al",
        "Si": "Si",
        "P": "P",
        "S": "S",
        "Cl": "Cl",
        "Ar": "Ar",
        "K": "K_sv",
        "Ca": "Ca_sv",
        "Sc": "Sc_sv",
        "Ti": "Ti_sv",
        "V": "V_sv",
        "Cr": "Cr_pv",
        "Mn": "Mn_pv",
        "Fe": "Fe",
        "Co": "Co",
        "Ni": "Ni",
        "Cu": "Cu",
        "Zn": "Zn",
        "Ga": "Ga_d",
        "Ge": "Ge_d",
        "As": "As",
        "Se": "Se",
        "Br": "Br",
        "Kr": "Kr",
        "Rb": "Rb_sv",
        "Sr": "Sr_sv",
        "Y": "Y_sv",
        "Zr": "Zr_sv",
        "Nb": "Nb_sv",
        "Mo": "Mo_sv",
        "Tc": "Tc_pv",
        "Ru": "Ru_pv",
        "Rh": "Rh_pv",
        "Pd": "Pd",
        "Ag": "Ag",
        "Cd": "Cd",
        "In": "In_d",
        "Sn": "Sn_d",
        "Sb": "Sb",
        "Te": "Te",
        "I": "I",
        "Xe": "Xe",
        "Cs": "Cs_sv",
        "Ba": "Ba_sv",
        "La": "La",
        "Ce": "Ce",
        "Pr": "Pr_3",
        "Nd": "Nd_3",
        "Pm": "Pm_3",
        "Sm": "Sm_3",
        "Eu": "Eu_2",
        "Gd": "Gd_3",
        "Tb": "Tb_3",
        "Dy": "Dy_3",
        "Ho": "Ho_3",
        "Er": "Er_3",
        "Tm": "Tm_3",
        "Yb": "Yb_2",
        "Lu": "Lu_3",
        "Hf": "Hf_pv",
        "Ta": "Ta_pv",
        "W": "W_sv",
        "Re": "Re",
        "Os": "Os",
        "Ir": "Ir",
        "Pt": "Pt",
        "Au": "Au",
        "Hg": "Hg",
        "Tl": "Tl_d",
        "Pb": "Pb_d",
        "Bi": "Bi_d",
        "Po": "Po_d",
        "At": "At",
        "Rn": "Rn",
        "Fr": "Fr_sv",
        "Ra": "Ra_sv",
        "Ac": "Ac",
        "Th": "Th",
        "Pa": "Pa",
        "U": "U",
        "Np": "Np",
        "Pu": "Pu",
        "Am": "Am",
        "Cm": "Cm",
        "Cf": "Cf",
    },
    "potpaw_LDA.54": {
        "H": "H",
        "He": "He",
        "Li": "Li_sv",
        "Be": "Be",
        "B": "B",
        "C": "C",
        "N": "N",
        "O": "O",
        "F": "F",
        "Ne": "Ne",
        "Na": "Na_pv",
        "Mg": "Mg",
        "Al": "Al",
        "Si": "Si",
        "P": "P",
        "S": "S",
        "Cl": "Cl",
        "Ar": "Ar",
        "K": "K_sv",
        "Ca": "Ca_sv",
        "Sc": "Sc_sv",
        "Ti": "Ti_sv",
        "V": "V_sv",
        "Cr": "Cr_pv",
        "Mn": "Mn_pv",
        "Fe": "Fe",
        "Co": "Co",
        "Ni": "Ni",
        "Cu": "Cu",
        "Zn": "Zn",
        "Ga": "Ga_d",
        "Ge": "Ge_d",
        "As": "As",
        "Se": "Se",
        "Br": "Br",
        "Kr": "Kr",
        "Rb": "Rb_sv",
        "Sr": "Sr_sv",
        "Y": "Y_sv",
        "Zr": "Zr_sv",
        "Nb": "Nb_sv",
        "Mo": "Mo_sv",
        "Tc": "Tc_pv",
        "Ru": "Ru_pv",
        "Rh": "Rh_pv",
        "Pd": "Pd",
        "Ag": "Ag",
        "Cd": "Cd",
        "In": "In_d",
        "Sn": "Sn_d",
        "Sb": "Sb",
        "Te": "Te",
        "I": "I",
        "Xe": "Xe",
        "Cs": "Cs_sv",
        "Ba": "Ba_sv",
        "La": "La",
        "Ce": "Ce",
        "Hf": "Hf_pv",
        "Ta": "Ta_pv",
        "W": "W_sv",
        "Re": "Re",
        "Os": "Os",
        "Ir": "Ir",
        "Pt": "Pt",
        "Au": "Au",
        "Hg": "Hg",
        "Tl": "Tl_d",
        "Pb": "Pb_d",
        "Bi": "Bi_d",
        "Po": "Po_d",
        "At": "At",
        "Rn": "Rn",
        "Fr": "Fr_sv",
        "Ra": "Ra_sv",
        "Ac": "Ac",
        "Th": "Th",
        "Pa": "Pa",
        "U": "U",
        "Np": "Np",
        "Pu": "Pu",
        "Am": "Am",
        "Cm": "Cm",
    },
    "potpaw_PBE.54_GW": {
        "H": "H_GW",
        "He": "He_GW",
        "Li": "Li_sv_GW",
        "Be": "Be_sv_GW",
        "B": "B_GW",
        "C": "C_GW",
        "N": "N_GW",
        "O": "O_GW",
        "F": "F_GW",
        "Ne": "Ne_GW",
        "Na": "Na_sv_GW",
        "Mg": "Mg_sv_GW",
        "Al": "Al_GW",
        "Si": "Si_GW",
        "P": "P_GW",
        "S": "S_GW",
        "Cl": "Cl_GW",
        "Ar": "Ar_GW",
        "K": "K_sv_GW",
        "Ca": "Ca_sv_GW",
        "Sc": "Sc_sv_GW",
        "Ti": "Ti_sv_GW",
        "V": "V_sv_GW",
        "Cr": "Cr_sv_GW",
        "Mn": "Mn_sv_GW",
        "Fe": "Fe_sv_GW",
        "Co": "Co_sv_GW",
        "Ni": "Ni_sv_GW",
        "Cu": "Cu_sv_GW",
        "Zn": "Zn_sv_GW",
        "Ga": "Ga_d_GW",
        "Ge": "Ge_d_GW",
        "As": "As_GW",
        "Se": "Se_GW",
        "Br": "Br_GW",
        "Kr": "Kr_GW",
        "Rb": "Rb_sv_GW",
        "Sr": "Sr_sv_GW",
        "Y": "Y_sv_GW",
        "Zr": "Zr_sv_GW",
        "Nb": "Nb_sv_GW",
        "Mo": "Mo_sv_GW",
        "Tc": "Tc_sv_GW",
        "Ru": "Ru_sv_GW",
        "Rh": "Rh_sv_GW",
        "Pd": "Pd_sv_GW",
        "Ag": "Ag_sv_GW",
        "Cd": "Cd_sv_GW",
        "In": "In_d_GW",
        "Sn": "Sn_d_GW",
        "Sb": "Sb_d_GW",
        "Te": "Te_GW",
        "I": "I_GW",
        "Xe": "Xe_GW",
        "Cs": "Cs_sv_GW",
        "Ba": "Ba_sv_GW",
        "La": "La_GW",
        "Ce": "Ce_GW",
        "Hf": "Hf_sv_GW",
        "Ta": "Ta_sv_GW",
        "W": "W_sv_GW",
        "Re": "Re_sv_GW",
        "Os": "Os_sv_GW",
        "Ir": "Ir_sv_GW",
        "Pt": "Pt_sv_GW",
        "Au": "Au_sv_GW",
        "Hg": "Hg_sv_GW",
        "Tl": "Tl_d_GW",
        "Pb": "Pb_d_GW",
        "Bi": "Bi_d_GW",
        "Po": "Po_d_GW",
        "At": "At_d_GW",
        "Rn": "Rn_d_GW",
    },
    "potpaw_LDA.54_GW": {
        "H": "H_GW",
        "He": "He_GW",
        "Li": "Li_sv_GW",
        "Be": "Be_sv_GW",
        "B": "B_GW",
        "C": "C_GW",
        "N": "N_GW",
        "O": "O_GW",
        "F": "F_GW",
        "Ne": "Ne_GW",
        "Na": "Na_sv_GW",
        "Mg": "Mg_sv_GW",
        "Al": "Al_GW",
        "Si": "Si_GW",
        "P": "P_GW",
        "S": "S_GW",
        "Cl": "Cl_GW",
        "Ar": "Ar_GW",
        "K": "K_sv_GW",
        "Ca": "Ca_sv_GW",
        "Sc": "Sc_sv_GW",
        "Ti": "Ti_sv_GW",
        "V": "V_sv_GW",
        "Cr": "Cr_sv_GW",
        "Mn": "Mn_sv_GW",
        "Fe": "Fe_sv_GW",
        "Co": "Co_sv_GW",
        "Ni": "Ni_sv_GW",
        "Cu": "Cu_sv_GW",
        "Zn": "Zn_sv_GW",
        "Ga": "Ga_d_GW",
        "Ge": "Ge_d_GW",
        "As": "As_GW",
        "Se": "Se_GW",
        "Br": "Br_GW",
        "Kr": "Kr_GW",
        "Rb": "Rb_sv_GW",
        "Sr": "Sr_sv_GW",
        "Y": "Y_sv_GW",
        "Zr": "Zr_sv_GW",
        "Nb": "Nb_sv_GW",
        "Mo": "Mo_sv_GW",
        "Tc": "Tc_sv_GW",
        "Ru": "Ru_sv_GW",
        "Rh": "Rh_sv_GW",
        "Pd": "Pd_sv_GW",
        "Ag": "Ag_sv_GW",
        "Cd": "Cd_sv_GW",
        "In": "In_d_GW",
        "Sn": "Sn_d_GW",
        "Sb": "Sb_d_GW",
        "Te": "Te_GW",
        "I": "I_GW",
        "Xe": "Xe_GW",
        "Cs": "Cs_sv_GW",
        "Ba": "Ba_sv_GW",
        "La": "La_GW",
        "Ce": "Ce_GW",
        "Hf": "Hf_sv_GW",
        "Ta": "Ta_sv_GW",
        "W": "W_sv_GW",
        "Re": "Re_sv_GW",
        "Os": "Os_sv_GW",
        "Ir": "Ir_sv_GW",
        "Pt": "Pt_sv_GW",
        "Au": "Au_sv_GW",
        "Hg": "Hg_sv_GW",
        "Tl": "Tl_d_GW",
        "Pb": "Pb_d_GW",
        "Bi": "Bi_d_GW",
        "Po": "Po_d_GW",
        "At": "At_d_GW",
        "Rn": "Rn_d_GW",
    },
}

#: Named variants of a set: element -> potential, overriding the defaults.
#: "hard" uses the hard PAW potentials where VASP has them (the MBE water
#: protocol uses O_h and H_h at 1200 eV); other elements keep their default.
variants = {
    "hard": {
        "H": "H_h",
        "B": "B_h",
        "C": "C_h",
        "N": "N_h",
        "O": "O_h",
        "F": "F_h",
        "P": "P_h",
        "S": "S_h",
        "Cl": "Cl_h",
    },
}


[docs] def potentials_for(potential_set, elements, chosen=None, variant=None): """The potential of each element: the one chosen, else the variant's, else the set's default. Parameters ---------- potential_set : str e.g. "potpaw_PBE.64". elements : [str] Element symbols. chosen : {str: str} or None Potentials chosen explicitly, by element. variant : str or None A named variant, e.g. "hard". Returns ------- {str: str} """ chosen = chosen or {} overlay = variants[variant] if variant else {} defaults = default_potentials.get(potential_set, {}) result = {} for element in elements: if element in chosen: result[element] = chosen[element] elif element in overlay: result[element] = overlay[element] elif element in defaults: result[element] = defaults[element] else: raise ValueError( f"No potential for {element} in the set {potential_set}: choose " "one explicitly." ) return result