Skip to content

Commit 2c9c3bf

Browse files
author
HailiJia
committed
Fix minor bugs
1 parent 1c0912b commit 2c9c3bf

1 file changed

Lines changed: 22 additions & 6 deletions

File tree

lightshow/parameters/fdmnes.py

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ def get_FDMNESinput(self, structure, Z_absorber):
160160

161161
transition_metal_ranges = [range(21, 31), range(39, 49), range(57, 81)]
162162

163-
if cards["Green"] == True:
163+
if cards.get("Green", False):
164164
return cards
165165

166166
else:
@@ -215,8 +215,24 @@ def write(self, target_directory, **kwargs):
215215
``{"pass": True, "errors": dict(), "path": ...}``.
216216
"""
217217

218-
structure = kwargs["structure_uc"]
219-
sites = kwargs["sites"]
218+
structure = kwargs.get("structure_uc", kwargs["structure"])
219+
220+
Z_absorber = kwargs.get("Z_absorber")
221+
222+
sites = kwargs.get("sites")
223+
if sites is None:
224+
# Infer absorber sites from Z_absorber; if absent, default to the first site
225+
if Z_absorber is None:
226+
sites = [0]
227+
else:
228+
if isinstance(Z_absorber, (list, tuple, set)):
229+
zset = {int(z) for z in Z_absorber}
230+
else:
231+
zset = {int(Z_absorber)}
232+
233+
sites = [i for i, s in enumerate(structure) if int(s.specie.Z) in zset]
234+
if not sites:
235+
raise ValueError(f"No absorber sites found for Z_absorber={Z_absorber}.")
220236

221237
all_species = [structure[site].specie.symbol for site in sites]
222238
species = list(dict.fromkeys(all_species))
@@ -231,11 +247,11 @@ def write(self, target_directory, **kwargs):
231247
for i in range(len(Z_absorbers)):
232248
specie = species[i]
233249
Z_absorber = Z_absorbers[i]
234-
path = target_directory / Path(specie)
235-
path.mkdir(exist_ok=True, parents=True)
250+
251+
target_directory.mkdir(exist_ok=True, parents=True)
236252

237253
fdmnesinput = self.get_FDMNESinput(structure, Z_absorber)
238-
filepath = path / f"{specie}_in.txt"
254+
filepath = target_directory / f"{specie}_in.txt"
239255

240256
with open(filepath, "w") as f:
241257
f.write("Filout\n")

0 commit comments

Comments
 (0)