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