@@ -185,12 +185,16 @@ class KCWHamConfig(ParallelCommandConfig):
185185 stdout : str | None = "PREFIX.kho"
186186 stderr : str | None = None
187187 stdin_redirection_string : ClassVar [str ] = "-in"
188+ pd : bool = Field (False , description = "Use pencil decomposition." )
188189 ase_env_var : ClassVar [str ] = "ASE_KCW_HAM_COMMAND"
189190
190191 @property
191192 def options_str (self ) -> str :
192193 """Return the string of options to provide to the executable."""
193- return ''
194+ options : list [str ] = []
195+ if self .pd :
196+ options .append (f"-pd { self .pd } " )
197+ return ' ' .join (options )
194198
195199
196200class KCWScreenConfig (ParallelCommandConfig ):
@@ -201,12 +205,19 @@ class KCWScreenConfig(ParallelCommandConfig):
201205 stdout : str | None = "PREFIX.kso"
202206 stderr : str | None = None
203207 stdin_redirection_string : ClassVar [str ] = "-in"
208+ npool : int | None = Field (None , description = "Number of pools to use for parallel execution." )
209+ pd : bool = Field (False , description = "Use pencil decomposition." )
204210 ase_env_var : ClassVar [str ] = "ASE_KCW_SCREEN_COMMAND"
205211
206212 @property
207213 def options_str (self ) -> str :
208214 """Return the string of options to provide to the executable."""
209- return ''
215+ options : list [str ] = []
216+ if self .npool is not None :
217+ options .append (f"-npool { self .npool } " )
218+ if self .pd :
219+ options .append (f"-pd { self .pd } " )
220+ return ' ' .join (options )
210221
211222
212223class KCWWannierConfig (ParallelCommandConfig ):
@@ -217,12 +228,19 @@ class KCWWannierConfig(ParallelCommandConfig):
217228 stdout : str | None = "PREFIX.w2ko"
218229 stderr : str | None = None
219230 stdin_redirection_string : ClassVar [str ] = "-in"
231+ npool : int | None = Field (None , description = "Number of pools to use for parallel execution." )
232+ pd : bool = Field (False , description = "Use pencil decomposition." )
220233 ase_env_var : ClassVar [str ] = "ASE_KCW_WANNIER_COMMAND"
221234
222235 @property
223236 def options_str (self ) -> str :
224237 """Return the string of options to provide to the executable."""
225- return ''
238+ options : list [str ] = []
239+ if self .npool is not None :
240+ options .append (f"-npool { self .npool } " )
241+ if self .pd :
242+ options .append (f"-pd { self .pd } " )
243+ return ' ' .join (options )
226244
227245
228246class KCPConfig (ParallelCommandConfig ):
@@ -265,6 +283,8 @@ class ProjwfcConfig(ParallelCommandConfig):
265283 stdout : str | None = "PREFIX.pro"
266284 stderr : str | None = None
267285 stdin_redirection_string : ClassVar [str ] = "-in"
286+ npool : int | None = Field (None , description = "Number of pools to use for parallel execution." )
287+ pd : bool = Field (False , description = "Use pencil decomposition." )
268288 ase_env_var : ClassVar [str ] = "ASE_PROJWFC_COMMAND"
269289
270290 @property
0 commit comments