Skip to content

Commit 9684e12

Browse files
committed
Add pool and pd parallelization option for kcw.x
1 parent dff32fb commit 9684e12

1 file changed

Lines changed: 23 additions & 3 deletions

File tree

src/koopmans/commands.py

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

196200
class 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

212223
class 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

228246
class 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

Comments
 (0)