Skip to content

Commit 569cd82

Browse files
authored
breaking: snake_case FiestaInput keywords and class attrs (#3386)
1 parent 9e109df commit 569cd82

File tree

3 files changed

+98
-105
lines changed

3 files changed

+98
-105
lines changed

pymatgen/io/fiesta.py

Lines changed: 72 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -296,10 +296,10 @@ def __init__(
296296
self,
297297
mol,
298298
correlation_grid: dict[str, str] | None = None,
299-
Exc_DFT_option: dict[str, str] | None = None,
300-
COHSEX_options: dict[str, str] | None = None,
301-
GW_options: dict[str, str] | None = None,
302-
BSE_TDDFT_options: dict[str, str] | None = None,
299+
exc_dft_option: dict[str, str] | None = None,
300+
cohsex_options: dict[str, str] | None = None,
301+
gw_options: dict[str, str] | None = None,
302+
bse_tddft_options: dict[str, str] | None = None,
303303
):
304304
"""
305305
:param mol: pymatgen mol
@@ -311,8 +311,8 @@ def __init__(
311311
"""
312312
self._mol = mol
313313
self.correlation_grid = correlation_grid or {"dE_grid": "0.500", "n_grid": "14"}
314-
self.Exc_DFT_option = Exc_DFT_option or {"rdVxcpsi": "1"}
315-
self.COHSEX_options = COHSEX_options or {
314+
self.Exc_DFT_option = exc_dft_option or {"rdVxcpsi": "1"}
315+
self.cohsex_options = cohsex_options or {
316316
"eigMethod": "C",
317317
"mix_cohsex": "0.500",
318318
"nc_cohsex": "0",
@@ -321,8 +321,8 @@ def __init__(
321321
"resMethod": "V",
322322
"scf_cohsex_wf": "0",
323323
}
324-
self.GW_options = GW_options or {"nc_corr": "10", "nit_gw": "3", "nv_corr": "10"}
325-
self.BSE_TDDFT_options = BSE_TDDFT_options or {
324+
self.GW_options = gw_options or {"nc_corr": "10", "nit_gw": "3", "nv_corr": "10"}
325+
self.bse_tddft_options = bse_tddft_options or {
326326
"do_bse": "1",
327327
"do_tddft": "0",
328328
"nc_bse": "382",
@@ -343,7 +343,7 @@ def set_auxiliary_basis_set(self, folder, auxiliary_folder, auxiliary_basis_set_
343343
for specie in self._mol.symbol_set:
344344
for file in list_files:
345345
if file.upper().find(specie.upper() + "2") != -1 and file.lower().find(auxiliary_basis_set_type) != -1:
346-
shutil.copyfile(auxiliary_folder + "/" + file, folder + "/" + specie + "2.ion")
346+
shutil.copyfile(f"{auxiliary_folder}/{file}", f"{folder}/{specie}2.ion")
347347

348348
def set_gw_options(self, nv_band=10, nc_band=10, n_iteration=5, n_grid=6, dE_grid=0.5):
349349
"""
@@ -359,10 +359,10 @@ def set_gw_options(self, nv_band=10, nc_band=10, n_iteration=5, n_grid=6, dE_gri
359359
@staticmethod
360360
def make_full_bse_densities_folder(folder):
361361
"""Mkdir "FULL_BSE_Densities" folder (needed for bse run) in the desired folder."""
362-
if os.path.exists(folder + "/FULL_BSE_Densities"):
362+
if os.path.exists(f"{folder}/FULL_BSE_Densities"):
363363
return "FULL_BSE_Densities folder already exists"
364364

365-
os.makedirs(folder + "/FULL_BSE_Densities")
365+
os.makedirs(f"{folder}/FULL_BSE_Densities")
366366
return "makedirs FULL_BSE_Densities folder"
367367

368368
def set_bse_options(self, n_excitations=10, nit_bse=200):
@@ -373,7 +373,7 @@ def set_bse_options(self, n_excitations=10, nit_bse=200):
373373
:param n_excitations: number of excitations
374374
:param nit_bse: number of iterations.
375375
"""
376-
self.BSE_TDDFT_options.update(npsi_bse=n_excitations, nit_bse=nit_bse)
376+
self.bse_tddft_options.update(npsi_bse=n_excitations, nit_bse=nit_bse)
377377

378378
def dump_bse_data_in_gw_run(self, BSE_dump=True):
379379
"""
@@ -383,77 +383,70 @@ def dump_bse_data_in_gw_run(self, BSE_dump=True):
383383
set the "do_bse" variable to one in cell.in
384384
"""
385385
if BSE_dump:
386-
self.BSE_TDDFT_options.update(do_bse=1, do_tddft=0)
386+
self.bse_tddft_options.update(do_bse=1, do_tddft=0)
387387
else:
388-
self.BSE_TDDFT_options.update(do_bse=0, do_tddft=0)
388+
self.bse_tddft_options.update(do_bse=0, do_tddft=0)
389389

390-
def dump_TDDFT_data_in_GW_run(self, TDDFT_dump=True):
390+
def dump_tddft_data_in_gw_run(self, tddft_dump=True):
391391
"""
392392
:param TDDFT_dump: boolean
393393
394394
Returns:
395395
set the do_tddft variable to one in cell.in
396396
"""
397-
if TDDFT_dump:
398-
self.BSE_TDDFT_options.update(do_bse=0, do_tddft=1)
399-
else:
400-
self.BSE_TDDFT_options.update(do_bse=0, do_tddft=0)
397+
self.bse_tddft_options.update(do_bse=0, do_tddft=1 if tddft_dump else 0)
401398

402399
@property
403400
def infos_on_system(self):
404401
"""Returns infos on initial parameters as in the log file of Fiesta."""
405-
o = []
406-
o.append("=========================================")
407-
o.append("Reading infos on system:")
408-
o.append("")
409-
o.append(
410-
f" Number of atoms = {self._mol.composition.num_atoms} ; number of species = {len(self._mol.symbol_set)}"
411-
)
412-
o.append(f" Number of valence bands = {int(self._mol.nelectrons / 2)}")
413-
o.append(
402+
lst = [
403+
"=========================================",
404+
"Reading infos on system:",
405+
"",
406+
f" Number of atoms = {self._mol.composition.num_atoms} ; number of species = {len(self._mol.symbol_set)}",
407+
f" Number of valence bands = {int(self._mol.nelectrons / 2)}",
414408
f" Sigma grid specs: n_grid = {self.correlation_grid['n_grid']} ; "
415-
f"dE_grid = {self.correlation_grid['dE_grid']} (eV)"
416-
)
409+
f"dE_grid = {self.correlation_grid['dE_grid']} (eV)",
410+
]
417411
if int(self.Exc_DFT_option["rdVxcpsi"]) == 1:
418-
o.append(" Exchange and correlation energy read from Vxcpsi.mat")
412+
lst.append(" Exchange and correlation energy read from Vxcpsi.mat")
419413
elif int(self.Exc_DFT_option["rdVxcpsi"]) == 0:
420-
o.append(" Exchange and correlation energy re-computed")
421-
422-
if self.COHSEX_options["eigMethod"] == "C":
423-
o.append(
424-
f" Correcting {self.COHSEX_options['nv_cohsex']} valence bands and "
425-
f"{self.COHSEX_options['nc_cohsex']} conduction bands at COHSEX level"
426-
)
427-
o.append(f" Performing {self.COHSEX_options['nit_cohsex']} diagonal COHSEX iterations")
428-
elif self.COHSEX_options["eigMethod"] == "HF":
429-
o.append(
430-
f" Correcting {self.COHSEX_options['nv_cohsex']} valence bands and "
431-
f"{self.COHSEX_options['nc_cohsex']} conduction bands at HF level"
432-
)
433-
o.append(f" Performing {self.COHSEX_options['nit_cohsex']} diagonal HF iterations")
434-
435-
o.append(f" Using resolution of identity : {self.COHSEX_options['resMethod']}")
436-
o.append(
414+
lst.append(" Exchange and correlation energy re-computed")
415+
416+
if self.cohsex_options["eigMethod"] == "C":
417+
lst += [
418+
f" Correcting {self.cohsex_options['nv_cohsex']} valence bands and "
419+
f"{self.cohsex_options['nc_cohsex']} conduction bands at COHSEX level",
420+
f" Performing {self.cohsex_options['nit_cohsex']} diagonal COHSEX iterations",
421+
]
422+
elif self.cohsex_options["eigMethod"] == "HF":
423+
lst += [
424+
f" Correcting {self.cohsex_options['nv_cohsex']} valence bands and "
425+
f"{self.cohsex_options['nc_cohsex']} conduction bands at HF level",
426+
f" Performing {self.cohsex_options['nit_cohsex']} diagonal HF iterations",
427+
]
428+
429+
lst += [
430+
f" Using resolution of identity : {self.cohsex_options['resMethod']}",
437431
f" Correcting {self.GW_options['nv_corr']} valence bands and "
438-
f"{self.GW_options['nc_corr']} conduction bands at GW level"
439-
)
440-
o.append(f" Performing {self.GW_options['nit_gw']} GW iterations")
432+
f"{self.GW_options['nc_corr']} conduction bands at GW level",
433+
f" Performing {self.GW_options['nit_gw']} GW iterations",
434+
]
441435

442-
if int(self.BSE_TDDFT_options["do_bse"]) == 1:
443-
o.append(" Dumping data for BSE treatment")
436+
if int(self.bse_tddft_options["do_bse"]) == 1:
437+
lst.append(" Dumping data for BSE treatment")
444438

445-
if int(self.BSE_TDDFT_options["do_tddft"]) == 1:
446-
o.append(" Dumping data for TD-DFT treatment")
447-
o.append("")
448-
o.append(" Atoms in cell cartesian A:")
439+
if int(self.bse_tddft_options["do_tddft"]) == 1:
440+
lst.append(" Dumping data for TD-DFT treatment")
441+
lst.extend(("", " Atoms in cell cartesian A:"))
449442
symbols = list(self._mol.symbol_set)
450443

451444
for site in self._mol:
452-
o.append(f" {site.x} {site.y} {site.z} {int(symbols.index(site.specie.symbol)) + 1}")
445+
lst.append(f" {site.x} {site.y} {site.z} {int(symbols.index(site.specie.symbol)) + 1}")
453446

454-
o.append("=========================================")
447+
lst.append("=========================================")
455448

456-
return str(o)
449+
return str(lst)
457450

458451
@property
459452
def molecule(self):
@@ -506,22 +499,22 @@ def __str__(self):
506499
n_grid=self.correlation_grid["n_grid"],
507500
dE_grid=self.correlation_grid["dE_grid"],
508501
rdVxcpsi=self.Exc_DFT_option["rdVxcpsi"],
509-
nv_cohsex=self.COHSEX_options["nv_cohsex"],
510-
nc_cohsex=self.COHSEX_options["nc_cohsex"],
511-
eigMethod=self.COHSEX_options["eigMethod"],
512-
nit_cohsex=self.COHSEX_options["nit_cohsex"],
513-
resMethod=self.COHSEX_options["resMethod"],
514-
scf_cohsex_wf=self.COHSEX_options["scf_cohsex_wf"],
515-
mix_cohsex=self.COHSEX_options["mix_cohsex"],
502+
nv_cohsex=self.cohsex_options["nv_cohsex"],
503+
nc_cohsex=self.cohsex_options["nc_cohsex"],
504+
eigMethod=self.cohsex_options["eigMethod"],
505+
nit_cohsex=self.cohsex_options["nit_cohsex"],
506+
resMethod=self.cohsex_options["resMethod"],
507+
scf_cohsex_wf=self.cohsex_options["scf_cohsex_wf"],
508+
mix_cohsex=self.cohsex_options["mix_cohsex"],
516509
nv_corr=self.GW_options["nv_corr"],
517510
nc_corr=self.GW_options["nc_corr"],
518511
nit_gw=self.GW_options["nit_gw"],
519-
do_bse=self.BSE_TDDFT_options["do_bse"],
520-
do_tddft=self.BSE_TDDFT_options["do_tddft"],
521-
nv_bse=self.BSE_TDDFT_options["nv_bse"],
522-
nc_bse=self.BSE_TDDFT_options["nc_bse"],
523-
npsi_bse=self.BSE_TDDFT_options["npsi_bse"],
524-
nit_bse=self.BSE_TDDFT_options["nit_bse"],
512+
do_bse=self.bse_tddft_options["do_bse"],
513+
do_tddft=self.bse_tddft_options["do_tddft"],
514+
nv_bse=self.bse_tddft_options["nv_bse"],
515+
nc_bse=self.bse_tddft_options["nc_bse"],
516+
npsi_bse=self.bse_tddft_options["npsi_bse"],
517+
nit_bse=self.bse_tddft_options["nit_bse"],
525518
symbols="\n".join(symbols),
526519
geometry="\n".join(geometry),
527520
)
@@ -540,9 +533,9 @@ def as_dict(self):
540533
"mol": self._mol.as_dict(),
541534
"correlation_grid": self.correlation_grid,
542535
"Exc_DFT_option": self.Exc_DFT_option,
543-
"COHSEX_options": self.COHSEX_options,
536+
"COHSEX_options": self.cohsex_options,
544537
"GW_options": self.GW_options,
545-
"BSE_TDDFT_options": self.BSE_TDDFT_options,
538+
"BSE_TDDFT_options": self.bse_tddft_options,
546539
}
547540

548541
@classmethod
@@ -696,10 +689,10 @@ def from_str(cls, string_input):
696689
return FiestaInput(
697690
mol=mol,
698691
correlation_grid=correlation_grid,
699-
Exc_DFT_option=Exc_DFT_option,
700-
COHSEX_options=COHSEX_options,
701-
GW_options=GW_options,
702-
BSE_TDDFT_options=BSE_TDDFT_options,
692+
exc_dft_option=Exc_DFT_option,
693+
cohsex_options=COHSEX_options,
694+
gw_options=GW_options,
695+
bse_tddft_options=BSE_TDDFT_options,
703696
)
704697

705698
@classmethod

tests/analysis/diffraction/test_tem.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,12 @@ def test_electron_scattering_factors(self):
144144
spacings_nacl = tem_calc.get_interplanar_spacings(nacl, point_nacl)
145145
angles = tem_calc.bragg_angles(spacings)
146146
angles_nacl = tem_calc.bragg_angles(spacings_nacl)
147-
elscatt = tem_calc.electron_scattering_factors(cubic, angles)
148-
elscatt_nacl = tem_calc.electron_scattering_factors(nacl, angles_nacl)
149-
assert elscatt["Cs"][(2, 1, 3)] == approx(2.848, rel=1e-3)
150-
assert elscatt["Cl"][(2, 1, 3)] == approx(1.1305, rel=1e-3)
151-
assert elscatt_nacl["Na"][(4, 2, 0)] == approx(0.8352, rel=1e-3)
152-
assert elscatt_nacl["Cl"][(4, 2, 0)] == approx(1.3673, rel=1e-3)
147+
el_scatt = tem_calc.electron_scattering_factors(cubic, angles)
148+
el_scatt_nacl = tem_calc.electron_scattering_factors(nacl, angles_nacl)
149+
assert el_scatt["Cs"][(2, 1, 3)] == approx(2.848, rel=1e-3)
150+
assert el_scatt["Cl"][(2, 1, 3)] == approx(1.1305, rel=1e-3)
151+
assert el_scatt_nacl["Na"][(4, 2, 0)] == approx(0.8352, rel=1e-3)
152+
assert el_scatt_nacl["Cl"][(4, 2, 0)] == approx(1.3673, rel=1e-3)
153153

154154
def test_cell_scattering_factors(self):
155155
# Test that fcc structure gives 0 intensity for mixed even, odd hkl.
@@ -158,8 +158,8 @@ def test_cell_scattering_factors(self):
158158
point = [(2, 1, 0)]
159159
spacings = tem_calc.get_interplanar_spacings(nacl, point)
160160
angles = tem_calc.bragg_angles(spacings)
161-
cellscatt = tem_calc.cell_scattering_factors(nacl, angles)
162-
assert cellscatt[(2, 1, 0)] == approx(0)
161+
cell_scatt = tem_calc.cell_scattering_factors(nacl, angles)
162+
assert cell_scatt[(2, 1, 0)] == approx(0)
163163

164164
def test_cell_intensity(self):
165165
# Test that bcc structure gives lower intensity for h + k + l != even.
@@ -172,9 +172,9 @@ def test_cell_intensity(self):
172172
spacings2 = tem_calc.get_interplanar_spacings(cubic, point2)
173173
angles = tem_calc.bragg_angles(spacings)
174174
angles2 = tem_calc.bragg_angles(spacings2)
175-
cellint = tem_calc.cell_intensity(cubic, angles)
176-
cellint2 = tem_calc.cell_intensity(cubic, angles2)
177-
assert cellint2[(2, 2, 0)] > cellint[(2, 1, 0)]
175+
cell_int = tem_calc.cell_intensity(cubic, angles)
176+
cell_int2 = tem_calc.cell_intensity(cubic, angles2)
177+
assert cell_int2[(2, 2, 0)] > cell_int[(2, 1, 0)]
178178

179179
def test_normalized_cell_intensity(self):
180180
# Test that the method correctly normalizes a value.
@@ -184,8 +184,8 @@ def test_normalized_cell_intensity(self):
184184
point = [(2, 0, 0)]
185185
spacings = tem_calc.get_interplanar_spacings(cubic, point)
186186
angles = tem_calc.bragg_angles(spacings)
187-
cellint = tem_calc.normalized_cell_intensity(cubic, angles)
188-
assert cellint[(2, 0, 0)] == approx(1)
187+
cell_int = tem_calc.normalized_cell_intensity(cubic, angles)
188+
assert cell_int[(2, 0, 0)] == approx(1)
189189

190190
def test_is_parallel(self):
191191
tem_calc = TEMCalculator()

tests/io/test_fiesta.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ def setUp(self):
1818
]
1919
self.coords = coords
2020
mol = Molecule(["C", "H", "H", "H", "H"], coords)
21-
self.cellin = FiestaInput(
21+
self.cell_in = FiestaInput(
2222
mol,
2323
correlation_grid={"dE_grid": "0.500", "n_grid": "14"},
24-
Exc_DFT_option={"rdVxcpsi": "1"},
25-
COHSEX_options={
24+
exc_dft_option={"rdVxcpsi": "1"},
25+
cohsex_options={
2626
"eigMethod": "C",
2727
"mix_cohsex": "0.500",
2828
"nc_cohsex": "0",
@@ -31,8 +31,8 @@ def setUp(self):
3131
"resMethod": "V",
3232
"scf_cohsex_wf": "0",
3333
},
34-
GW_options={"nc_corr": "10", "nit_gw": "3", "nv_corr": "10"},
35-
BSE_TDDFT_options={
34+
gw_options={"nc_corr": "10", "nit_gw": "3", "nv_corr": "10"},
35+
bse_tddft_options={
3636
"do_bse": "1",
3737
"do_tddft": "0",
3838
"nc_bse": "382",
@@ -44,8 +44,8 @@ def setUp(self):
4444

4545
def test_init(self):
4646
mol = Molecule(["C", "H", "H", "H", "H"], self.coords)
47-
cellin = FiestaInput(mol)
48-
assert cellin.molecule.spin_multiplicity == 1
47+
cell_in = FiestaInput(mol)
48+
assert cell_in.molecule.spin_multiplicity == 1
4949

5050
def test_str_and_from_string(self):
5151
ans = (
@@ -63,18 +63,18 @@ def test_str_and_from_string(self):
6363
" 0.0 0.0 1.089 2\n 1.026719 0.0 -0.363 2\n -0.51336 -0.889165 -0.363 2\n -0.51336 0.889165 -0.363 2"
6464
"\n "
6565
)
66-
assert str(self.cellin) == ans
67-
cellin = FiestaInput.from_str(ans)
68-
assert cellin.GW_options["nc_corr"] == "10"
69-
assert cellin.COHSEX_options["eigMethod"] == "C"
66+
assert str(self.cell_in) == ans
67+
cell_in = FiestaInput.from_str(ans)
68+
assert cell_in.GW_options["nc_corr"] == "10"
69+
assert cell_in.cohsex_options["eigMethod"] == "C"
7070

7171

7272
class TestFiestaOutput(unittest.TestCase):
7373
def setUp(self):
74-
self.logfiesta = FiestaOutput(f"{TEST_FILES_DIR}/log_fiesta")
74+
self.log_fiesta = FiestaOutput(f"{TEST_FILES_DIR}/log_fiesta")
7575

7676
def test_props(self):
77-
out = self.logfiesta
77+
out = self.log_fiesta
7878
assert out.data[0]["Gaps"]["Egap_QP_Linear"] == "10.4135"
7979
assert out.data[0]["HOMO"] == {
8080
"band": "HOMO",

0 commit comments

Comments
 (0)