@@ -79,28 +79,30 @@ class RunVaspCustodian(FiretaskBase):
79
79
vasp_cmd (str): the name of the full executable for running VASP. Supports env_chk.
80
80
81
81
Optional params:
82
- job_type: (str) - choose from "normal" (default), "double_relaxation_run" (two consecutive
82
+ jobs (list[VaspJob]): VaspJobs to run.
83
+ job_type (str): choose from "normal" (default), "double_relaxation_run" (two consecutive
83
84
jobs), "full_opt_run" (multiple optimizations), and "neb"
84
85
handler_group: (str | list[ErrorHandler]) - group of handlers to use. See handler_groups dict in the code or
85
86
the groups and complete list of handlers in each group. Alternatively, you can
86
87
specify a list of ErrorHandler objects.
87
88
max_force_threshold: (float) - if >0, adds MaxForceErrorHandler. Not recommended for
88
89
nscf runs.
89
- scratch_dir: (str) - if specified, uses this directory as the root scratch dir.
90
+ scratch_dir (str): if specified, uses this directory as the root scratch dir.
90
91
Supports env_chk.
91
92
gzip_output: (bool) - gzip output (default=T)
92
93
max_errors: (int) - maximum # of errors to fix before giving up (default=5)
93
94
ediffg: (float) shortcut for setting EDIFFG in special custodian jobs
94
95
auto_npar: (bool) - use auto_npar (default=F). Recommended set to T
95
96
for single-node jobs only. Supports env_chk.
96
- gamma_vasp_cmd: (str) - cmd for Gamma-optimized VASP compilation.
97
+ gamma_vasp_cmd (str): cmd for Gamma-optimized VASP compilation.
97
98
Supports env_chk.
98
99
wall_time (int): Total wall time in seconds. Activates WalltimeHandler if set.
99
100
half_kpts_first_relax (bool): Use half the k-points for the first relaxation
100
101
"""
101
102
102
103
required_params = ["vasp_cmd" ]
103
104
optional_params = [
105
+ "jobs" ,
104
106
"job_type" ,
105
107
"handler_group" ,
106
108
"max_force_threshold" ,
@@ -167,7 +169,8 @@ def run_task(self, fw_spec):
167
169
vasp_cmd = shlex .split (vasp_cmd )
168
170
169
171
# initialize variables
170
- job_type = self .get ("job_type" , "normal" )
172
+ jobs = self .get ("jobs" , [])
173
+ job_type = self .get ("job_type" , "normal" if jobs == [] else None )
171
174
scratch_dir = env_chk (self .get ("scratch_dir" ), fw_spec )
172
175
gzip_output = self .get ("gzip_output" , True )
173
176
max_errors = self .get ("max_errors" , CUSTODIAN_MAX_ERRORS )
0 commit comments