diff --git a/emmet-core/emmet/core/vasp/calc_types/__init__.py b/emmet-core/emmet/core/vasp/calc_types/__init__.py index 7603786d66..9acca8a7f9 100644 --- a/emmet-core/emmet/core/vasp/calc_types/__init__.py +++ b/emmet-core/emmet/core/vasp/calc_types/__init__.py @@ -1,4 +1,4 @@ -from pathlib import Path +"""Module defining vasp calculation types.""" try: import emmet.core.vasp.calc_types.enums diff --git a/emmet-core/emmet/core/vasp/calc_types/enums.py b/emmet-core/emmet/core/vasp/calc_types/enums.py index 9a67393837..157b41743d 100644 --- a/emmet-core/emmet/core/vasp/calc_types/enums.py +++ b/emmet-core/emmet/core/vasp/calc_types/enums.py @@ -1,18 +1,18 @@ """ -Autogenerated Enums for VASP RunType, TaskType, and CalcType -Do not edit this by hand. Edit generate.py or run_types.yaml instead +Autogenerated Enums for VASP RunType, TaskType, and CalcType. + +Do not edit this by hand. Edit generate.py or run_types.yaml instead. """ from emmet.core.utils import ValueEnum class RunType(ValueEnum): - """VASP calculation run types""" + """VASP calculation run types.""" AM05 = "AM05" GGA = "GGA" PBE = "PBE" PBESol = "PBESol" - PBEsol = "PBEsol" RevPBE_PADE = "RevPBE+PADE" optB86b = "optB86b" optB88 = "optB88" @@ -22,7 +22,7 @@ class RunType(ValueEnum): HF = "HF" HSE03 = "HSE03" HSE06 = "HSE06" - PB0 = "PB0" + PBE0 = "PBE0" M06L = "M06L" MBJL = "MBJL" MS0 = "MS0" @@ -44,7 +44,6 @@ class RunType(ValueEnum): GGA_U = "GGA+U" PBE_U = "PBE+U" PBESol_U = "PBESol+U" - PBEsol_U = "PBEsol+U" RevPBE_PADE_U = "RevPBE+PADE+U" optB86b_U = "optB86b+U" optB88_U = "optB88+U" @@ -54,7 +53,7 @@ class RunType(ValueEnum): HF_U = "HF+U" HSE03_U = "HSE03+U" HSE06_U = "HSE06+U" - PB0_U = "PB0+U" + PBE0_U = "PBE0+U" M06L_U = "M06L+U" MBJL_U = "MBJL+U" MS0_U = "MS0+U" @@ -77,7 +76,7 @@ class RunType(ValueEnum): class TaskType(ValueEnum): - """VASP calculation task types""" + """VASP calculation task types.""" NSCF_Line = "NSCF Line" NSCF_Uniform = "NSCF Uniform" @@ -89,12 +88,13 @@ class TaskType(ValueEnum): Static = "Static" Structure_Optimization = "Structure Optimization" Deformation = "Deformation" - Unrecognized = "Unrecognized" Optic = "Optic" + Molecular_Dynamics = "Molecular Dynamics" + Unrecognized = "Unrecognized" class CalcType(ValueEnum): - """VASP calculation types""" + """VASP calculation types.""" AM05_NSCF_Line = "AM05 NSCF Line" AM05_NSCF_Uniform = "AM05 NSCF Uniform" @@ -106,6 +106,8 @@ class CalcType(ValueEnum): AM05_Static = "AM05 Static" AM05_Structure_Optimization = "AM05 Structure Optimization" AM05_Deformation = "AM05 Deformation" + AM05_Optic = "AM05 Optic" + AM05_Molecular_Dynamics = "AM05 Molecular Dynamics" AM05_Unrecognized = "AM05 Unrecognized" GGA_NSCF_Line = "GGA NSCF Line" GGA_NSCF_Uniform = "GGA NSCF Uniform" @@ -117,6 +119,8 @@ class CalcType(ValueEnum): GGA_Static = "GGA Static" GGA_Structure_Optimization = "GGA Structure Optimization" GGA_Deformation = "GGA Deformation" + GGA_Optic = "GGA Optic" + GGA_Molecular_Dynamics = "GGA Molecular Dynamics" GGA_Unrecognized = "GGA Unrecognized" PBE_NSCF_Line = "PBE NSCF Line" PBE_NSCF_Uniform = "PBE NSCF Uniform" @@ -128,6 +132,8 @@ class CalcType(ValueEnum): PBE_Static = "PBE Static" PBE_Structure_Optimization = "PBE Structure Optimization" PBE_Deformation = "PBE Deformation" + PBE_Optic = "PBE Optic" + PBE_Molecular_Dynamics = "PBE Molecular Dynamics" PBE_Unrecognized = "PBE Unrecognized" PBESol_NSCF_Line = "PBESol NSCF Line" PBESol_NSCF_Uniform = "PBESol NSCF Uniform" @@ -139,6 +145,8 @@ class CalcType(ValueEnum): PBESol_Static = "PBESol Static" PBESol_Structure_Optimization = "PBESol Structure Optimization" PBESol_Deformation = "PBESol Deformation" + PBESol_Optic = "PBESol Optic" + PBESol_Molecular_Dynamics = "PBESol Molecular Dynamics" PBESol_Unrecognized = "PBESol Unrecognized" RevPBE_PADE_NSCF_Line = "RevPBE+PADE NSCF Line" RevPBE_PADE_NSCF_Uniform = "RevPBE+PADE NSCF Uniform" @@ -150,6 +158,8 @@ class CalcType(ValueEnum): RevPBE_PADE_Static = "RevPBE+PADE Static" RevPBE_PADE_Structure_Optimization = "RevPBE+PADE Structure Optimization" RevPBE_PADE_Deformation = "RevPBE+PADE Deformation" + RevPBE_PADE_Optic = "RevPBE+PADE Optic" + RevPBE_PADE_Molecular_Dynamics = "RevPBE+PADE Molecular Dynamics" RevPBE_PADE_Unrecognized = "RevPBE+PADE Unrecognized" optB86b_NSCF_Line = "optB86b NSCF Line" optB86b_NSCF_Uniform = "optB86b NSCF Uniform" @@ -161,6 +171,8 @@ class CalcType(ValueEnum): optB86b_Static = "optB86b Static" optB86b_Structure_Optimization = "optB86b Structure Optimization" optB86b_Deformation = "optB86b Deformation" + optB86b_Optic = "optB86b Optic" + optB86b_Molecular_Dynamics = "optB86b Molecular Dynamics" optB86b_Unrecognized = "optB86b Unrecognized" optB88_NSCF_Line = "optB88 NSCF Line" optB88_NSCF_Uniform = "optB88 NSCF Uniform" @@ -172,6 +184,8 @@ class CalcType(ValueEnum): optB88_Static = "optB88 Static" optB88_Structure_Optimization = "optB88 Structure Optimization" optB88_Deformation = "optB88 Deformation" + optB88_Optic = "optB88 Optic" + optB88_Molecular_Dynamics = "optB88 Molecular Dynamics" optB88_Unrecognized = "optB88 Unrecognized" optPBE_NSCF_Line = "optPBE NSCF Line" optPBE_NSCF_Uniform = "optPBE NSCF Uniform" @@ -183,6 +197,8 @@ class CalcType(ValueEnum): optPBE_Static = "optPBE Static" optPBE_Structure_Optimization = "optPBE Structure Optimization" optPBE_Deformation = "optPBE Deformation" + optPBE_Optic = "optPBE Optic" + optPBE_Molecular_Dynamics = "optPBE Molecular Dynamics" optPBE_Unrecognized = "optPBE Unrecognized" revPBE_NSCF_Line = "revPBE NSCF Line" revPBE_NSCF_Uniform = "revPBE NSCF Uniform" @@ -194,6 +210,8 @@ class CalcType(ValueEnum): revPBE_Static = "revPBE Static" revPBE_Structure_Optimization = "revPBE Structure Optimization" revPBE_Deformation = "revPBE Deformation" + revPBE_Optic = "revPBE Optic" + revPBE_Molecular_Dynamics = "revPBE Molecular Dynamics" revPBE_Unrecognized = "revPBE Unrecognized" B3LYP_NSCF_Line = "B3LYP NSCF Line" B3LYP_NSCF_Uniform = "B3LYP NSCF Uniform" @@ -205,6 +223,8 @@ class CalcType(ValueEnum): B3LYP_Static = "B3LYP Static" B3LYP_Structure_Optimization = "B3LYP Structure Optimization" B3LYP_Deformation = "B3LYP Deformation" + B3LYP_Optic = "B3LYP Optic" + B3LYP_Molecular_Dynamics = "B3LYP Molecular Dynamics" B3LYP_Unrecognized = "B3LYP Unrecognized" HF_NSCF_Line = "HF NSCF Line" HF_NSCF_Uniform = "HF NSCF Uniform" @@ -216,6 +236,8 @@ class CalcType(ValueEnum): HF_Static = "HF Static" HF_Structure_Optimization = "HF Structure Optimization" HF_Deformation = "HF Deformation" + HF_Optic = "HF Optic" + HF_Molecular_Dynamics = "HF Molecular Dynamics" HF_Unrecognized = "HF Unrecognized" HSE03_NSCF_Line = "HSE03 NSCF Line" HSE03_NSCF_Uniform = "HSE03 NSCF Uniform" @@ -227,6 +249,8 @@ class CalcType(ValueEnum): HSE03_Static = "HSE03 Static" HSE03_Structure_Optimization = "HSE03 Structure Optimization" HSE03_Deformation = "HSE03 Deformation" + HSE03_Optic = "HSE03 Optic" + HSE03_Molecular_Dynamics = "HSE03 Molecular Dynamics" HSE03_Unrecognized = "HSE03 Unrecognized" HSE06_NSCF_Line = "HSE06 NSCF Line" HSE06_NSCF_Uniform = "HSE06 NSCF Uniform" @@ -238,18 +262,22 @@ class CalcType(ValueEnum): HSE06_Static = "HSE06 Static" HSE06_Structure_Optimization = "HSE06 Structure Optimization" HSE06_Deformation = "HSE06 Deformation" + HSE06_Optic = "HSE06 Optic" + HSE06_Molecular_Dynamics = "HSE06 Molecular Dynamics" HSE06_Unrecognized = "HSE06 Unrecognized" - PB0_NSCF_Line = "PB0 NSCF Line" - PB0_NSCF_Uniform = "PB0 NSCF Uniform" - PB0_Dielectric = "PB0 Dielectric" - PB0_DFPT = "PB0 DFPT" - PB0_DFPT_Dielectric = "PB0 DFPT Dielectric" - PB0_NMR_Nuclear_Shielding = "PB0 NMR Nuclear Shielding" - PB0_NMR_Electric_Field_Gradient = "PB0 NMR Electric Field Gradient" - PB0_Static = "PB0 Static" - PB0_Structure_Optimization = "PB0 Structure Optimization" - PB0_Deformation = "PB0 Deformation" - PB0_Unrecognized = "PB0 Unrecognized" + PBE0_NSCF_Line = "PBE0 NSCF Line" + PBE0_NSCF_Uniform = "PBE0 NSCF Uniform" + PBE0_Dielectric = "PBE0 Dielectric" + PBE0_DFPT = "PBE0 DFPT" + PBE0_DFPT_Dielectric = "PBE0 DFPT Dielectric" + PBE0_NMR_Nuclear_Shielding = "PBE0 NMR Nuclear Shielding" + PBE0_NMR_Electric_Field_Gradient = "PBE0 NMR Electric Field Gradient" + PBE0_Static = "PBE0 Static" + PBE0_Structure_Optimization = "PBE0 Structure Optimization" + PBE0_Deformation = "PBE0 Deformation" + PBE0_Optic = "PBE0 Optic" + PBE0_Molecular_Dynamics = "PBE0 Molecular Dynamics" + PBE0_Unrecognized = "PBE0 Unrecognized" M06L_NSCF_Line = "M06L NSCF Line" M06L_NSCF_Uniform = "M06L NSCF Uniform" M06L_Dielectric = "M06L Dielectric" @@ -260,6 +288,8 @@ class CalcType(ValueEnum): M06L_Static = "M06L Static" M06L_Structure_Optimization = "M06L Structure Optimization" M06L_Deformation = "M06L Deformation" + M06L_Optic = "M06L Optic" + M06L_Molecular_Dynamics = "M06L Molecular Dynamics" M06L_Unrecognized = "M06L Unrecognized" MBJL_NSCF_Line = "MBJL NSCF Line" MBJL_NSCF_Uniform = "MBJL NSCF Uniform" @@ -271,6 +301,8 @@ class CalcType(ValueEnum): MBJL_Static = "MBJL Static" MBJL_Structure_Optimization = "MBJL Structure Optimization" MBJL_Deformation = "MBJL Deformation" + MBJL_Optic = "MBJL Optic" + MBJL_Molecular_Dynamics = "MBJL Molecular Dynamics" MBJL_Unrecognized = "MBJL Unrecognized" MS0_NSCF_Line = "MS0 NSCF Line" MS0_NSCF_Uniform = "MS0 NSCF Uniform" @@ -282,6 +314,8 @@ class CalcType(ValueEnum): MS0_Static = "MS0 Static" MS0_Structure_Optimization = "MS0 Structure Optimization" MS0_Deformation = "MS0 Deformation" + MS0_Optic = "MS0 Optic" + MS0_Molecular_Dynamics = "MS0 Molecular Dynamics" MS0_Unrecognized = "MS0 Unrecognized" MS1_NSCF_Line = "MS1 NSCF Line" MS1_NSCF_Uniform = "MS1 NSCF Uniform" @@ -293,6 +327,8 @@ class CalcType(ValueEnum): MS1_Static = "MS1 Static" MS1_Structure_Optimization = "MS1 Structure Optimization" MS1_Deformation = "MS1 Deformation" + MS1_Optic = "MS1 Optic" + MS1_Molecular_Dynamics = "MS1 Molecular Dynamics" MS1_Unrecognized = "MS1 Unrecognized" MS2_NSCF_Line = "MS2 NSCF Line" MS2_NSCF_Uniform = "MS2 NSCF Uniform" @@ -304,6 +340,8 @@ class CalcType(ValueEnum): MS2_Static = "MS2 Static" MS2_Structure_Optimization = "MS2 Structure Optimization" MS2_Deformation = "MS2 Deformation" + MS2_Optic = "MS2 Optic" + MS2_Molecular_Dynamics = "MS2 Molecular Dynamics" MS2_Unrecognized = "MS2 Unrecognized" RTPSS_NSCF_Line = "RTPSS NSCF Line" RTPSS_NSCF_Uniform = "RTPSS NSCF Uniform" @@ -315,6 +353,8 @@ class CalcType(ValueEnum): RTPSS_Static = "RTPSS Static" RTPSS_Structure_Optimization = "RTPSS Structure Optimization" RTPSS_Deformation = "RTPSS Deformation" + RTPSS_Optic = "RTPSS Optic" + RTPSS_Molecular_Dynamics = "RTPSS Molecular Dynamics" RTPSS_Unrecognized = "RTPSS Unrecognized" SCAN_NSCF_Line = "SCAN NSCF Line" SCAN_NSCF_Uniform = "SCAN NSCF Uniform" @@ -326,6 +366,8 @@ class CalcType(ValueEnum): SCAN_Static = "SCAN Static" SCAN_Structure_Optimization = "SCAN Structure Optimization" SCAN_Deformation = "SCAN Deformation" + SCAN_Optic = "SCAN Optic" + SCAN_Molecular_Dynamics = "SCAN Molecular Dynamics" SCAN_Unrecognized = "SCAN Unrecognized" R2SCAN_NSCF_Line = "R2SCAN NSCF Line" R2SCAN_NSCF_Uniform = "R2SCAN NSCF Uniform" @@ -337,6 +379,8 @@ class CalcType(ValueEnum): R2SCAN_Static = "R2SCAN Static" R2SCAN_Structure_Optimization = "R2SCAN Structure Optimization" R2SCAN_Deformation = "R2SCAN Deformation" + R2SCAN_Optic = "R2SCAN Optic" + R2SCAN_Molecular_Dynamics = "R2SCAN Molecular Dynamics" R2SCAN_Unrecognized = "R2SCAN Unrecognized" TPSS_NSCF_Line = "TPSS NSCF Line" TPSS_NSCF_Uniform = "TPSS NSCF Uniform" @@ -348,6 +392,8 @@ class CalcType(ValueEnum): TPSS_Static = "TPSS Static" TPSS_Structure_Optimization = "TPSS Structure Optimization" TPSS_Deformation = "TPSS Deformation" + TPSS_Optic = "TPSS Optic" + TPSS_Molecular_Dynamics = "TPSS Molecular Dynamics" TPSS_Unrecognized = "TPSS Unrecognized" R2SCAN_rVV10_NSCF_Line = "R2SCAN-rVV10 NSCF Line" R2SCAN_rVV10_NSCF_Uniform = "R2SCAN-rVV10 NSCF Uniform" @@ -361,6 +407,8 @@ class CalcType(ValueEnum): R2SCAN_rVV10_Static = "R2SCAN-rVV10 Static" R2SCAN_rVV10_Structure_Optimization = "R2SCAN-rVV10 Structure Optimization" R2SCAN_rVV10_Deformation = "R2SCAN-rVV10 Deformation" + R2SCAN_rVV10_Optic = "R2SCAN-rVV10 Optic" + R2SCAN_rVV10_Molecular_Dynamics = "R2SCAN-rVV10 Molecular Dynamics" R2SCAN_rVV10_Unrecognized = "R2SCAN-rVV10 Unrecognized" SCAN_rVV10_NSCF_Line = "SCAN-rVV10 NSCF Line" SCAN_rVV10_NSCF_Uniform = "SCAN-rVV10 NSCF Uniform" @@ -372,6 +420,8 @@ class CalcType(ValueEnum): SCAN_rVV10_Static = "SCAN-rVV10 Static" SCAN_rVV10_Structure_Optimization = "SCAN-rVV10 Structure Optimization" SCAN_rVV10_Deformation = "SCAN-rVV10 Deformation" + SCAN_rVV10_Optic = "SCAN-rVV10 Optic" + SCAN_rVV10_Molecular_Dynamics = "SCAN-rVV10 Molecular Dynamics" SCAN_rVV10_Unrecognized = "SCAN-rVV10 Unrecognized" optB86b_vdW_NSCF_Line = "optB86b-vdW NSCF Line" optB86b_vdW_NSCF_Uniform = "optB86b-vdW NSCF Uniform" @@ -383,6 +433,8 @@ class CalcType(ValueEnum): optB86b_vdW_Static = "optB86b-vdW Static" optB86b_vdW_Structure_Optimization = "optB86b-vdW Structure Optimization" optB86b_vdW_Deformation = "optB86b-vdW Deformation" + optB86b_vdW_Optic = "optB86b-vdW Optic" + optB86b_vdW_Molecular_Dynamics = "optB86b-vdW Molecular Dynamics" optB86b_vdW_Unrecognized = "optB86b-vdW Unrecognized" optB88_vdW_NSCF_Line = "optB88-vdW NSCF Line" optB88_vdW_NSCF_Uniform = "optB88-vdW NSCF Uniform" @@ -394,6 +446,8 @@ class CalcType(ValueEnum): optB88_vdW_Static = "optB88-vdW Static" optB88_vdW_Structure_Optimization = "optB88-vdW Structure Optimization" optB88_vdW_Deformation = "optB88-vdW Deformation" + optB88_vdW_Optic = "optB88-vdW Optic" + optB88_vdW_Molecular_Dynamics = "optB88-vdW Molecular Dynamics" optB88_vdW_Unrecognized = "optB88-vdW Unrecognized" optPBE_vdW_NSCF_Line = "optPBE-vdW NSCF Line" optPBE_vdW_NSCF_Uniform = "optPBE-vdW NSCF Uniform" @@ -405,6 +459,8 @@ class CalcType(ValueEnum): optPBE_vdW_Static = "optPBE-vdW Static" optPBE_vdW_Structure_Optimization = "optPBE-vdW Structure Optimization" optPBE_vdW_Deformation = "optPBE-vdW Deformation" + optPBE_vdW_Optic = "optPBE-vdW Optic" + optPBE_vdW_Molecular_Dynamics = "optPBE-vdW Molecular Dynamics" optPBE_vdW_Unrecognized = "optPBE-vdW Unrecognized" rev_vdW_DF2_NSCF_Line = "rev-vdW-DF2 NSCF Line" rev_vdW_DF2_NSCF_Uniform = "rev-vdW-DF2 NSCF Uniform" @@ -416,6 +472,8 @@ class CalcType(ValueEnum): rev_vdW_DF2_Static = "rev-vdW-DF2 Static" rev_vdW_DF2_Structure_Optimization = "rev-vdW-DF2 Structure Optimization" rev_vdW_DF2_Deformation = "rev-vdW-DF2 Deformation" + rev_vdW_DF2_Optic = "rev-vdW-DF2 Optic" + rev_vdW_DF2_Molecular_Dynamics = "rev-vdW-DF2 Molecular Dynamics" rev_vdW_DF2_Unrecognized = "rev-vdW-DF2 Unrecognized" revPBE_vdW_NSCF_Line = "revPBE-vdW NSCF Line" revPBE_vdW_NSCF_Uniform = "revPBE-vdW NSCF Uniform" @@ -427,6 +485,8 @@ class CalcType(ValueEnum): revPBE_vdW_Static = "revPBE-vdW Static" revPBE_vdW_Structure_Optimization = "revPBE-vdW Structure Optimization" revPBE_vdW_Deformation = "revPBE-vdW Deformation" + revPBE_vdW_Optic = "revPBE-vdW Optic" + revPBE_vdW_Molecular_Dynamics = "revPBE-vdW Molecular Dynamics" revPBE_vdW_Unrecognized = "revPBE-vdW Unrecognized" vdW_DF2_NSCF_Line = "vdW-DF2 NSCF Line" vdW_DF2_NSCF_Uniform = "vdW-DF2 NSCF Uniform" @@ -438,6 +498,8 @@ class CalcType(ValueEnum): vdW_DF2_Static = "vdW-DF2 Static" vdW_DF2_Structure_Optimization = "vdW-DF2 Structure Optimization" vdW_DF2_Deformation = "vdW-DF2 Deformation" + vdW_DF2_Optic = "vdW-DF2 Optic" + vdW_DF2_Molecular_Dynamics = "vdW-DF2 Molecular Dynamics" vdW_DF2_Unrecognized = "vdW-DF2 Unrecognized" AM05_U_NSCF_Line = "AM05+U NSCF Line" AM05_U_NSCF_Uniform = "AM05+U NSCF Uniform" @@ -449,6 +511,8 @@ class CalcType(ValueEnum): AM05_U_Static = "AM05+U Static" AM05_U_Structure_Optimization = "AM05+U Structure Optimization" AM05_U_Deformation = "AM05+U Deformation" + AM05_U_Optic = "AM05+U Optic" + AM05_U_Molecular_Dynamics = "AM05+U Molecular Dynamics" AM05_U_Unrecognized = "AM05+U Unrecognized" GGA_U_NSCF_Line = "GGA+U NSCF Line" GGA_U_NSCF_Uniform = "GGA+U NSCF Uniform" @@ -460,6 +524,8 @@ class CalcType(ValueEnum): GGA_U_Static = "GGA+U Static" GGA_U_Structure_Optimization = "GGA+U Structure Optimization" GGA_U_Deformation = "GGA+U Deformation" + GGA_U_Optic = "GGA+U Optic" + GGA_U_Molecular_Dynamics = "GGA+U Molecular Dynamics" GGA_U_Unrecognized = "GGA+U Unrecognized" PBE_U_NSCF_Line = "PBE+U NSCF Line" PBE_U_NSCF_Uniform = "PBE+U NSCF Uniform" @@ -471,6 +537,8 @@ class CalcType(ValueEnum): PBE_U_Static = "PBE+U Static" PBE_U_Structure_Optimization = "PBE+U Structure Optimization" PBE_U_Deformation = "PBE+U Deformation" + PBE_U_Optic = "PBE+U Optic" + PBE_U_Molecular_Dynamics = "PBE+U Molecular Dynamics" PBE_U_Unrecognized = "PBE+U Unrecognized" PBESol_U_NSCF_Line = "PBESol+U NSCF Line" PBESol_U_NSCF_Uniform = "PBESol+U NSCF Uniform" @@ -482,6 +550,8 @@ class CalcType(ValueEnum): PBESol_U_Static = "PBESol+U Static" PBESol_U_Structure_Optimization = "PBESol+U Structure Optimization" PBESol_U_Deformation = "PBESol+U Deformation" + PBESol_U_Optic = "PBESol+U Optic" + PBESol_U_Molecular_Dynamics = "PBESol+U Molecular Dynamics" PBESol_U_Unrecognized = "PBESol+U Unrecognized" RevPBE_PADE_U_NSCF_Line = "RevPBE+PADE+U NSCF Line" RevPBE_PADE_U_NSCF_Uniform = "RevPBE+PADE+U NSCF Uniform" @@ -495,6 +565,8 @@ class CalcType(ValueEnum): RevPBE_PADE_U_Static = "RevPBE+PADE+U Static" RevPBE_PADE_U_Structure_Optimization = "RevPBE+PADE+U Structure Optimization" RevPBE_PADE_U_Deformation = "RevPBE+PADE+U Deformation" + RevPBE_PADE_U_Optic = "RevPBE+PADE+U Optic" + RevPBE_PADE_U_Molecular_Dynamics = "RevPBE+PADE+U Molecular Dynamics" RevPBE_PADE_U_Unrecognized = "RevPBE+PADE+U Unrecognized" optB86b_U_NSCF_Line = "optB86b+U NSCF Line" optB86b_U_NSCF_Uniform = "optB86b+U NSCF Uniform" @@ -506,6 +578,8 @@ class CalcType(ValueEnum): optB86b_U_Static = "optB86b+U Static" optB86b_U_Structure_Optimization = "optB86b+U Structure Optimization" optB86b_U_Deformation = "optB86b+U Deformation" + optB86b_U_Optic = "optB86b+U Optic" + optB86b_U_Molecular_Dynamics = "optB86b+U Molecular Dynamics" optB86b_U_Unrecognized = "optB86b+U Unrecognized" optB88_U_NSCF_Line = "optB88+U NSCF Line" optB88_U_NSCF_Uniform = "optB88+U NSCF Uniform" @@ -517,6 +591,8 @@ class CalcType(ValueEnum): optB88_U_Static = "optB88+U Static" optB88_U_Structure_Optimization = "optB88+U Structure Optimization" optB88_U_Deformation = "optB88+U Deformation" + optB88_U_Optic = "optB88+U Optic" + optB88_U_Molecular_Dynamics = "optB88+U Molecular Dynamics" optB88_U_Unrecognized = "optB88+U Unrecognized" optPBE_U_NSCF_Line = "optPBE+U NSCF Line" optPBE_U_NSCF_Uniform = "optPBE+U NSCF Uniform" @@ -528,6 +604,8 @@ class CalcType(ValueEnum): optPBE_U_Static = "optPBE+U Static" optPBE_U_Structure_Optimization = "optPBE+U Structure Optimization" optPBE_U_Deformation = "optPBE+U Deformation" + optPBE_U_Optic = "optPBE+U Optic" + optPBE_U_Molecular_Dynamics = "optPBE+U Molecular Dynamics" optPBE_U_Unrecognized = "optPBE+U Unrecognized" revPBE_U_NSCF_Line = "revPBE+U NSCF Line" revPBE_U_NSCF_Uniform = "revPBE+U NSCF Uniform" @@ -539,6 +617,8 @@ class CalcType(ValueEnum): revPBE_U_Static = "revPBE+U Static" revPBE_U_Structure_Optimization = "revPBE+U Structure Optimization" revPBE_U_Deformation = "revPBE+U Deformation" + revPBE_U_Optic = "revPBE+U Optic" + revPBE_U_Molecular_Dynamics = "revPBE+U Molecular Dynamics" revPBE_U_Unrecognized = "revPBE+U Unrecognized" B3LYP_U_NSCF_Line = "B3LYP+U NSCF Line" B3LYP_U_NSCF_Uniform = "B3LYP+U NSCF Uniform" @@ -550,6 +630,8 @@ class CalcType(ValueEnum): B3LYP_U_Static = "B3LYP+U Static" B3LYP_U_Structure_Optimization = "B3LYP+U Structure Optimization" B3LYP_U_Deformation = "B3LYP+U Deformation" + B3LYP_U_Optic = "B3LYP+U Optic" + B3LYP_U_Molecular_Dynamics = "B3LYP+U Molecular Dynamics" B3LYP_U_Unrecognized = "B3LYP+U Unrecognized" HF_U_NSCF_Line = "HF+U NSCF Line" HF_U_NSCF_Uniform = "HF+U NSCF Uniform" @@ -561,6 +643,8 @@ class CalcType(ValueEnum): HF_U_Static = "HF+U Static" HF_U_Structure_Optimization = "HF+U Structure Optimization" HF_U_Deformation = "HF+U Deformation" + HF_U_Optic = "HF+U Optic" + HF_U_Molecular_Dynamics = "HF+U Molecular Dynamics" HF_U_Unrecognized = "HF+U Unrecognized" HSE03_U_NSCF_Line = "HSE03+U NSCF Line" HSE03_U_NSCF_Uniform = "HSE03+U NSCF Uniform" @@ -572,6 +656,8 @@ class CalcType(ValueEnum): HSE03_U_Static = "HSE03+U Static" HSE03_U_Structure_Optimization = "HSE03+U Structure Optimization" HSE03_U_Deformation = "HSE03+U Deformation" + HSE03_U_Optic = "HSE03+U Optic" + HSE03_U_Molecular_Dynamics = "HSE03+U Molecular Dynamics" HSE03_U_Unrecognized = "HSE03+U Unrecognized" HSE06_U_NSCF_Line = "HSE06+U NSCF Line" HSE06_U_NSCF_Uniform = "HSE06+U NSCF Uniform" @@ -583,18 +669,22 @@ class CalcType(ValueEnum): HSE06_U_Static = "HSE06+U Static" HSE06_U_Structure_Optimization = "HSE06+U Structure Optimization" HSE06_U_Deformation = "HSE06+U Deformation" + HSE06_U_Optic = "HSE06+U Optic" + HSE06_U_Molecular_Dynamics = "HSE06+U Molecular Dynamics" HSE06_U_Unrecognized = "HSE06+U Unrecognized" - PB0_U_NSCF_Line = "PB0+U NSCF Line" - PB0_U_NSCF_Uniform = "PB0+U NSCF Uniform" - PB0_U_Dielectric = "PB0+U Dielectric" - PB0_U_DFPT = "PB0+U DFPT" - PB0_U_DFPT_Dielectric = "PB0+U DFPT Dielectric" - PB0_U_NMR_Nuclear_Shielding = "PB0+U NMR Nuclear Shielding" - PB0_U_NMR_Electric_Field_Gradient = "PB0+U NMR Electric Field Gradient" - PB0_U_Static = "PB0+U Static" - PB0_U_Structure_Optimization = "PB0+U Structure Optimization" - PB0_U_Deformation = "PB0+U Deformation" - PB0_U_Unrecognized = "PB0+U Unrecognized" + PBE0_U_NSCF_Line = "PBE0+U NSCF Line" + PBE0_U_NSCF_Uniform = "PBE0+U NSCF Uniform" + PBE0_U_Dielectric = "PBE0+U Dielectric" + PBE0_U_DFPT = "PBE0+U DFPT" + PBE0_U_DFPT_Dielectric = "PBE0+U DFPT Dielectric" + PBE0_U_NMR_Nuclear_Shielding = "PBE0+U NMR Nuclear Shielding" + PBE0_U_NMR_Electric_Field_Gradient = "PBE0+U NMR Electric Field Gradient" + PBE0_U_Static = "PBE0+U Static" + PBE0_U_Structure_Optimization = "PBE0+U Structure Optimization" + PBE0_U_Deformation = "PBE0+U Deformation" + PBE0_U_Optic = "PBE0+U Optic" + PBE0_U_Molecular_Dynamics = "PBE0+U Molecular Dynamics" + PBE0_U_Unrecognized = "PBE0+U Unrecognized" M06L_U_NSCF_Line = "M06L+U NSCF Line" M06L_U_NSCF_Uniform = "M06L+U NSCF Uniform" M06L_U_Dielectric = "M06L+U Dielectric" @@ -605,6 +695,8 @@ class CalcType(ValueEnum): M06L_U_Static = "M06L+U Static" M06L_U_Structure_Optimization = "M06L+U Structure Optimization" M06L_U_Deformation = "M06L+U Deformation" + M06L_U_Optic = "M06L+U Optic" + M06L_U_Molecular_Dynamics = "M06L+U Molecular Dynamics" M06L_U_Unrecognized = "M06L+U Unrecognized" MBJL_U_NSCF_Line = "MBJL+U NSCF Line" MBJL_U_NSCF_Uniform = "MBJL+U NSCF Uniform" @@ -616,6 +708,8 @@ class CalcType(ValueEnum): MBJL_U_Static = "MBJL+U Static" MBJL_U_Structure_Optimization = "MBJL+U Structure Optimization" MBJL_U_Deformation = "MBJL+U Deformation" + MBJL_U_Optic = "MBJL+U Optic" + MBJL_U_Molecular_Dynamics = "MBJL+U Molecular Dynamics" MBJL_U_Unrecognized = "MBJL+U Unrecognized" MS0_U_NSCF_Line = "MS0+U NSCF Line" MS0_U_NSCF_Uniform = "MS0+U NSCF Uniform" @@ -627,6 +721,8 @@ class CalcType(ValueEnum): MS0_U_Static = "MS0+U Static" MS0_U_Structure_Optimization = "MS0+U Structure Optimization" MS0_U_Deformation = "MS0+U Deformation" + MS0_U_Optic = "MS0+U Optic" + MS0_U_Molecular_Dynamics = "MS0+U Molecular Dynamics" MS0_U_Unrecognized = "MS0+U Unrecognized" MS1_U_NSCF_Line = "MS1+U NSCF Line" MS1_U_NSCF_Uniform = "MS1+U NSCF Uniform" @@ -638,6 +734,8 @@ class CalcType(ValueEnum): MS1_U_Static = "MS1+U Static" MS1_U_Structure_Optimization = "MS1+U Structure Optimization" MS1_U_Deformation = "MS1+U Deformation" + MS1_U_Optic = "MS1+U Optic" + MS1_U_Molecular_Dynamics = "MS1+U Molecular Dynamics" MS1_U_Unrecognized = "MS1+U Unrecognized" MS2_U_NSCF_Line = "MS2+U NSCF Line" MS2_U_NSCF_Uniform = "MS2+U NSCF Uniform" @@ -649,6 +747,8 @@ class CalcType(ValueEnum): MS2_U_Static = "MS2+U Static" MS2_U_Structure_Optimization = "MS2+U Structure Optimization" MS2_U_Deformation = "MS2+U Deformation" + MS2_U_Optic = "MS2+U Optic" + MS2_U_Molecular_Dynamics = "MS2+U Molecular Dynamics" MS2_U_Unrecognized = "MS2+U Unrecognized" RTPSS_U_NSCF_Line = "RTPSS+U NSCF Line" RTPSS_U_NSCF_Uniform = "RTPSS+U NSCF Uniform" @@ -660,6 +760,8 @@ class CalcType(ValueEnum): RTPSS_U_Static = "RTPSS+U Static" RTPSS_U_Structure_Optimization = "RTPSS+U Structure Optimization" RTPSS_U_Deformation = "RTPSS+U Deformation" + RTPSS_U_Optic = "RTPSS+U Optic" + RTPSS_U_Molecular_Dynamics = "RTPSS+U Molecular Dynamics" RTPSS_U_Unrecognized = "RTPSS+U Unrecognized" SCAN_U_NSCF_Line = "SCAN+U NSCF Line" SCAN_U_NSCF_Uniform = "SCAN+U NSCF Uniform" @@ -671,6 +773,8 @@ class CalcType(ValueEnum): SCAN_U_Static = "SCAN+U Static" SCAN_U_Structure_Optimization = "SCAN+U Structure Optimization" SCAN_U_Deformation = "SCAN+U Deformation" + SCAN_U_Optic = "SCAN+U Optic" + SCAN_U_Molecular_Dynamics = "SCAN+U Molecular Dynamics" SCAN_U_Unrecognized = "SCAN+U Unrecognized" R2SCAN_U_NSCF_Line = "R2SCAN+U NSCF Line" R2SCAN_U_NSCF_Uniform = "R2SCAN+U NSCF Uniform" @@ -682,6 +786,8 @@ class CalcType(ValueEnum): R2SCAN_U_Static = "R2SCAN+U Static" R2SCAN_U_Structure_Optimization = "R2SCAN+U Structure Optimization" R2SCAN_U_Deformation = "R2SCAN+U Deformation" + R2SCAN_U_Optic = "R2SCAN+U Optic" + R2SCAN_U_Molecular_Dynamics = "R2SCAN+U Molecular Dynamics" R2SCAN_U_Unrecognized = "R2SCAN+U Unrecognized" TPSS_U_NSCF_Line = "TPSS+U NSCF Line" TPSS_U_NSCF_Uniform = "TPSS+U NSCF Uniform" @@ -693,6 +799,8 @@ class CalcType(ValueEnum): TPSS_U_Static = "TPSS+U Static" TPSS_U_Structure_Optimization = "TPSS+U Structure Optimization" TPSS_U_Deformation = "TPSS+U Deformation" + TPSS_U_Optic = "TPSS+U Optic" + TPSS_U_Molecular_Dynamics = "TPSS+U Molecular Dynamics" TPSS_U_Unrecognized = "TPSS+U Unrecognized" R2SCAN_rVV10_U_NSCF_Line = "R2SCAN-rVV10+U NSCF Line" R2SCAN_rVV10_U_NSCF_Uniform = "R2SCAN-rVV10+U NSCF Uniform" @@ -706,6 +814,8 @@ class CalcType(ValueEnum): R2SCAN_rVV10_U_Static = "R2SCAN-rVV10+U Static" R2SCAN_rVV10_U_Structure_Optimization = "R2SCAN-rVV10+U Structure Optimization" R2SCAN_rVV10_U_Deformation = "R2SCAN-rVV10+U Deformation" + R2SCAN_rVV10_U_Optic = "R2SCAN-rVV10+U Optic" + R2SCAN_rVV10_U_Molecular_Dynamics = "R2SCAN-rVV10+U Molecular Dynamics" R2SCAN_rVV10_U_Unrecognized = "R2SCAN-rVV10+U Unrecognized" SCAN_rVV10_U_NSCF_Line = "SCAN-rVV10+U NSCF Line" SCAN_rVV10_U_NSCF_Uniform = "SCAN-rVV10+U NSCF Uniform" @@ -719,6 +829,8 @@ class CalcType(ValueEnum): SCAN_rVV10_U_Static = "SCAN-rVV10+U Static" SCAN_rVV10_U_Structure_Optimization = "SCAN-rVV10+U Structure Optimization" SCAN_rVV10_U_Deformation = "SCAN-rVV10+U Deformation" + SCAN_rVV10_U_Optic = "SCAN-rVV10+U Optic" + SCAN_rVV10_U_Molecular_Dynamics = "SCAN-rVV10+U Molecular Dynamics" SCAN_rVV10_U_Unrecognized = "SCAN-rVV10+U Unrecognized" optB86b_vdW_U_NSCF_Line = "optB86b-vdW+U NSCF Line" optB86b_vdW_U_NSCF_Uniform = "optB86b-vdW+U NSCF Uniform" @@ -732,6 +844,8 @@ class CalcType(ValueEnum): optB86b_vdW_U_Static = "optB86b-vdW+U Static" optB86b_vdW_U_Structure_Optimization = "optB86b-vdW+U Structure Optimization" optB86b_vdW_U_Deformation = "optB86b-vdW+U Deformation" + optB86b_vdW_U_Optic = "optB86b-vdW+U Optic" + optB86b_vdW_U_Molecular_Dynamics = "optB86b-vdW+U Molecular Dynamics" optB86b_vdW_U_Unrecognized = "optB86b-vdW+U Unrecognized" optB88_vdW_U_NSCF_Line = "optB88-vdW+U NSCF Line" optB88_vdW_U_NSCF_Uniform = "optB88-vdW+U NSCF Uniform" @@ -745,6 +859,8 @@ class CalcType(ValueEnum): optB88_vdW_U_Static = "optB88-vdW+U Static" optB88_vdW_U_Structure_Optimization = "optB88-vdW+U Structure Optimization" optB88_vdW_U_Deformation = "optB88-vdW+U Deformation" + optB88_vdW_U_Optic = "optB88-vdW+U Optic" + optB88_vdW_U_Molecular_Dynamics = "optB88-vdW+U Molecular Dynamics" optB88_vdW_U_Unrecognized = "optB88-vdW+U Unrecognized" optPBE_vdW_U_NSCF_Line = "optPBE-vdW+U NSCF Line" optPBE_vdW_U_NSCF_Uniform = "optPBE-vdW+U NSCF Uniform" @@ -758,6 +874,8 @@ class CalcType(ValueEnum): optPBE_vdW_U_Static = "optPBE-vdW+U Static" optPBE_vdW_U_Structure_Optimization = "optPBE-vdW+U Structure Optimization" optPBE_vdW_U_Deformation = "optPBE-vdW+U Deformation" + optPBE_vdW_U_Optic = "optPBE-vdW+U Optic" + optPBE_vdW_U_Molecular_Dynamics = "optPBE-vdW+U Molecular Dynamics" optPBE_vdW_U_Unrecognized = "optPBE-vdW+U Unrecognized" rev_vdW_DF2_U_NSCF_Line = "rev-vdW-DF2+U NSCF Line" rev_vdW_DF2_U_NSCF_Uniform = "rev-vdW-DF2+U NSCF Uniform" @@ -771,6 +889,8 @@ class CalcType(ValueEnum): rev_vdW_DF2_U_Static = "rev-vdW-DF2+U Static" rev_vdW_DF2_U_Structure_Optimization = "rev-vdW-DF2+U Structure Optimization" rev_vdW_DF2_U_Deformation = "rev-vdW-DF2+U Deformation" + rev_vdW_DF2_U_Optic = "rev-vdW-DF2+U Optic" + rev_vdW_DF2_U_Molecular_Dynamics = "rev-vdW-DF2+U Molecular Dynamics" rev_vdW_DF2_U_Unrecognized = "rev-vdW-DF2+U Unrecognized" revPBE_vdW_U_NSCF_Line = "revPBE-vdW+U NSCF Line" revPBE_vdW_U_NSCF_Uniform = "revPBE-vdW+U NSCF Uniform" @@ -784,6 +904,8 @@ class CalcType(ValueEnum): revPBE_vdW_U_Static = "revPBE-vdW+U Static" revPBE_vdW_U_Structure_Optimization = "revPBE-vdW+U Structure Optimization" revPBE_vdW_U_Deformation = "revPBE-vdW+U Deformation" + revPBE_vdW_U_Optic = "revPBE-vdW+U Optic" + revPBE_vdW_U_Molecular_Dynamics = "revPBE-vdW+U Molecular Dynamics" revPBE_vdW_U_Unrecognized = "revPBE-vdW+U Unrecognized" vdW_DF2_U_NSCF_Line = "vdW-DF2+U NSCF Line" vdW_DF2_U_NSCF_Uniform = "vdW-DF2+U NSCF Uniform" @@ -795,6 +917,8 @@ class CalcType(ValueEnum): vdW_DF2_U_Static = "vdW-DF2+U Static" vdW_DF2_U_Structure_Optimization = "vdW-DF2+U Structure Optimization" vdW_DF2_U_Deformation = "vdW-DF2+U Deformation" + vdW_DF2_U_Optic = "vdW-DF2+U Optic" + vdW_DF2_U_Molecular_Dynamics = "vdW-DF2+U Molecular Dynamics" vdW_DF2_U_Unrecognized = "vdW-DF2+U Unrecognized" LDA_NSCF_Line = "LDA NSCF Line" LDA_NSCF_Uniform = "LDA NSCF Uniform" @@ -806,6 +930,8 @@ class CalcType(ValueEnum): LDA_Static = "LDA Static" LDA_Structure_Optimization = "LDA Structure Optimization" LDA_Deformation = "LDA Deformation" + LDA_Optic = "LDA Optic" + LDA_Molecular_Dynamics = "LDA Molecular Dynamics" LDA_Unrecognized = "LDA Unrecognized" LDA_U_NSCF_Line = "LDA+U NSCF Line" LDA_U_NSCF_Uniform = "LDA+U NSCF Uniform" @@ -816,7 +942,7 @@ class CalcType(ValueEnum): LDA_U_NMR_Electric_Field_Gradient = "LDA+U NMR Electric Field Gradient" LDA_U_Static = "LDA+U Static" LDA_U_Structure_Optimization = "LDA+U Structure Optimization" - GGA_Optic = "GGA Optic" - PBE_Optic = "PBE Optic" LDA_U_Deformation = "LDA+U Deformation" + LDA_U_Optic = "LDA+U Optic" + LDA_U_Molecular_Dynamics = "LDA+U Molecular Dynamics" LDA_U_Unrecognized = "LDA+U Unrecognized" diff --git a/emmet-core/emmet/core/vasp/calc_types/generate.py b/emmet-core/emmet/core/vasp/calc_types/generate.py index 3a46a65369..30b8335a3a 100644 --- a/emmet-core/emmet/core/vasp/calc_types/generate.py +++ b/emmet-core/emmet/core/vasp/calc_types/generate.py @@ -1,4 +1,4 @@ -""" Module to define various calculation types as Enums for VASP """ +"""Module to define various calculation types as Enums for VASP.""" from itertools import product from pathlib import Path @@ -18,8 +18,9 @@ "Static", "Structure Optimization", "Deformation", - "Unrecognized", "Optic", + "Molecular Dynamics", + "Unrecognized", ] _RUN_TYPES = ( @@ -39,24 +40,20 @@ run_type_enum = get_enum_source( "RunType", - "VASP calculation run types", - dict( - { - "_".join(rt.split()).replace("+", "_").replace("-", "_"): rt - for rt in _RUN_TYPES - } - ), + "VASP calculation run types.", + {"_".join(rt.split()).replace("+", "_").replace("-", "_"): rt for rt in _RUN_TYPES}, ) task_type_enum = get_enum_source( "TaskType", - "VASP calculation task types", + "VASP calculation task types.", {"_".join(tt.split()): tt for tt in _TASK_TYPES}, ) calc_type_enum = get_enum_source( "CalcType", - "VASP calculation types", + "VASP calculation types.", { - f"{'_'.join(rt.split()).replace('+','_').replace('-','_')}_{'_'.join(tt.split())}": f"{rt} {tt}" + f"{'_'.join(rt.split()).replace('+','_').replace('-','_')}" + f"_{'_'.join(tt.split())}": f"{rt} {tt}" for rt, tt in product(_RUN_TYPES, _TASK_TYPES) }, ) @@ -65,8 +62,9 @@ with open(Path(__file__).parent / "enums.py", "w") as f: f.write( """\"\"\" -Autogenerated Enums for VASP RunType, TaskType, and CalcType -Do not edit this by hand. Edit generate.py or run_types.yaml instead +Autogenerated Enums for VASP RunType, TaskType, and CalcType. + +Do not edit this by hand. Edit generate.py or run_types.yaml instead. \"\"\" from emmet.core.utils import ValueEnum diff --git a/emmet-core/emmet/core/vasp/calc_types/run_types.yaml b/emmet-core/emmet/core/vasp/calc_types/run_types.yaml index 95f74b9078..4b0d603067 100644 --- a/emmet-core/emmet/core/vasp/calc_types/run_types.yaml +++ b/emmet-core/emmet/core/vasp/calc_types/run_types.yaml @@ -1,4 +1,3 @@ -# Do not edit manually, use "generate.py" GGA: AM05: GGA: AM diff --git a/emmet-core/emmet/core/vasp/calc_types/utils.py b/emmet-core/emmet/core/vasp/calc_types/utils.py index d8e1c47e62..db004c26d2 100644 --- a/emmet-core/emmet/core/vasp/calc_types/utils.py +++ b/emmet-core/emmet/core/vasp/calc_types/utils.py @@ -1,51 +1,48 @@ -""" Module to define various calculation types as Enums for VASP """ +"""Module to define various calculation types as Enums for VASP.""" + from pathlib import Path -from typing import Dict +from typing import Dict, Literal from monty.serialization import loadfn -from typing_extensions import Literal from emmet.core.vasp.calc_types.enums import CalcType, RunType, TaskType _RUN_TYPE_DATA = loadfn(str(Path(__file__).parent.joinpath("run_types.yaml").resolve())) +__all__ = ["run_type", "task_type", "calc_type"] + def run_type(parameters: Dict) -> RunType: """ - Determines the run_type from the VASP parameters dict + Determine run type from the VASP parameters dict. + This is adapted from pymatgen to be far less unstable Args: - parameters: Dictionary of VASP parameters from Vasprun.xml + parameters: Dictionary of VASP parameters from vasprun.xml. - *** WARNING *** - VASP mangles the LDAU* fields in the parameters field - If you're not using the TaskDocument.run_type, copy over - LDAU* fields from the incar rather than trust parameters - """ + Returns: + The run type. - if parameters.get("LDAU", False): - is_hubbard = "+U" - else: - is_hubbard = "" + Warning: + VASP mangles the LDAU* fields in the parameters field. If you're not using the + TaskDocument.run_type, copy over LDAU* fields from the incar rather than trust + parameters. + """ + is_hubbard = "+U" if parameters.get("LDAU", False) else "" def _variant_equal(v1, v2) -> bool: - """ - helper function to deal with strings - """ + """Check two strings equal.""" if isinstance(v1, str) and isinstance(v2, str): return v1.strip().upper() == v2.strip().upper() - else: - return v1 == v2 + return v1 == v2 # This is to force an order of evaluation for functional_class in ["HF", "VDW", "METAGGA", "GGA"]: for special_type, params in _RUN_TYPE_DATA[functional_class].items(): if all( - [ - _variant_equal(parameters.get(param, None), value) - for param, value in params.items() - ] + _variant_equal(parameters.get(param, None), value) + for param, value in params.items() ): return RunType(f"{special_type}{is_hubbard}") @@ -56,31 +53,32 @@ def task_type( inputs: Dict[Literal["incar", "poscar", "kpoints", "potcar"], Dict] ) -> TaskType: """ - Determines the task type + Determine task type from vasp inputs. Args: - inputs: inputs dict with an incar, kpoints, potcar, and poscar dictionaries + inputs: inputs dict with an incar, kpoints, potcar, and poscar dictionaries. + + Returns: + The task type. """ calc_type = [] - incar = inputs.get("incar", {}) + kpts = inputs.get("kpoints") or {} # kpoints can be None, then want a dict if incar.get("ICHARG", 0) > 10: try: - kpts = inputs.get("kpoints") or {} kpt_labels = kpts.get("labels") or [] num_kpt_labels = len(list(filter(None.__ne__, kpt_labels))) except Exception as e: - raise Exception( - "Couldn't identify total number of kpt labels: {}".format(e) - ) + raise Exception("Couldn't identify total number of kpt labels") from e if num_kpt_labels > 0: calc_type.append("NSCF Line") else: calc_type.append("NSCF Uniform") - + elif len([x for x in kpts.get("labels") or [] if x is not None]) > 0: + calc_type.append("SCF Line") elif incar.get("LEPSILON", False): if incar.get("IBRION", 0) > 6: calc_type.append("DFPT") @@ -103,14 +101,17 @@ def task_type( else: calc_type.append("Static") + elif incar.get("LOPTICS", False) is True or incar.get("ALGO", None) == "CHI": + calc_type.append("Optic") + elif incar.get("ISIF", 2) == 3 and incar.get("IBRION", 0) > 0: calc_type.append("Structure Optimization") elif incar.get("ISIF", 3) == 2 and incar.get("IBRION", 0) > 0: calc_type.append("Deformation") - elif incar.get("LOPTICS", False) is True or incar.get("ALGO", None) == "CHI": - calc_type.append("Optic") + elif incar.get("IBRION", 1) == 0: + calc_type.append("Molecular Dynamics") if len(calc_type) == 0: return TaskType("Unrecognized") @@ -123,11 +124,14 @@ def calc_type( parameters: Dict, ) -> CalcType: """ - Determines the calc type + Determine the calc type. Args: - inputs: inputs dict with an incar, kpoints, potcar, and poscar dictionaries - parameters: Dictionary of VASP parameters from Vasprun.xml + inputs: inputs dict with an incar, kpoints, potcar, and poscar dictionaries. + parameters: Dictionary of VASP parameters from vasprun.xml. + + Returns: + The calc type. """ rt = run_type(parameters).value tt = task_type(inputs).value