Skip to content

Commit 0a0dcb3

Browse files
committed
u
1 parent 5ad52f3 commit 0a0dcb3

File tree

2 files changed

+27
-83
lines changed

2 files changed

+27
-83
lines changed

dpgen/data/gen.py

Lines changed: 18 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,7 @@ def stru_ele(supercell_stru, stru_out, eles, natoms, jdata, path_work):
167167
os.path.join(path_work, orb_file_names[ipp]),
168168
)
169169
if "dpks_descriptor" in jdata:
170-
os.symlink(
171-
absolute_dpks_descriptor_path, os.path.join(path_work, dpks_descriptor_name)
172-
)
170+
os.symlink(absolute_dpks_descriptor_path, os.path.join(path_work, dpks_descriptor_name))
173171

174172

175173
def poscar_natoms(lines):
@@ -255,9 +253,7 @@ def poscar_scale_abacus(poscar_in, poscar_out, scale, jdata):
255253
orb_file_names = [os.path.basename(a) for a in jdata["orb_files"]]
256254
if "dpks_descriptor" in jdata:
257255
dpks_descriptor_name = os.path.basename(jdata["dpks_descriptor"])
258-
ret = make_abacus_scf_stru(
259-
stru, pp_files, orb_file_names, dpks_descriptor_name, type_map=jdata["elements"]
260-
)
256+
ret = make_abacus_scf_stru(stru, pp_files, orb_file_names, dpks_descriptor_name, type_map=jdata["elements"])
261257
# ret = make_abacus_scf_stru(stru, pp_files)
262258
with open(poscar_out, "w") as fp:
263259
fp.write(ret)
@@ -572,9 +568,7 @@ def make_vasp_relax(jdata, mdata):
572568

573569
def make_abacus_relax(jdata, mdata):
574570
relax_incar = jdata["relax_incar"]
575-
standard_incar = get_abacus_input_parameters(
576-
relax_incar
577-
) # a dictionary in which all of the values are strings
571+
standard_incar = get_abacus_input_parameters(relax_incar) # a dictionary in which all of the values are strings
578572
if "kspacing" not in standard_incar:
579573
if "gamma_only" in standard_incar:
580574
if isinstance(standard_incar["gamma_only"], str):
@@ -584,9 +578,7 @@ def make_abacus_relax(jdata, mdata):
584578
raise RuntimeError("Cannot find any k-points information.")
585579
else:
586580
relax_kpt_path = jdata["relax_kpt"]
587-
assert os.path.isfile(
588-
relax_kpt_path
589-
), f"file {relax_kpt_path} should exists"
581+
assert os.path.isfile(relax_kpt_path), f"file {relax_kpt_path} should exists"
590582
else:
591583
gamma_param = {"k_points": [1, 1, 1, 0, 0, 0]}
592584
ret_kpt = make_abacus_scf_kpt(gamma_param)
@@ -595,9 +587,7 @@ def make_abacus_relax(jdata, mdata):
595587
raise RuntimeError("Cannot find any k-points information.")
596588
else:
597589
relax_kpt_path = jdata["relax_kpt"]
598-
assert os.path.isfile(
599-
relax_kpt_path
600-
), f"file {relax_kpt_path} should exists"
590+
assert os.path.isfile(relax_kpt_path), f"file {relax_kpt_path} should exists"
601591

602592
out_dir = jdata["out_dir"]
603593
cwd = os.getcwd()
@@ -675,9 +665,7 @@ def make_scale(jdata):
675665
else:
676666
pos_src = os.path.join(os.path.join(init_path, ii), "CONTCAR")
677667
if not os.path.isfile(pos_src):
678-
raise RuntimeError(
679-
f"file {pos_src} not found, vasp relaxation should be run before scale poscar"
680-
)
668+
raise RuntimeError(f"file {pos_src} not found, vasp relaxation should be run before scale poscar")
681669
scale_path = os.path.join(work_path, ii)
682670
scale_path = os.path.join(scale_path, f"scale-{jj:.3f}")
683671
create_path(scale_path)
@@ -763,13 +751,8 @@ def pert_scaled(jdata):
763751
fp_style = "abacus"
764752
poscar_name = "STRU"
765753

766-
python_exec = os.path.join(
767-
os.path.dirname(__file__), "tools", "create_random_disturb.py"
768-
)
769-
pert_cmd = (
770-
sys.executable
771-
+ f" {python_exec} -etmax {pert_box} -ofmt {fp_style} {poscar_name} {pert_numb} {pert_atom} > /dev/null"
772-
)
754+
python_exec = os.path.join(os.path.dirname(__file__), "tools", "create_random_disturb.py")
755+
pert_cmd = f"{sys.executable} {python_exec} -etmax {pert_box} -ofmt {fp_style} {poscar_name} {pert_numb} {pert_atom} > /dev/null"
773756

774757
### Loop over each system and scale
775758
for ii in sys_pe:
@@ -917,9 +900,7 @@ def make_vasp_md(jdata, mdata):
917900

918901
def make_abacus_md(jdata, mdata):
919902
md_incar = jdata["md_incar"]
920-
standard_incar = get_abacus_input_parameters(
921-
md_incar
922-
) # a dictionary in which all of the values are strings
903+
standard_incar = get_abacus_input_parameters(md_incar) # a dictionary in which all of the values are strings
923904
# assert("md_kpt" in jdata or "kspacing" in standard_incar or "gamma_only" in standard_incar) \
924905
# "Cannot find any k-points information."
925906
if "kspacing" not in standard_incar:
@@ -931,9 +912,7 @@ def make_abacus_md(jdata, mdata):
931912
raise RuntimeError("Cannot find any k-points information.")
932913
else:
933914
md_kpt_path = jdata["md_kpt"]
934-
assert os.path.isfile(
935-
md_kpt_path
936-
), f"file {md_kpt_path} should exists"
915+
assert os.path.isfile(md_kpt_path), f"file {md_kpt_path} should exists"
937916
else:
938917
ret_kpt = make_abacus_scf_kpt({"k_points": [1, 1, 1, 0, 0, 0]})
939918
else:
@@ -981,9 +960,7 @@ def make_abacus_md(jdata, mdata):
981960
if "dpks_descriptor" in jdata:
982961
dpks_descriptor_name = os.path.basename(jdata["dpks_descriptor"])
983962
dpks_descriptor_abspath = os.path.abspath(jdata["dpks_descriptor"])
984-
shutil.copy2(
985-
dpks_descriptor_abspath, os.path.join(path_md, dpks_descriptor_name)
986-
)
963+
shutil.copy2(dpks_descriptor_abspath, os.path.join(path_md, dpks_descriptor_name))
987964
if "dpks_model" in jdata:
988965
dpks_model_name = os.path.basename(jdata["dpks_model"])
989966
dpks_model_abspath = os.path.abspath(jdata["dpks_model"])
@@ -1019,9 +996,7 @@ def make_abacus_md(jdata, mdata):
1019996
pass
1020997
try:
1021998
for pp_file in [os.path.basename(a) for a in jdata["potcars"]]:
1022-
os.symlink(
1023-
os.path.relpath(os.path.join(path_md, pp_file)), pp_file
1024-
)
999+
os.symlink(os.path.relpath(os.path.join(path_md, pp_file)), pp_file)
10251000
if "orb_files" in jdata:
10261001
for orb_file in orb_file_names:
10271002
os.symlink(
@@ -1035,9 +1010,7 @@ def make_abacus_md(jdata, mdata):
10351010
)
10361011
if "dpks_descriptor" in jdata:
10371012
os.symlink(
1038-
os.path.relpath(
1039-
os.path.join(path_md, dpks_descriptor_name)
1040-
),
1013+
os.path.relpath(os.path.join(path_md, dpks_descriptor_name)),
10411014
dpks_descriptor_name,
10421015
)
10431016
except FileExistsError:
@@ -1222,9 +1195,7 @@ def coll_abacus_md(jdata):
12221195
)
12231196
)
12241197
else:
1225-
dlog.info(
1226-
f"WARNING : in directory {os.getcwd()} NO running_md.log file found."
1227-
)
1198+
dlog.info(f"WARNING : in directory {os.getcwd()} NO running_md.log file found.")
12281199
arg_cvt = " "
12291200
if len(valid_outcars) == 0:
12301201
raise RuntimeError(
@@ -1276,9 +1247,7 @@ def run_abacus_relax(jdata, mdata):
12761247
if "dpks_model" in jdata:
12771248
dpks_model_name = [os.path.basename(jdata["dpks_model"])]
12781249
relax_incar = jdata["relax_incar"]
1279-
standard_incar = get_abacus_input_parameters(
1280-
relax_incar
1281-
) # a dictionary in which all of the values are strings
1250+
standard_incar = get_abacus_input_parameters(relax_incar) # a dictionary in which all of the values are strings
12821251
forward_files = ["STRU", "INPUT"]
12831252
if "kspacing" not in standard_incar:
12841253
forward_files = ["STRU", "INPUT", "KPT"]
@@ -1398,9 +1367,7 @@ def run_abacus_md(jdata, mdata):
13981367
if "dpks_model" in jdata:
13991368
dpks_model_name = [os.path.basename(jdata["dpks_model"])]
14001369
md_incar = jdata["md_incar"]
1401-
standard_incar = get_abacus_input_parameters(
1402-
md_incar
1403-
) # a dictionary in which all of the values are strings
1370+
standard_incar = get_abacus_input_parameters(md_incar) # a dictionary in which all of the values are strings
14041371
forward_files = ["STRU", "INPUT"]
14051372
if "kspacing" not in standard_incar:
14061373
forward_files = ["STRU", "INPUT", "KPT"]
@@ -1492,9 +1459,7 @@ def gen_init_bulk(args):
14921459
nsw_steps = int(standard_incar["md_nstep"])
14931460
if nsw_flag:
14941461
if nsw_steps != md_nstep_jdata:
1495-
dlog.info(
1496-
"WARNING: your set-up for MD steps in PARAM and md_incar are not consistent!"
1497-
)
1462+
dlog.info("WARNING: your set-up for MD steps in PARAM and md_incar are not consistent!")
14981463
dlog.info("MD steps in PARAM is %d" % (md_nstep_jdata))
14991464
dlog.info("MD steps in md_incar is %d" % (nsw_steps))
15001465
dlog.info("DP-GEN will use settings in md_incar!")
@@ -1575,9 +1540,7 @@ def gen_init_bulk(args):
15751540

15761541

15771542
if __name__ == "__main__":
1578-
parser = argparse.ArgumentParser(
1579-
description="Generating initial data for bulk systems."
1580-
)
1543+
parser = argparse.ArgumentParser(description="Generating initial data for bulk systems.")
15811544
parser.add_argument("PARAM", type=str, help="parameter file, json/yaml format")
15821545
parser.add_argument(
15831546
"MACHINE",

dpgen/data/surf.py

Lines changed: 9 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -182,9 +182,7 @@ def poscar_elong(poscar_in, poscar_out, elong, shift_center=True):
182182
z_mean = cart_coords[:, 2].mean()
183183
z_shift = st.lattice.c / 2 - z_mean
184184
cart_coords[:, 2] = cart_coords[:, 2] + z_shift
185-
nst = Structure(
186-
st.lattice, st.species, coords=cart_coords, coords_are_cartesian=True
187-
)
185+
nst = Structure(st.lattice, st.species, coords=cart_coords, coords_are_cartesian=True)
188186
nst.to(poscar_out, "poscar")
189187
else:
190188
with open(poscar_out, "w") as fout:
@@ -265,15 +263,11 @@ def make_super_cell_pymatgen(jdata):
265263
os.chdir(path_cur_surf)
266264
# slabgen = SlabGenerator(ss, miller, z_min, 1e-3)
267265
if user_layer_numb:
268-
slab = general_surface.surface(
269-
ss, indices=miller, vacuum=vacuum_min, layers=user_layer_numb
270-
)
266+
slab = general_surface.surface(ss, indices=miller, vacuum=vacuum_min, layers=user_layer_numb)
271267
else:
272268
# build slab according to z_min value
273269
for layer_numb in range(1, max_layer_numb + 1):
274-
slab = general_surface.surface(
275-
ss, indices=miller, vacuum=vacuum_min, layers=layer_numb
276-
)
270+
slab = general_surface.surface(ss, indices=miller, vacuum=vacuum_min, layers=layer_numb)
277271
if slab.cell.lengths()[-1] >= z_min:
278272
break
279273
if layer_numb == max_layer_numb:
@@ -446,9 +440,7 @@ def make_scale(jdata):
446440
else:
447441
pos_src = os.path.join(os.path.join(init_path, ii), "CONTCAR")
448442
if not os.path.isfile(pos_src):
449-
raise RuntimeError(
450-
f"file {pos_src} not found, vasp relaxation should be run before scale poscar"
451-
)
443+
raise RuntimeError(f"file {pos_src} not found, vasp relaxation should be run before scale poscar")
452444
scale_path = os.path.join(work_path, ii)
453445
scale_path = os.path.join(scale_path, f"scale-{jj:.3f}")
454446
create_path(scale_path)
@@ -470,9 +462,7 @@ def pert_scaled(jdata):
470462
elongs = np.arange(vacuum_resol[0], vacuum_max, vacuum_resol[0])
471463
elif len(vacuum_resol) == 2:
472464
mid_point = jdata.get("mid_point")
473-
head_elongs = np.arange(
474-
vacuum_resol[0], mid_point, vacuum_resol[0]
475-
).tolist()
465+
head_elongs = np.arange(vacuum_resol[0], mid_point, vacuum_resol[0]).tolist()
476466
tail_elongs = np.arange(mid_point, vacuum_max, vacuum_resol[1]).tolist()
477467
elongs = np.unique(head_elongs + tail_elongs).tolist()
478468
else:
@@ -502,13 +492,8 @@ def pert_scaled(jdata):
502492
os.chdir(cwd)
503493

504494
### Construct the perturbation command
505-
python_exec = os.path.join(
506-
os.path.dirname(__file__), "tools", "create_random_disturb.py"
507-
)
508-
pert_cmd = (
509-
sys.executable
510-
+ f" {python_exec} -etmax {pert_box} -ofmt vasp POSCAR {pert_numb} {pert_atom} > /dev/null"
511-
)
495+
python_exec = os.path.join(os.path.dirname(__file__), "tools", "create_random_disturb.py")
496+
pert_cmd = f"{sys.executable} {python_exec} -etmax {pert_box} -ofmt vasp POSCAR {pert_numb} {pert_atom} > /dev/null"
512497

513498
### Loop over each system and scale
514499
for ii in sys_pe:
@@ -571,9 +556,7 @@ def run_vasp_relax(jdata, mdata):
571556
work_path_list = glob.glob(os.path.join(work_dir, "surf-*"))
572557
task_format = {"fp": "sys-*"}
573558
for work_path in work_path_list:
574-
symlink_user_forward_files(
575-
mdata=mdata, task_type="fp", work_path=work_path, task_format=task_format
576-
)
559+
symlink_user_forward_files(mdata=mdata, task_type="fp", work_path=work_path, task_format=task_format)
577560
user_forward_files = mdata.get("fp" + "_user_forward_files", [])
578561
forward_files += [os.path.basename(file) for file in user_forward_files]
579562
backward_files += mdata.get("fp" + "_user_backward_files", [])
@@ -639,9 +622,7 @@ def gen_init_surf(args):
639622

640623

641624
if __name__ == "__main__":
642-
parser = argparse.ArgumentParser(
643-
description="Generating initial data for surface systems."
644-
)
625+
parser = argparse.ArgumentParser(description="Generating initial data for surface systems.")
645626
parser.add_argument("PARAM", type=str, help="parameter file, json/yaml format")
646627
parser.add_argument(
647628
"MACHINE",

0 commit comments

Comments
 (0)