diff --git a/dpgen/generator/lib/abacus_pw_scf.py b/dpgen/generator/lib/abacus_pw_scf.py new file mode 100644 index 000000000..5db58cc10 --- /dev/null +++ b/dpgen/generator/lib/abacus_pw_scf.py @@ -0,0 +1,95 @@ +import numpy as np +bohr2ang = 0.52917721067 +def make_abacus_pw_scf_kpt(fp_params): + # Make KPT file for abacus pw scf calculation. + # KPT file is the file containing k points infomation in ABACUS scf calculation. + k_points = [1, 1, 1, 0, 0, 0] + if "k_points" in fp_params: + k_points = fp_params["k_points"] + if len(k_points) != 6: + raise RuntimeError("k_points has to be a list containig 6 integers specifying MP k points generation.") + ret = "K_POINTS\n0\nGamma\n" + for i in range(6): + ret += str(k_points[i]) + " " + return ret + +def make_abacus_pw_scf_input(fp_params): + # Make INPUT file for abacus pw scf calculation. + ret = "INPUT_PARAMETERS\n" + assert(fp_params['ntype'] >= 0 and type(fp_params["ntype"]) == int) + ret += "ntype %d\n" % fp_params['ntype'] + ret += "pseudo_dir ./\n" + if "ecutwfc" in fp_params: + assert(fp_params["ecutwfc"] >= 0) + ret += "ecutwfc %f\n" % fp_params["ecutwfc"] + if "mixing_type" in fp_params: + assert(fp_params["mixing_type"] in ["plain", "kerker", "pulay", "pulay-kerker", "broyden"]) + ret += "mixing_type %s\n" % fp_params["mixing_type"] + if "mixing_beta" in fp_params: + assert(fp_params["mixing_beta"] >= 0 and fp_params["mixing_beta"] < 1) + ret += "mixing_beta %f\n" % fp_params["mixing_beta"] + if "symmetry" in fp_params: + assert(fp_params["symmetry"] == 0 or fp_params["symmetry"] == 1) + ret += "symmetry %d\n" % fp_params["symmetry"] + if "nbands" in fp_params: + assert(fp_params["nbands"] > 0 and type(fp_params["nbands"]) == int) + ret += "nbands %f\n" % fp_params["nbands"] + if "nspin" in fp_params: + assert(fp_params["nspin"] == 1 or fp_params["nspin"] == 2 or fp_params["nspin"] == 4) + ret += "nspin %d\n" % fp_params["nspin"] + if "ks_solver" in fp_params: + assert(fp_params["ks_solver"] in ["cg", "dav", "lapack", "genelpa", "hpseps", "scalapack_gvx"]) + ret += "ks_solver %s\n" % fp_params["ks_solver"] + if "smearing" in fp_params: + assert(fp_params["smearing"] in ["gauss", "fd", "fixed", "mp", "mp2", "mv"]) + ret += "smearing %s\n" % fp_params["smearing"] + if "sigma" in fp_params: + assert(fp_params["sigma"] >= 0) + ret += "sigma %f\n" % fp_params["sigma"] + ret += "force 1\nstress 1\n" + return ret + +def make_abacus_pw_scf_stru(sys_data, fp_pp_files): + atom_names = sys_data['atom_names'] + atom_numbs = sys_data['atom_numbs'] + assert(len(atom_names) == len(fp_pp_files)) + assert(len(atom_names) == len(atom_numbs)) + cell = sys_data["cells"][0].reshape([3, 3]) + coord = sys_data['coords'][0] + #volume = np.linalg.det(cell) + #lattice_const = np.power(volume, 1/3) + lattice_const = 1/bohr2ang # in Bohr, in this way coord and cell are in Angstrom + + ret = "ATOMIC_SPECIES\n" + for iatom in range(len(atom_names)): + ret += atom_names[iatom] + " 1.00 " + fp_pp_files[iatom] + "\n" + + ret += "\nLATTICE_CONSTANT\n" + ret += str(lattice_const) + "\n\n" + + ret += "LATTICE_VECTORS\n" + for ix in range(3): + for iy in range(3): + ret += str(cell[ix][iy]) + " " + ret += "\n" + ret += "\n" + + ret += "ATOMIC_POSITIONS\n" + ret += "Cartesian # Cartesian(Unit is LATTICE_CONSTANT)\n" + natom_tot = 0 + for iele in range(len(atom_names)): + ret += atom_names[iele] + "\n" + ret += "0.0\n" + ret += str(atom_numbs[iele]) + "\n" + for iatom in range(atom_numbs[iele]): + ret += "%.12f %.12f %.12f %d %d %d\n" % (coord[natom_tot, 0], coord[natom_tot, 1], coord[natom_tot, 2], 0, 0, 0) + natom_tot += 1 + assert(natom_tot == sum(atom_numbs)) + + return ret + + +if __name__ == "__main__": + fp_params = {"k_points": [1, 1, 1, 0, 0, 0]} + ret = make_abacus_pw_scf_kpt(fp_params) + print(ret) \ No newline at end of file diff --git a/dpgen/generator/run.py b/dpgen/generator/run.py index a53bbc90f..be48debb6 100644 --- a/dpgen/generator/run.py +++ b/dpgen/generator/run.py @@ -43,6 +43,7 @@ from dpgen.generator.lib.vasp import make_vasp_incar_user_dict from dpgen.generator.lib.vasp import incar_upper from dpgen.generator.lib.pwscf import make_pwscf_input +from dpgen.generator.lib.abacus_pw_scf import make_abacus_pw_scf_stru, make_abacus_pw_scf_input, make_abacus_pw_scf_kpt #from dpgen.generator.lib.pwscf import cvt_1frame from dpgen.generator.lib.pwmat import make_pwmat_input_dict from dpgen.generator.lib.pwmat import write_input_dict @@ -1795,6 +1796,41 @@ def make_fp_pwscf(iter_index, # link pp files _link_fp_vasp_pp(iter_index, jdata) +def make_fp_abacus_pw_scf(iter_index, + jdata) : + # make config + fp_tasks = _make_fp_vasp_configs(iter_index, jdata) + if len(fp_tasks) == 0 : + return + # make abacus/pw/scf input + iter_name = make_iter_name(iter_index) + work_path = os.path.join(iter_name, fp_name) + fp_pp_files = jdata['fp_pp_files'] + if 'user_fp_params' in jdata.keys() : + fp_params = jdata['user_fp_params'] + #user_input = True + else: + raise RuntimeError("Key 'user_fp_params' and its value have to be specified in parameter json file.") + cwd = os.getcwd() + for ii in fp_tasks: + os.chdir(ii) + sys_data = dpdata.System('POSCAR').data + if 'mass_map' in jdata: + sys_data['atom_masses'] = jdata['mass_map'] + ret_input = make_abacus_pw_scf_input(fp_params) + with open('INPUT', 'w') as fp: + fp.write(ret_input) + ret_kpt = make_abacus_pw_scf_kpt(fp_params) + with open("KPT", "w") as fp: + fp.write(ret_kpt) + ret_stru = make_abacus_pw_scf_stru(sys_data, fp_pp_files) + with open("STRU", "w") as fp: + fp.write(ret_stru) + + os.chdir(cwd) + # link pp files + _link_fp_vasp_pp(iter_index, jdata) + def make_fp_siesta(iter_index, jdata) : @@ -1918,6 +1954,8 @@ def make_fp (iter_index, make_fp_vasp(iter_index, jdata) elif fp_style == "pwscf" : make_fp_pwscf(iter_index, jdata) + elif fp_style == "abacus/scf" : + make_fp_abacus_pw_scf(iter_index, jdata) elif fp_style == "siesta" : make_fp_siesta(iter_index, jdata) elif fp_style == "gaussian" : @@ -1951,6 +1989,16 @@ def _qe_check_fin(ii) : return False return True +def _abacus_pw_scf_check_fin(ii) : + if os.path.isfile(os.path.join(ii, 'OUT.ABACUS/running_scf.log')) : + with open(os.path.join(ii, 'OUT.ABACUS/running_scf.log'), 'r') as fp : + content = fp.read() + count = content.count('!FINAL_ETOT_IS') + if count != 1 : + return False + else : + return False + return True def _siesta_check_fin(ii) : if os.path.isfile(os.path.join(ii, 'output')) : @@ -2061,6 +2109,10 @@ def run_fp (iter_index, forward_files = ['input'] + fp_pp_files backward_files = ['output'] run_fp_inner(iter_index, jdata, mdata, forward_files, backward_files, _qe_check_fin, log_file = 'output') + elif fp_style == "abacus/scf": + forward_files = ["INPUT", "STRU", "KPT"] + fp_pp_files + backward_files = ["output", "OUT.ABACUS"] + run_fp_inner(iter_index, jdata, mdata, forward_files, backward_files, _abacus_pw_scf_check_fin, log_file = 'output') elif fp_style == "siesta": forward_files = ['input'] + fp_pp_files backward_files = ['output'] @@ -2235,6 +2287,51 @@ def post_fp_pwscf (iter_index, all_sys.to_deepmd_raw(sys_data_path) all_sys.to_deepmd_npy(sys_data_path, set_size = len(sys_output)) +def post_fp_abacus_pw_scf (iter_index, + jdata): + model_devi_jobs = jdata['model_devi_jobs'] + assert (iter_index < len(model_devi_jobs)) + + iter_name = make_iter_name(iter_index) + work_path = os.path.join(iter_name, fp_name) + fp_tasks = glob.glob(os.path.join(work_path, 'task.*')) + fp_tasks.sort() + if len(fp_tasks) == 0 : + return + + system_index = [] + for ii in fp_tasks : + system_index.append(os.path.basename(ii).split('.')[1]) + system_index.sort() + set_tmp = set(system_index) + system_index = list(set_tmp) + system_index.sort() + + cwd = os.getcwd() + for ss in system_index : + sys_output = glob.glob(os.path.join(work_path, "task.%s.*"%ss)) + sys_input = glob.glob(os.path.join(work_path, "task.%s.*/INPUT"%ss)) + sys_output.sort() + sys_input.sort() + + flag=True + for ii,oo in zip(sys_input,sys_output) : + if flag: + _sys = dpdata.LabeledSystem(oo, fmt = 'abacus/scf', type_map = jdata['type_map']) + if len(_sys)>0: + all_sys=_sys + flag=False + else: + pass + else: + _sys = dpdata.LabeledSystem(oo, fmt = 'abacus/scf', type_map = jdata['type_map']) + if len(_sys)>0: + all_sys.append(_sys) + + sys_data_path = os.path.join(work_path, 'data.%s'%ss) + all_sys.to_deepmd_raw(sys_data_path) + all_sys.to_deepmd_npy(sys_data_path, set_size = len(sys_output)) + def post_fp_siesta (iter_index, jdata): model_devi_jobs = jdata['model_devi_jobs'] @@ -2424,6 +2521,8 @@ def post_fp (iter_index, post_fp_vasp(iter_index, jdata) elif fp_style == "pwscf" : post_fp_pwscf(iter_index, jdata) + elif fp_style == "abacus/scf": + post_fp_abacus_pw_scf(iter_index, jdata) elif fp_style == "siesta": post_fp_siesta(iter_index, jdata) elif fp_style == 'gaussian' : diff --git a/dpgen/tools/relabel.py b/dpgen/tools/relabel.py index 3cc3627f6..4b9cc3499 100755 --- a/dpgen/tools/relabel.py +++ b/dpgen/tools/relabel.py @@ -202,7 +202,7 @@ def create_tasks(target_folder, param_file, output, fp_json, verbose = True, num copy_pp_files(output, fp_pp_path, fp_pp_files) make_vasp_incar(fp_params, output) if fp_style == 'pwscf' : - copy_pp_files(output, fp_pp_path, fp_pp_files) + copy_pp_files(output, fp_pp_path, fp_pp_files) if fp_style == 'siesta' : copy_pp_files(output, fp_pp_path, fp_pp_files) for si in range(numb_sys) : diff --git a/examples/run/dp1.x-lammps-ABACUS-pw/methane/machine.json b/examples/run/dp1.x-lammps-ABACUS-pw/methane/machine.json new file mode 100644 index 000000000..292d05e3b --- /dev/null +++ b/examples/run/dp1.x-lammps-ABACUS-pw/methane/machine.json @@ -0,0 +1,88 @@ +{ + "train":[ + { + "machine":{ + "machine_type": "slurm", + "host_name": "localhost", + "port": 22, + "username": "", + "work_path": "/home/mhchen_pkuhpc/mhchen_cls/lustre2/5_liurenxi/5_ABACUS_dpgen_interface/5_dpgen_examples/dpgen-example/run_abacus" + }, + + "resources":{ + "numb_node": 1, + "numb_gpu": 1, + "task_per_node": 1, + "partition": "", + "exclude_list": [], + "mem_limit": 0, + "source_list": ["/home/mhchen_pkuhpc/mhchen_cls/lustre2/5_liurenxi/5_ABACUS_dpgen_interface/env.sh"], + "module_list": [], + "time_limit": "23:0:0", + "account":"", + "qos": "" + }, + "python_path": "/home/mhchen_pkuhpc/mhchen_cls/lustre2/5_liurenxi/5_dpgen_interface/4_deepmd-kit/dpmd_install/bin/python" + } + ], +"model_devi": [ + { + "machine": { + "machine_type": "slurm", + "hostname": "localhost", + "port": 22, + "username": "", + "work_path": "/home/mhchen_pkuhpc/mhchen_cls/lustre2/5_liurenxi/5_ABACUS_dpgen_interface/5_dpgen_examples/dpgen-example/run_abacus" + }, + "resources": { + "num_node": 1, + "num_gpu": 0, + "task_per_node": 2, + "partition": "cn-large", + "exclude_list": [], + "mem_limit": 0, + "source_list": ["/home/mhchen_pkuhpc/mhchen_cls/lustre2/5_liurenxi/5_ABACUS_dpgen_interface/env.sh"], + "module_list": [], + "time_limit": "14:00:00", + "account": "", + "qos": "", + "allow_failure":true + }, + "command": "mpirun -n 2 lmp", + "group_size": 6 + } +], +"fp": [ + { + "machine":{ + "machine_type": "slurm", + "hostname": "localhost", + "port": 22, + "username": "", + "work_path": "/home/mhchen_pkuhpc/mhchen_cls/lustre2/5_liurenxi/5_ABACUS_dpgen_interface/5_dpgen_examples/dpgen-example/run_abacus" + }, + "resources": { + "cvasp": false, + "numb_node": 1, + "partition": "cn-large", + "task_per_node": 4, + + "numb_gpu": 0, + "exclude_list": [], + "with_mpi": false, + "mem_limit": 0, + "source_list":[ + "/home/mhchen_pkuhpc/mhchen_cls/lustre2/5_liurenxi/5_ABACUS_dpgen_interface/env.sh" + ], + "module_list":[], + "time_limit": "48:0:0", + "account": "", + "qos": "", + "_comment": "that's all" + }, + "command": "mpirun -np 4 ABACUS.mpi.2.1.0", + "group_size": 150 + } + +] +} diff --git a/examples/run/dp1.x-lammps-ABACUS-pw/methane/param.json b/examples/run/dp1.x-lammps-ABACUS-pw/methane/param.json new file mode 100644 index 000000000..916a0c9fb --- /dev/null +++ b/examples/run/dp1.x-lammps-ABACUS-pw/methane/param.json @@ -0,0 +1,147 @@ +{ + "type_map": ["H", "C"], + "mass_map": [1.0, 12.0], + + "_comment": "initial data set for Training and the number of frames in each training batch", + "init_data_prefix": "/home/mhchen_pkuhpc/mhchen_cls/lustre2/5_liurenxi/5_ABACUS_dpgen_interface/5_dpgen_examples/dpgen-example/run_abacus/", + "init_data_sys": [ + "abacus_init_data" + ], + "init_batch_size": [ + 8 + ], + + "_comment": "configurations for starting MD in Exploration and batch sizes when traning snapshots derived from these configs (if they were selected)", + "sys_configs_prefix": "/home/mhchen_pkuhpc/mhchen_cls/lustre2/5_liurenxi/5_ABACUS_dpgen_interface/5_dpgen_examples/dpgen-example/run", + "sys_configs": [ + [ + "CH4.POSCAR.01x01x01/01.scale_pert/sys-0004-0001/scale-1.000/000000/POSCAR", + "CH4.POSCAR.01x01x01/01.scale_pert/sys-0004-0001/scale-1.000/000001/POSCAR", + "CH4.POSCAR.01x01x01/01.scale_pert/sys-0004-0001/scale-1.000/00000[2-9]/POSCAR" + ], + [ + "CH4.POSCAR.01x01x01/01.scale_pert/sys-0004-0001/scale-1.000/00001*/POSCAR" + ] + ], + "sys_batch_size": [ + 8, + 8 + ], + + "_comment": " 00.train ", + "numb_models": 4, + + "default_training_param": { + "model": { + "type_map": ["H","C"], + "descriptor": { + "type": "se_a", + "sel": [16,4], + "rcut_smth": 0.5, + "rcut": 5.0, + "neuron": [10,20,40], + "resnet_dt": false, + "axis_neuron": 12, + "seed": 0 + }, + "fitting_net": { + "neuron": [120,120,120], + "resnet_dt": true, + "coord_norm": true, + "type_fitting_net": false, + "seed": 0 + } + }, + "loss": { + "start_pref_e": 0.02, + "limit_pref_e": 2, + "start_pref_f": 1000, + "limit_pref_f": 1, + "start_pref_v": 0, + "limit_pref_v": 0 + }, + "learning_rate": { + "type": "exp", + "start_lr": 0.001, + "decay_steps": 180, + "decay_rate": 0.95 + }, + "training": { + "systems": [], + "set_prefix": "set", + "stop_batch": 36000, + "batch_size": 1, + "seed": 1, + "_comment": "frequencies counted in batch", + "disp_file": "lcurve.out", + "disp_freq": 1000, + "numb_test": 4, + "save_freq": 1000, + "save_ckpt": "model.ckpt", + "load_ckpt": "model.ckpt", + "disp_training": true, + "time_training": true, + "profiling": false, + "profiling_file": "timeline.json" + } + }, + + "_comment": " 01.model_devi ", + "model_devi_dt": 0.002, + "model_devi_skip": 0, + "model_devi_f_trust_lo": 0.05, + "model_devi_f_trust_hi": 0.15, + "model_devi_clean_traj": false, + "model_devi_jobs": [ + { + "sys_idx": [ + 0 + ], + "temps": [ + 50 + ], + "press": [ + 1 + ], + "trj_freq": 10, + "nsteps": 1000, + "ensemble": "nvt", + "_idx": "00" + }, + { + "sys_idx": [ + 1 + ], + "temps": [ + 50 + ], + "press": [ + 1 + ], + "trj_freq": 10, + "nsteps": 3000, + "ensemble": "nvt", + "_idx": "01" + } + ], + + "_comment": " 02.fp ", + "fp_style": "abacus/scf", + "shuffle_poscar": false, + "fp_task_max": 30, + "fp_task_min": 8, + "fp_pp_path": "/home/mhchen_pkuhpc/mhchen_cls/lustre2/5_liurenxi/5_ABACUS_dpgen_interface/SG15_ONCV_v1.0_upf", + "fp_pp_files": [ "H_ONCV_PBE-1.0.upf","C_ONCV_PBE-1.0.upf"], + "user_fp_params":{ + "ntype": 2, + "ecutwfc": 80, + "mixing_type": "pulay", + "mixing_beta": 0.4, + "symmetry": 1, + "nbands": 5, + "nspin": 1, + "ks_solver": "cg", + "smearing": "fixed", + "sigma": 0.001 + } +} diff --git a/tests/generator/context.py b/tests/generator/context.py index 3183e9440..c79920396 100644 --- a/tests/generator/context.py +++ b/tests/generator/context.py @@ -21,6 +21,8 @@ machine_file_v1 = 'machine-local-v1.json' param_diy_file = 'param-mg-vasp-diy.json' param_pwmat_file = 'param-pyridine-pwmat.json' +param_abacus_file = 'param-pyridine-abacus.json' +param_abacus_post_file = 'param-methane-abacus.json' def my_file_cmp(test, f0, f1): with open(f0) as fp0 : diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/data.000/box.raw b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/box.raw new file mode 100644 index 000000000..01d8995ec --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/box.raw @@ -0,0 +1,2 @@ +1.025655610217515346e+01 0.000000000000000000e+00 0.000000000000000000e+00 -2.453176520368934022e-01 9.812844512520625173e+00 0.000000000000000000e+00 -2.571030495450233877e-01 -3.012911137533678674e-01 9.829343206252350029e+00 +1.025655610217515346e+01 0.000000000000000000e+00 0.000000000000000000e+00 -2.453176520368934022e-01 9.812844512520625173e+00 0.000000000000000000e+00 -2.571030495450233877e-01 -3.012911137533678674e-01 9.829343206252350029e+00 diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/data.000/coord.raw b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/coord.raw new file mode 100644 index 000000000..c80e71221 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/coord.raw @@ -0,0 +1,2 @@ +5.347517871106284737e+00 4.132988354621125460e+00 3.424088636840314059e+00 4.009958403600426990e+00 5.010068005448031769e+00 4.173708338410142993e+00 5.589177774899359186e+00 5.082417976644874713e+00 4.866118062755765195e+00 4.705248126799496333e+00 3.519008599051845820e+00 4.886068054813499373e+00 4.922268040401967859e+00 4.472648219399557590e+00 4.376728257586134596e+00 +5.968697623809181785e+00 4.638388153417038140e+00 4.157528344851540325e+00 4.642988151585738521e+00 5.198057930607595800e+00 5.127907958534914101e+00 4.762218104119249062e+00 3.493178609334990803e+00 4.694188131202577274e+00 4.457588225395072712e+00 4.603488167311027723e+00 3.412468641466336106e+00 4.907298046361653121e+00 4.456928225657824427e+00 4.373228258979515282e+00 diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/data.000/energy.raw b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/energy.raw new file mode 100644 index 000000000..d7e762650 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/energy.raw @@ -0,0 +1,2 @@ +-2.197924465754728089e+02 +-2.197641367648340349e+02 diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/data.000/force.raw b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/force.raw new file mode 100644 index 000000000..1e42ae234 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/force.raw @@ -0,0 +1,2 @@ +7.607500000000000373e-02 3.334309999999999774e-01 -1.210559999999999969e-01 -4.998139999999999805e-01 1.840160000000000129e-01 -5.376000000000000223e-02 1.661246000000000000e+00 1.279636999999999913e+00 1.377318999999999960e+00 -5.203000000000000159e-03 4.784840000000000204e-01 3.535690000000000222e-01 -1.232302999999999926e+00 -2.275568999999999953e+00 -1.556071999999999900e+00 +1.613670000000000104e-01 -2.791150000000000020e-01 2.375379999999999991e-01 -4.386079999999999979e-01 1.208299999999999999e-02 -8.075300000000000533e-02 -3.543080000000000118e-01 -2.385815000000000019e+00 9.172599999999999643e-01 -8.628430000000000266e-01 2.835719999999999907e-01 -4.649679999999999924e-01 1.494391999999999943e+00 2.369276000000000160e+00 -6.090769999999999795e-01 diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/box.npy b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/box.npy new file mode 100644 index 000000000..5493f23dc Binary files /dev/null and b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/box.npy differ diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/coord.npy b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/coord.npy new file mode 100644 index 000000000..9ef5c3713 Binary files /dev/null and b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/coord.npy differ diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/energy.npy b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/energy.npy new file mode 100644 index 000000000..a9e9c21e5 Binary files /dev/null and b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/energy.npy differ diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/force.npy b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/force.npy new file mode 100644 index 000000000..6c90fae84 Binary files /dev/null and b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/force.npy differ diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/virial.npy b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/virial.npy new file mode 100644 index 000000000..8b7077794 Binary files /dev/null and b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/set.000/virial.npy differ diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/data.000/type.raw b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/type.raw new file mode 100644 index 000000000..0b21c0d0e --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/type.raw @@ -0,0 +1,5 @@ +0 +0 +0 +0 +1 diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/data.000/type_map.raw b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/type_map.raw new file mode 100644 index 000000000..35025b8b1 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/type_map.raw @@ -0,0 +1,2 @@ +H +C diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/data.000/virial.raw b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/virial.raw new file mode 100644 index 000000000..bd961b15b --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/data.000/virial.raw @@ -0,0 +1,2 @@ +1.577361027367633950e+00 7.219745599453539775e-01 8.379100448482763586e-01 7.219745599453539775e-01 2.902466263928850099e-01 5.136411252101861225e-01 8.379100448482763586e-01 5.136411252101861225e-01 9.625665818900658310e-01 +7.090754003383151760e-01 -8.138276466222123251e-02 3.493695919755006041e-01 -8.138276466222123251e-02 2.277046360201712805e+00 -9.675196172345627010e-01 3.493695919755006041e-01 -9.675196172345627010e-01 6.106750335337453039e-01 diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/INPUT b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/INPUT new file mode 100644 index 000000000..2b76680e7 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/INPUT @@ -0,0 +1,14 @@ +INPUT_PARAMETERS +ntype 2 +pseudo_dir ./ +ecutwfc 80.000000 +mixing_type pulay +mixing_beta 0.400000 +symmetry 1 +nbands 5.000000 +nspin 1 +ks_solver cg +smearing fixed +sigma 0.001000 +force 1 +stress 1 diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/KPT b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/KPT new file mode 100644 index 000000000..5ab6cd6d4 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/KPT @@ -0,0 +1,4 @@ +K_POINTS +0 +Gamma +1 1 1 0 0 0 \ No newline at end of file diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/OUT.ABACUS/INPUT b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/OUT.ABACUS/INPUT new file mode 100644 index 000000000..c656f3216 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/OUT.ABACUS/INPUT @@ -0,0 +1,229 @@ +INPUT_PARAMETERS +#Parameters (1.General) +suffix ABACUS #the name of main output directory +latname test #the name of lattice name +atom_file STRU #the filename of file containing atom positions +kpoint_file KPT #the name of file containing k points +pseudo_dir .// #the directory containing pseudo files +pseudo_type auto #the type pseudo files +dft_functional none #exchange correlation functional +calculation scf #test; scf; relax; nscf; ienvelope; istate; +ntype 2 #atom species number +nspin 1 #1: single spin; 2: up and down spin; +nbands 5 #number of bands +nbands_istate 5 #number of bands around Fermi level for istate calulation +symmetry 1 #turn symmetry on or off +nelec 0 #input number of electrons + +#Parameters (2.PW) +ecutwfc 80 ##energy cutoff for wave functions +diago_cg_maxiter 50 #max iteration number for cg +diago_cg_prec 1 #diago_cg_prec +ethr 0.01 #threshold for eigenvalues is cg electron iterations +dr2 1e-09 #charge density error +start_wfc atomic #start wave functions are from 'atomic' or 'file' +start_charge atomic #start charge is from 'atomic' or file +charge_extrap atomic #atomic; first-order; second-order; dm:coefficients of SIA +out_charge 0 #>0 output charge density for selected electron steps +out_potential 0 #output realspace potential +out_wf 0 #output wave functions +out_dos 0 #output energy and dos +out_band 0 #output energy and band structure +nx 0 #number of points along x axis for FFT grid +ny 0 #number of points along y axis for FFT grid +nz 0 #number of points along z axis for FFT grid + +#Parameters (3.Relaxation) +ks_solver cg #cg; david; lapack; genelpa; hpseps; +niter 40 ##number of electron iterations +vna 0 #use the vna or not +grid_speed 1 #1:normal 2:fast +force_set 0 #output the force_set or not +nstep 1 #number of ion iteration steps +out_stru 0 #output the structure files after each ion step +force_thr 0.001 #force threshold, unit: Ry/Bohr +force_thr_ev 0.0257112 #force threshold, unit: eV/Angstrom +force_thr_ev2 0 #force invalid threshold, unit: eV/Angstrom +stress_thr 0.01 #stress threshold +press1 0 #target pressure, unit: KBar +press2 0 #target pressure, unit: KBar +press3 0 #target pressure, unit: KBar +bfgs_w1 0.01 #wolfe condition 1 for bfgs +bfgs_w2 0.5 #wolfe condition 2 for bfgs +trust_radius_max 0.8 #maximal trust radius, unit: Bohr +trust_radius_min 1e-05 #minimal trust radius, unit: Bohr +trust_radius_ini 0.5 #initial trust radius, unit: Bohr +stress 1 #calculate the stress or not +fixed_axes None #which axes are fixed +move_method cg #bfgs; sd; cg; cg_bfgs; +out_level ie #ie(for electrons); i(for ions); +out_dm 0 #>0 output density matrix + +#Parameters (4.LCAO) +basis_type pw #PW; LCAO in pw; LCAO +search_radius -1 #input search radius (Bohr) +search_pbc 1 #input periodic boundary condition +lcao_ecut 0 #energy cutoff for LCAO +lcao_dk 0.01 #delta k for 1D integration in LCAO +lcao_dr 0.01 #delta r for 1D integration in LCAO +lcao_rmax 30 #max R for 1D two-center integration table +out_hs 0 #output H and S matrix +out_lowf 0 #ouput LCAO wave functions +bx 1 #division of an element grid in FFT grid along x +by 1 #division of an element grid in FFT grid along y +bz 1 #division of an element grid in FFT grid along z + +#Parameters (5.Smearing) +smearing fixed #type of smearing: gauss; fd; fixed; mp; mp2 +sigma 0.001 #energy range for smearing + +#Parameters (6.Charge Mixing) +mixing_type pulay #plain; kerker; pulay; pulay-kerker +mixing_beta 0.4 #mixing parameter: 0 means no new charge +mixing_ndim 8 #mixing dimension in pulay +mixing_gg0 0 #mixing parameter in kerker + +#Parameters (7.DOS) +dos_emin_ev -15 #minimal range for dos +dos_emax_ev 15 #maximal range for dos +dos_edelta_ev 0.01 #delta energy for dos +dos_sigma 0.07 #gauss b coefficeinet(default=0.07) + +#Parameters (8.Technique) +gamma_only 0 #gamma only +diago_proc 4 #number of proc used to diago +npool 1 #number of pools for k points, pw only +sparse_matrix 0 #use sparse matrix, in DMM +atom_distribution 0 #distribute atoms, in DMM +mem_saver 0 #memory saver for many k points used +printe 100 #print band energy for selectively ionic steps + +#Parameters (9.SIAO) +selinv_npole 40 #number of selected poles +selinv_temp 2000 #temperature for Fermi-Dirac distribution +selinv_gap 0 #supposed gap in the calculation +selinv_deltae 2 #expected energy range +selinv_mu -1 #chosen mu as Fermi energy +selinv_threshold 0.001 #threshold for calculated electron number +selinv_niter 50 #max number of steps to update mu + +#Parameters (10.Molecular dynamics) +md_mdtype 1 #choose ensemble +md_dt -1 #time step +md_nresn 3 #parameter during integrater +md_nyosh 3 #parameter during integrater +md_qmass 1 #mass of thermostat +md_tfirst -1 #temperature first +md_tlast -1 #temperature last +md_dumpmdfred 1 #The period to dump MD information for monitoring and restarting MD +md_mdoutpath mdoutput #output path of md +md_domsd 0 #whether compute +md_domsdatom 0 #whether compute msd for each atom +md_rstmd 0 #whether restart +md_fixtemperature 1 #period to change temperature +md_ediff 0.0001 #parameter for constraining total energy change +md_ediffg 0.001 #parameter for constraining max force change +md_msdstarttime 1 #choose which step that msd be calculated + +#Parameters (11.Efield) +efield 0 #add electric field +edir 1 #add electric field +emaxpos 0.5 #maximal position of efield [0,1) +eopreg 0.1 #where sawlike potential decrease +eamp 0.001 #amplitute of the efield, unit is a.u. +eamp_v 0.05144 #amplitute of the efield, unit is V/A + +#Parameters (12.Bfield) +bfield 0 #add magnetic field +bfield_teslax 0 #magnetic field strength +bfield_teslay 0 #magnetic field strength +bfield_teslaz 0 #magnetic field strength +bfield_gauge_x 0 #magnetic field gauge origin +bfield_gauge_y 0 #magnetic field gauge origin +bfield_gauge_z 0 #magnetic field gauge origin + +#Parameters (13.Test) +out_alllog 0 #output information for each processor, when parallel +nurse 0 #for coders +colour 0 #for coders, make their live colourful +t_in_h 1 #calculate the kinetic energy or not +vl_in_h 1 #calculate the local potential or not +vnl_in_h 1 #calculate the nonlocal potential or not +zeeman_in_h 1 #calculate the zeeman term or not +test_force 0 #test the force +test_stress 0 #test the force + +#Parameters (14.Other Methods) +mlwf_flag 0 #turn MLWF on or off +opt_epsilon2 0 #calculate the dielectic function +opt_nbands 0 #number of bands for optical calculation + +#Parameters (15.VdW Correction) +vdw_method none #the method of calculating vdw (none ; d2 ; d3_0 ; d3_bj +vdw_s6 default #scale parameter of d2/d3_0/d3_bj +vdw_s8 default #scale parameter of d3_0/d3_bj +vdw_a1 default #damping parameter of d3_0/d3_bj +vdw_a2 default #damping parameter of d3_bj +vdw_d 20 #damping parameter of d2 +vdw_abc 0 #third-order term? +vdw_C6_file default #filename of C6 +vdw_C6_unit Jnm6/mol #unit of C6, Jnm6/mol or eVA6 +vdw_R0_file default #filename of R0 +vdw_R0_unit A #unit of R0, A or Bohr +vdw_model radius #expression model of periodic structure, radius or period +vdw_radius default #radius cutoff for periodic structure +vdw_radius_unit Bohr #unit of radius cutoff for periodic structure +vdw_cn_thr 40 #radius cutoff for cn +vdw_cn_thr_unit Bohr #unit of cn_thr, Bohr or Angstrom +vdw_period 3 3 3 #periods of periodic structure + +#Parameters (16.spectrum) +spectral_type None #the type of the calculated spectrum +spectral_method 0 #0: tddft(linear response) +kernel_type rpa #the kernel type: rpa, tdlda ... +eels_method 0 #0: hilbert_transform method; 1: standard method +absorption_method 0 #0: vasp's method 1: pwscf's method +system bulk #the calculate system +eta 0.05 #eta(Ry) +domega 0.01 #domega(Ry) +nomega 300 #nomega +ecut_chi 1 #the dimension of chi matrix +q_start 0.1 0.1 0.1 #the position of the first q point in direct coordinate +q_direction 1 0 0 #the q direction +nq 1 #the total number of qpoints for calculation +out_epsilon 1 #output epsilon or not +out_chi 0 #output chi or not +out_chi0 0 #output chi0 or not +fermi_level 0 #the change of the fermi_level(Ry) +coulomb_cutoff 0 # turn on the coulomb_cutoff or not +kmesh_interpolation 0 #calculting +qcar 0 0 0 #(unit: 2PI/lat0) +ocp 0 #change occupation or not +ocp_n 0 #number of occupation +lcao_box 10 10 10 #the scale for searching the existence of the overlap + mulliken 0 # mulliken charge or not +intrasmear 0 #Eta +shift 0 #shift +metalcalc 0 #metal or not +eps_degauss 0.01 #degauss in calculating epsilon0 +noncolin 0 #using non-collinear-spin +lspinorb 0 #consider the spin-orbit interaction +starting_spin_angle 0 #starting_spin_angle + +#Parameters (17.tddft) +tddft 0 #calculate tddft or not +td_dr2 1e-09 #threshold for electronic iteration of tddft +td_dt 0.02 #time of ion step +td_force_dt 0.02 #time of force change +val_elec_01 1 #val_elec_01 +val_elec_02 1 #val_elec_02 +val_elec_03 1 #val_elec_03 +vext 0 #add extern potential or not +vext_dire 1 #extern potential direction + +#Parameters (18.berry_wannier) +berry_phase 0 #calculate berry phase or not +gdir 3 #calculate the polarization in the direction of the lattice vector +towannier90 0 #use wannier90 code interface or not +nnkpfile seedname.nnkp #the wannier90 code nnkp file name +wannier_spin up #calculate spin in wannier90 code interface diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/OUT.ABACUS/running_scf.log b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/OUT.ABACUS/running_scf.log new file mode 100644 index 000000000..24b285641 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/OUT.ABACUS/running_scf.log @@ -0,0 +1,601 @@ + + WELCOME TO ABACUS + + 'Atomic-orbital Based Ab-initio Computation at UStc' + + Website: http://abacus.ustc.edu.cn/ + + Version: Parallel, v2.1.0 + Processor Number is 4 + Start Time is Tue Jun 1 15:07:47 2021 + + ------------------------------------------------------------------------------------ + + READING GENERAL INFORMATION + global_out_dir = OUT.ABACUS/ + global_in_card = INPUT + pseudo_dir = ./ + pseudo_type = auto + DRANK = 1 + DSIZE = 4 + DCOLOR = 1 + GRANK = 1 + GSIZE = 1 + + + + + >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + | | + | Reading atom information in unitcell: | + | From the input file and the structure file we know the number of | + | different elments in this unitcell, then we list the detail | + | information for each element, especially the zeta and polar atomic | + | orbital number for each element. The total atom number is counted. | + | We calculate the nearest atom distance for each atom and show the | + | Cartesian and Direct coordinates for each atom. We list the file | + | address for atomic orbitals. The volume and the lattice vectors | + | in real and reciprocal space is also shown. | + | | + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + + + + READING UNITCELL INFORMATION + ntype = 2 + atom label for species 1 = H + atom label for species 2 = C + lattice constant (Bohr) = 1.88973 + lattice constant (Angstrom) = 1 + + READING ATOM TYPE 1 + atom label = H + start magnetization = FALSE + L=0, number of zeta = 1 + L=1, number of zeta = 1 + L=2, number of zeta = 1 + number of atom for this type = 4 + + READING ATOM TYPE 2 + atom label = C + start magnetization = FALSE + L=0, number of zeta = 1 + L=1, number of zeta = 1 + L=2, number of zeta = 1 + number of atom for this type = 1 + + TOTAL ATOM NUMBER = 5 + + CARTESIAN COORDINATES ( UNIT = 1.88973 Bohr ). + atom x y z mag + tauc_H1 5.34752 4.13299000001 3.42409 0 + tauc_H2 4.00995999999 5.01007 4.17371 0 + tauc_H3 5.58918 5.08242000001 4.86611999999 0 + tauc_H4 4.70525 3.51901000001 4.88607 0 + tauc_C1 4.92227 4.47265000001 4.37673 0 + + + Volume (Bohr^3) = 6676.0271937 + Volume (A^3) = 989.283980644 + + Lattice vectors: (Cartesian coordinate: in unit of a_0) + +10.2565601854 +0 +0 + -0.2453177497 +9.8128484191 +0 + -0.2571031519 -0.3012912337 +9.8293471194 + Reciprocal vectors: (Cartesian coordinate: in unit of 2 pi/a_0) + +0.0974985747584 +0.00243742998334 +0.00262495228314 + -0 +0.101907209537 +0.00312368141153 + +0 -0 +0.101736156822 + + + + + >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + | | + | Reading pseudopotentials files: | + | The pseudopotential file is in UPF format. The 'NC' indicates that | + | the type of pseudopotential is 'norm conserving'. Functional of | + | exchange and correlation is decided by 4 given parameters in UPF | + | file. We also read in the 'core correction' if there exists. | + | Also we can read the valence electrons number and the maximal | + | angular momentum used in this pseudopotential. We also read in the | + | trail wave function, trail atomic density and local-pseudopotential| + | on logrithmic grid. The non-local pseudopotential projector is also| + | read in if there is any. | + | | + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + + + + PAO radial cut off (Bohr) = 15 + + Read in pseudopotential file is H_ONCV_PBE-1.0.upf + pseudopotential type = NC + functional Ex = PBE + functional Ec = + functional GCEx = + functional GCEc = + nonlocal core correction = 0 + valence electrons = 1 + lmax = 0 + number of zeta = 0 + number of projectors = 2 + L of projector = 0 + L of projector = 0 + PAO radial cut off (Bohr) = 15 + + Read in pseudopotential file is C_ONCV_PBE-1.0.upf + pseudopotential type = NC + functional Ex = PBE + functional Ec = + functional GCEx = + functional GCEc = + nonlocal core correction = 0 + valence electrons = 4 + lmax = 1 + number of zeta = 0 + number of projectors = 4 + L of projector = 0 + L of projector = 0 + L of projector = 1 + L of projector = 1 + initial pseudo atomic orbital number = 0 + NLOCAL = 45 + + SETUP THE ELECTRONS NUMBER + electron number of element H = 1 + total electron number of element H = 4 + electron number of element C = 4 + total electron number of element C = 4 + occupied bands = 4 + NBANDS = 5 + DONE : SETUP UNITCELL Time : 0.248472929001 (SEC) + + + + + + >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + | | + | Doing symmetry analysis: | + | We calculate the norm of 3 vectors and the angles between them, | + | the type of Bravais lattice is given. We can judge if the unticell | + | is a primitive cell. Finally we give the point group operation for | + | this unitcell. We we use the point group operations to do symmetry | + | analysis on given k-point mesh and the charge density. | + | | + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + + + + LATTICE VECTORS: (CARTESIAN COORDINATE: IN UNIT OF A0) + +10.2565601854 +0 +0 + -0.2453177497 +9.8128484191 +0 + -0.2571031519 -0.3012912337 +9.8293471194 + right hand lattice = 1 + NORM_A = 10.2565601854 + NORM_B = 9.81591436875 + NORM_C = 9.83732398734 + ALPHA (DEGREE) = 91.4320759898 + BETA (DEGREE) = 91.7171031174 + GAMMA (DEGREE) = 91.4976230389 + BRAVAIS TYPE = 14 + BRAVAIS LATTICE NAME = 14. Triclinic cell + STANDARD LATTICE VECTORS: (CARTESIAN COORDINATE: IN UNIT OF A0) + +10.2565601854 +0 +0 + -0.2453177497 +9.8128484191 +0 + -0.2571031519 -0.3012912337 +9.8293471194 + IBRAV = 14 + BRAVAIS = TRICLINIC CELL + LATTICE CONSTAddNT A = 24.3134388692 + B/A RATIO = 1.20720410464 + C/A RATIO = 1.18773716153 + COS(ALPHA) = 0.878270383691 + COS(BETA) = 0.653779913716 + COS(GAMMA) = 0.215574501928 + ibrav = 14 + ROTATION MATRICES = 2 + PURE POINT GROUP OPERATIONS = 1 + SPACE GROUP OPERATIONS = 1 + POINT GROUP = C_1 + DONE : SYMMETRY Time : 0.302663087845 (SEC) + + + + + + >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + | | + | Setup K-points | + | We setup the k-points according to input parameters. | + | The reduced k-points are set according to symmetry operations. | + | We treat the spin as another set of k-points. | + | | + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + + + + + SETUP K-POINTS + nspin = 1 + Input type of k points = Monkhorst-Pack(Gamma) + nkstot = 1 + nkstot_ibz = 1 + IBZ DirectX DirectY DirectZ Weight ibz2bz + 1 0 0 0 1 0 + nkstot now = 1 + + KPOINTS DIRECT_X DIRECT_Y DIRECT_Z WEIGHT + 1 0 0 0 1 + + k-point number in this process = 1 + minimum distributed K point number = 1 + + KPOINTS CARTESIAN_X CARTESIAN_Y CARTESIAN_Z WEIGHT + 1 0 0 0 2 + + KPOINTS DIRECT_X DIRECT_Y DIRECT_Z WEIGHT + 1 0 0 0 2 + DONE : INIT K-POINTS Time : 0.304226875305 (SEC) + + + + + + >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + | | + | Setup plane waves: | + | Use the energy cutoff and the lattice vectors to generate the | + | dimensions of FFT grid. The number of FFT grid on each processor | + | is 'nrxx'. The number of plane wave basis in reciprocal space is | + | different for charege/potential and wave functions. We also set | + | the 'sticks' for the parallel of FFT. | + | | + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + + + + + SETUP THE PLANE WAVE BASIS + energy cutoff for wavefunc (unit:Ry) = 80 + [fft grid for wave functions] = 120, 108, 108 + [fft grid for charge/potential] = 120, 108, 108 + [fft grid division] = 1, 1, 1 + [big fft grid for charge/potential] = 120, 108, 108 + nbxx = 349920 + nrxx = 349920 + + SETUP PLANE WAVES FOR CHARGE/POTENTIAL + number of plane waves = 645411 + number of sticks = 9153 + + SETUP PLANE WAVES FOR WAVE FUNCTIONS + number of plane waves = 80695 + number of sticks = 2293 + + PARALLEL PW FOR CHARGE/POTENTIAL + PROC COLUMNS(POT) PW + 1 2289 161355 + 2 2288 161352 + 3 2288 161352 + 4 2288 161352 + --------------- sum ------------------- + 4 9153 645411 + + PARALLEL PW FOR WAVE FUNCTIONS + PROC COLUMNS(W) PW + 1 572 20178 + 2 574 20172 + 3 573 20172 + 4 574 20173 + --------------- sum ------------------- + 4 2293 80695 + + SETUP COORDINATES OF PLANE WAVES + number of total plane waves = 645411 + + SETUP COORDINATES OF PLANE WAVES + number of |g| = 152312 + max |g| = 28.9459422956 + min |g| = 0 + DONE : INIT PLANEWAVE Time : 0.861092805862 (SEC) + + npwx = 20178 + + SETUP NONLOCAL PSEUDOPOTENTIALS IN PLANE WAVE BASIS + H non-local projectors: + projector 1 L=0 + projector 2 L=0 + C non-local projectors: + projector 1 L=0 + projector 2 L=0 + projector 3 L=1 + projector 4 L=1 + TOTAL NUMBER OF NONLOCAL PROJECTORS = 16 + DONE : LOCAL POTENTIAL Time : 6.48073101044 (SEC) + + + Init Non-Local PseudoPotential table : + Init Non-Local-Pseudopotential done. + DONE : NON-LOCAL POTENTIAL Time : 6.48683285713 (SEC) + + start_pot = atomic + DONE : INIT POTENTIAL Time : 7.61773 (SEC) + + + Make real space PAO into reciprocal space. + max mesh points in Pseudopotential = 601 + dq(describe PAO in reciprocal space) = 0.01 + max q = 1078 + + number of pseudo atomic orbitals for H is 0 + + number of pseudo atomic orbitals for C is 0 + DONE : INIT BASIS Time : 7.74402 (SEC) + + ------------------------------------------- + ------------------------------------------- + + PW ALGORITHM --------------- ION= 1 ELEC= 1-------------------------------- + K-point CG iter num Time(Sec) + 1 10.800000 1.100000 + + Density error is 0.716228562297 + Error Threshold = 0.010000000000 + + Energy Rydberg eV + E_KohnSham -16.077989743340 -218.752272894988 + E_Harris -16.416413004613 -223.356757584032 + E_Fermi -1.047696916925 -14.254647847209 + + PW ALGORITHM --------------- ION= 1 ELEC= 2-------------------------------- + K-point CG iter num Time(Sec) + 1 2.600000 0.340000 + + Density error is 0.053485286288 + Error Threshold = 0.008952857029 + + Energy Rydberg eV + E_KohnSham -16.147852555191 -219.702805214460 + E_Harris -16.170227865721 -220.007236932187 + E_Fermi -0.757274295387 -10.303245366204 + + PW ALGORITHM --------------- ION= 1 ELEC= 3-------------------------------- + K-point CG iter num Time(Sec) + 1 3.400000 0.420000 + + Density error is 0.014597674496 + Error Threshold = 0.000668566079 + + Energy Rydberg eV + E_KohnSham -16.152630737187 -219.767815715679 + E_Harris -16.159901269386 -219.866736381080 + E_Fermi -0.678151111752 -9.226719224862 + + PW ALGORITHM --------------- ION= 1 ELEC= 4-------------------------------- + K-point CG iter num Time(Sec) + 1 2.600000 0.330000 + + Density error is 0.002894513932 + Error Threshold = 0.000182470931 + + Energy Rydberg eV + E_KohnSham -16.153987551063 -219.786276115520 + E_Harris -16.155383261882 -219.805265735428 + E_Fermi -0.669796821983 -9.113053281256 + + PW ALGORITHM --------------- ION= 1 ELEC= 5-------------------------------- + K-point CG iter num Time(Sec) + 1 3.000000 0.370000 + + Density error is 0.000178084710 + Error Threshold = 0.000036181424 + + Energy Rydberg eV + E_KohnSham -16.154367813314 -219.791449848876 + E_Harris -16.154442303768 -219.792463343494 + E_Fermi -0.654331591572 -8.902638026784 + + PW ALGORITHM --------------- ION= 1 ELEC= 6-------------------------------- + K-point CG iter num Time(Sec) + 1 3.200000 0.390000 + + Density error is 0.000016407178 + Error Threshold = 0.000002226059 + + Energy Rydberg eV + E_KohnSham -16.154436359380 -219.792382465939 + E_Harris -16.154443715521 -219.792482551379 + E_Fermi -0.653660775768 -8.893511109543 + + PW ALGORITHM --------------- ION= 1 ELEC= 7-------------------------------- + K-point CG iter num Time(Sec) + 1 4.000000 0.470000 + + Density error is 0.000014008850 + Error Threshold = 0.000000205090 + + Energy Rydberg eV + E_KohnSham -16.154437877417 -219.792403119902 + E_Harris -16.154445243508 -219.792503340712 + E_Fermi -0.654658037287 -8.907079548594 + + PW ALGORITHM --------------- ION= 1 ELEC= 8-------------------------------- + K-point CG iter num Time(Sec) + 1 2.800000 0.350000 + + Density error is 0.000000301230 + Error Threshold = 0.000000175111 + + Energy Rydberg eV + E_KohnSham -16.154440948911 -219.792444909710 + E_Harris -16.154441074217 -219.792446614598 + E_Fermi -0.654018333952 -8.898375938218 + + PW ALGORITHM --------------- ION= 1 ELEC= 9-------------------------------- + K-point CG iter num Time(Sec) + 1 4.000000 0.480000 + + Density error is 0.000000018344 + Error Threshold = 0.000000003765 + + Energy Rydberg eV + E_KohnSham -16.154441070784 -219.792446567885 + E_Harris -16.154441057559 -219.792446387946 + E_Fermi -0.654138260809 -8.900007626814 + + PW ALGORITHM --------------- ION= 1 ELEC= 10-------------------------------- + K-point CG iter num Time(Sec) + 1 3.400000 0.420000 + + Density error is 0.000000015755 + Error Threshold = 0.000000000229 + + Energy Rydberg eV + E_KohnSham -16.154441067825 -219.792446527624 + E_Harris -16.154441072730 -219.792446594355 + E_Fermi -0.654121118038 -8.899774387444 + + PW ALGORITHM --------------- ION= 1 ELEC= 11-------------------------------- + K-point CG iter num Time(Sec) + 1 3.400000 0.430000 + + Density error is 0.000000001032 + Error Threshold = 0.000000000197 + + Energy Rydberg eV + E_KohnSham -16.154441070882 -219.792446569210 + E_Harris -16.154441069860 -219.792446555307 + E_Fermi -0.654135023227 -8.899963577250 + + PW ALGORITHM --------------- ION= 1 ELEC= 12-------------------------------- + K-point CG iter num Time(Sec) + 1 4.000000 0.460000 + + Density error is 0.000000000233 + Error Threshold = 0.000000000013 + + Energy Rydberg eV + E_KohnSham -16.154441071342 -219.792446575473 + E_Harris -16.154441071108 -219.792446572294 + E_band -6.620750901789 -90.079937302973 + E_one_elec -40.783150273403 -554.883226108534 + E_Hartree +21.222216891079 +288.743073910523 + E_xc -6.398952161196 -87.062210621679 + E_Ewald +9.805444472178 +133.409916244217 + E_demet +0.000000000000 +0.000000000000 + E_descf +0.000000000000 +0.000000000000 + E_efield +0.000000000000 +0.000000000000 + E_Fermi -0.654134329118 -8.899954133408 + charge density convergence is achieved + final etot is -219.792446575473 eV + + STATE ENERGY(eV) AND OCCUPATIONS. 1/1 kpoint (Cartesian) = 0.00000 0.00000 0.00000 (20178 pws) + [spin1_state] 1 -17.008572 2.000000 + [spin1_state] 2 -9.762220 2.000000 + [spin1_state] 3 -9.369222 2.000000 + [spin1_state] 4 -8.899954 2.000000 + [spin1_state] 5 -0.467626 0.000000 + + + + ><><><><><><><><><><><><><><><><><><><><><>< + + TOTAL-FORCE (Ry/Bohr) + + ><><><><><><><><><><><><><><><><><><><><><>< + + atom x y z + H1 +0.002959 +0.012968 -0.004708 + H2 -0.019440 +0.007157 -0.002091 + H3 +0.064612 +0.049770 +0.053569 + H4 -0.000202 +0.018610 +0.013752 + C1 -0.047929 -0.088505 -0.060522 + + + ><><><><><><><><><><><><><><><><><><><><><>< + + TOTAL-FORCE (eV/Angstrom) + + ><><><><><><><><><><><><><><><><><><><><><>< + + atom x y z + H1 +0.076075 +0.333431 -0.121056 + H2 -0.499814 +0.184016 -0.053760 + H3 +1.661246 +1.279637 +1.377319 + H4 -0.005203 +0.478484 +0.353569 + C1 -1.232303 -2.275569 -1.556072 + + + ><><><><><><><><><><><><><><><><><><><><><>< + + TOTAL-STRESS (KBAR) + + ><><><><><><><><><><><><><><><><><><><><><>< + + +2.55460601 +1.16926976 +1.35703241 + +1.16926976 +0.47006726 +0.83186454 + +1.35703241 +0.83186454 +1.55891919 + + + -------------------------------------------- + !FINAL_ETOT_IS -219.7924465754728089 eV + -------------------------------------------- + + + + + + + |CLASS_NAME---------|NAME---------------|TIME(Sec)-----|CALLS----|AVG------|PER%------- + A DC_Driv reading +0.305 1 +0.31 +1.30% + B Run_Frag frag_init +0.23 1 +0.23 +0.99% + A DC_Driv divide_frag +0.56 1 +0.56 +2.38% + B PW_Basis gen_pw +0.56 1 +0.56 +2.38% + A DC_Driv solve_eachf +22.55 1 +22.55 +96.31% + B Run_Frag frag_pw_line +22.55 1 +22.55 +96.31% + C ppcell_vl init_vloc +5.59 1 +5.59 +23.90% + X FFT FFT3D +6.78 851 +0.01 +28.94% + E potential v_of_rho +2.65 13 +0.20 +11.30% + C wavefunc wfcinit +0.13 1 +0.13 +0.54% + G Hamilt_PW cinitcgg +1.23 13 +0.09 +5.25% + H Hamilt_PW h_psi +5.37 301 +0.02 +22.93% + I Hamilt_PW add_vuspsi +0.14 301 +0.00 +0.61% + C Ions opt_ions_pw +15.66 1 +15.66 +66.90% + D electrons self_consistent +10.86 1 +10.86 +46.38% + E electrons c_bands +5.69 12 +0.47 +24.30% + F Hamilt diago +5.57 12 +0.46 +23.79% + G Diago_CG diag +4.44 12 +0.37 +18.96% + E Charge mix_rho +0.62 12 +0.05 +2.64% + ---------------------------------------------------------------------------------------- + + CLASS_NAME---------|NAME---------------|MEMORY(MB)-------- + +98.5390 + Charge_Pulay Rrho +21.3574 + Charge_Pulay dRrho +18.6877 + Charge_Pulay drho +18.6877 + Use_FFT porter +5.3394 + PW_Basis struc_fac +4.9242 + Charge rho +2.6697 + Charge rho_save +2.6697 + Charge rho_core +2.6697 + potential vltot +2.6697 + potential vr +2.6697 + potential vrs +2.6697 + potential vrs1 +2.6697 + potential vnew +2.6697 + Charge_Pulay rho_save2 +2.6697 + wavefunc evc +1.5395 + Charge rhog +1.2310 + Charge rhog_save +1.2310 + Charge rhog_core +1.2310 + ---------------------------------------------------------- + + Start Time : Tue Jun 1 15:07:47 2021 + Finish Time : Tue Jun 1 15:08:11 2021 + Total Time : +0 h +0 mins +24 secs diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/POSCAR b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/POSCAR new file mode 100644 index 000000000..94357dd48 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/POSCAR @@ -0,0 +1,13 @@ +H4 C1 +1.0 +1.0256560185400000e+01 0.0000000000000000e+00 0.0000000000000000e+00 +-2.4531774970000000e-01 9.8128484190999998e+00 0.0000000000000000e+00 +-2.5710315189999999e-01 -3.0129123369999999e-01 9.8293471193999995e+00 +H C +4 1 +Cartesian + 5.3475200000 4.1329900000 3.4240900000 + 4.0099600000 5.0100700000 4.1737100000 + 5.5891800000 5.0824200000 4.8661200000 + 4.7052500000 3.5190100000 4.8860700000 + 4.9222700000 4.4726500000 4.3767300000 diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/STRU b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/STRU new file mode 100644 index 000000000..4fb0bec50 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/STRU @@ -0,0 +1,25 @@ +ATOMIC_SPECIES +H 1.00 H_ONCV_PBE-1.0.upf +C 1.00 C_ONCV_PBE-1.0.upf + +LATTICE_CONSTANT +1.8897261254578281 + +LATTICE_VECTORS +10.2565601854 0.0 0.0 +-0.2453177497 9.8128484191 0.0 +-0.2571031519 -0.3012912337 9.8293471194 + +ATOMIC_POSITIONS +Cartesian # Cartesian(Unit is LATTICE_CONSTANT) +H +0.0 +4 +5.347520000000 4.132990000000 3.424090000000 0 0 0 +4.009960000000 5.010070000000 4.173710000000 0 0 0 +5.589180000000 5.082420000000 4.866120000000 0 0 0 +4.705250000000 3.519010000000 4.886070000000 0 0 0 +C +0.0 +1 +4.922270000000 4.472650000000 4.376730000000 0 0 0 diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/output b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/output new file mode 100644 index 000000000..7a1e9bac2 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000000/output @@ -0,0 +1,81 @@ + ********************************************************* + * * + * WELCOME TO ABACUS * + * * + * 'Atomic-orbital Based Ab-initio * + * Computation at UStc' * + * * + * Website: http://abacus.ustc.edu.cn/ * + * * + ********************************************************* + Tue Jun 1 15:07:47 2021 + MAKE THE DIR : OUT.ABACUS/ + DONE(0.24874 SEC) : SETUP UNITCELL + DONE(0.30281 SEC) : SYMMETRY + DONE(0.304376 SEC) : INIT K-POINTS + --------------------------------------------------------- + This calculation is self-consistent + --------------------------------------------------------- + SPIN KPOINTS PROCESSORS + 1 1 4 + --------------------------------------------------------- + Use plane wave basis + --------------------------------------------------------- + ELEMENT NATOM XC + H 4 PBE + C 1 PBE + --------------------------------------------------------- + Initial plane wave basis and FFT box + --------------------------------------------------------- + DONE(0.861373 SEC) : INIT PLANEWAVE + UNIFORM GRID DIM : 120 * 108 * 108 + UNIFORM GRID DIM(BIG): 120 * 108 * 108 + MEMORY FOR PSI (MB) : 1.53946 + DONE(6.48094 SEC) : LOCAL POTENTIAL + DONE(6.48697 SEC) : NON-LOCAL POTENTIAL + START POTENTIAL : atomic + DONE(7.61803 SEC) : INIT POTENTIAL + DONE(7.7443 SEC) : INIT BASIS + ------------------------------------------- + SELF-CONSISTENT : + ------------------------------------------- + ITER ETOT(eV) EDIFF(eV) DRHO2 CG_ITER TIME(S) + CG1 -2.187523e+02 0.000000e+00 7.162e-01 1.080e+01 1.560e+00 + CG2 -2.197028e+02 -9.505323e-01 5.349e-02 2.600e+00 7.600e-01 + CG3 -2.197678e+02 -6.501050e-02 1.460e-02 3.400e+00 8.600e-01 + CG4 -2.197863e+02 -1.846040e-02 2.895e-03 2.600e+00 7.700e-01 + CG5 -2.197914e+02 -5.173733e-03 1.781e-04 3.000e+00 7.900e-01 + CG6 -2.197924e+02 -9.326171e-04 1.641e-05 3.200e+00 8.300e-01 + CG7 -2.197924e+02 -2.065396e-05 1.401e-05 4.000e+00 9.000e-01 + CG8 -2.197924e+02 -4.178981e-05 3.012e-07 2.800e+00 7.800e-01 + CG9 -2.197924e+02 -1.658174e-06 1.834e-08 4.000e+00 9.000e-01 + CG10 -2.197924e+02 4.026059e-08 1.576e-08 3.400e+00 8.500e-01 + CG11 -2.197924e+02 -4.158638e-08 1.032e-09 3.400e+00 8.800e-01 + CG12 -2.197924e+02 -6.262464e-09 2.326e-10 4.000e+00 8.600e-01 + + |CLASS_NAME---------|NAME---------------|TIME(Sec)-----|CALLS----|AVG------|PER%------- + A DC_Driv reading 0.31 1 0.31 1.3 % + B Run_Frag frag_init 0.23 1 0.23 0.99 % + A DC_Driv divide_frag 0.56 1 0.56 2.4 % + B PW_Basis gen_pw 0.56 1 0.56 2.4 % + A DC_Driv solve_eachf 23 1 23 96 % + B Run_Frag frag_pw_line 23 1 23 96 % + C ppcell_vl init_vloc 5.6 1 5.6 24 % + X FFT FFT3D 6.8 851 0.008 29 % + E potential v_of_rho 2.6 13 0.2 11 % + C wavefunc wfcinit 0.13 1 0.13 0.54 % + G Hamilt_PW cinitcgg 1.2 13 0.095 5.3 % + H Hamilt_PW h_psi 5.4 301 0.018 23 % + I Hamilt_PW add_vuspsi 0.14 301 0.00048 0.61 % + C Ions opt_ions_pw 16 1 16 67 % + D electrons self_consistent 11 1 11 46 % + E electrons c_bands 5.7 12 0.47 24 % + F Hamilt diago 5.6 12 0.46 24 % + G Diago_CG diag 4.4 12 0.37 19 % + E Charge mix_rho 0.62 12 0.052 2.6 % + ---------------------------------------------------------------------------------------- + + START Time : Tue Jun 1 15:07:47 2021 + FINISH Time : Tue Jun 1 15:08:11 2021 + TOTAL Time : 24 + SEE INFORMATION IN : OUT.ABACUS/ diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/INPUT b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/INPUT new file mode 100644 index 000000000..2b76680e7 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/INPUT @@ -0,0 +1,14 @@ +INPUT_PARAMETERS +ntype 2 +pseudo_dir ./ +ecutwfc 80.000000 +mixing_type pulay +mixing_beta 0.400000 +symmetry 1 +nbands 5.000000 +nspin 1 +ks_solver cg +smearing fixed +sigma 0.001000 +force 1 +stress 1 diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/KPT b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/KPT new file mode 100644 index 000000000..5ab6cd6d4 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/KPT @@ -0,0 +1,4 @@ +K_POINTS +0 +Gamma +1 1 1 0 0 0 \ No newline at end of file diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/OUT.ABACUS/INPUT b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/OUT.ABACUS/INPUT new file mode 100644 index 000000000..c656f3216 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/OUT.ABACUS/INPUT @@ -0,0 +1,229 @@ +INPUT_PARAMETERS +#Parameters (1.General) +suffix ABACUS #the name of main output directory +latname test #the name of lattice name +atom_file STRU #the filename of file containing atom positions +kpoint_file KPT #the name of file containing k points +pseudo_dir .// #the directory containing pseudo files +pseudo_type auto #the type pseudo files +dft_functional none #exchange correlation functional +calculation scf #test; scf; relax; nscf; ienvelope; istate; +ntype 2 #atom species number +nspin 1 #1: single spin; 2: up and down spin; +nbands 5 #number of bands +nbands_istate 5 #number of bands around Fermi level for istate calulation +symmetry 1 #turn symmetry on or off +nelec 0 #input number of electrons + +#Parameters (2.PW) +ecutwfc 80 ##energy cutoff for wave functions +diago_cg_maxiter 50 #max iteration number for cg +diago_cg_prec 1 #diago_cg_prec +ethr 0.01 #threshold for eigenvalues is cg electron iterations +dr2 1e-09 #charge density error +start_wfc atomic #start wave functions are from 'atomic' or 'file' +start_charge atomic #start charge is from 'atomic' or file +charge_extrap atomic #atomic; first-order; second-order; dm:coefficients of SIA +out_charge 0 #>0 output charge density for selected electron steps +out_potential 0 #output realspace potential +out_wf 0 #output wave functions +out_dos 0 #output energy and dos +out_band 0 #output energy and band structure +nx 0 #number of points along x axis for FFT grid +ny 0 #number of points along y axis for FFT grid +nz 0 #number of points along z axis for FFT grid + +#Parameters (3.Relaxation) +ks_solver cg #cg; david; lapack; genelpa; hpseps; +niter 40 ##number of electron iterations +vna 0 #use the vna or not +grid_speed 1 #1:normal 2:fast +force_set 0 #output the force_set or not +nstep 1 #number of ion iteration steps +out_stru 0 #output the structure files after each ion step +force_thr 0.001 #force threshold, unit: Ry/Bohr +force_thr_ev 0.0257112 #force threshold, unit: eV/Angstrom +force_thr_ev2 0 #force invalid threshold, unit: eV/Angstrom +stress_thr 0.01 #stress threshold +press1 0 #target pressure, unit: KBar +press2 0 #target pressure, unit: KBar +press3 0 #target pressure, unit: KBar +bfgs_w1 0.01 #wolfe condition 1 for bfgs +bfgs_w2 0.5 #wolfe condition 2 for bfgs +trust_radius_max 0.8 #maximal trust radius, unit: Bohr +trust_radius_min 1e-05 #minimal trust radius, unit: Bohr +trust_radius_ini 0.5 #initial trust radius, unit: Bohr +stress 1 #calculate the stress or not +fixed_axes None #which axes are fixed +move_method cg #bfgs; sd; cg; cg_bfgs; +out_level ie #ie(for electrons); i(for ions); +out_dm 0 #>0 output density matrix + +#Parameters (4.LCAO) +basis_type pw #PW; LCAO in pw; LCAO +search_radius -1 #input search radius (Bohr) +search_pbc 1 #input periodic boundary condition +lcao_ecut 0 #energy cutoff for LCAO +lcao_dk 0.01 #delta k for 1D integration in LCAO +lcao_dr 0.01 #delta r for 1D integration in LCAO +lcao_rmax 30 #max R for 1D two-center integration table +out_hs 0 #output H and S matrix +out_lowf 0 #ouput LCAO wave functions +bx 1 #division of an element grid in FFT grid along x +by 1 #division of an element grid in FFT grid along y +bz 1 #division of an element grid in FFT grid along z + +#Parameters (5.Smearing) +smearing fixed #type of smearing: gauss; fd; fixed; mp; mp2 +sigma 0.001 #energy range for smearing + +#Parameters (6.Charge Mixing) +mixing_type pulay #plain; kerker; pulay; pulay-kerker +mixing_beta 0.4 #mixing parameter: 0 means no new charge +mixing_ndim 8 #mixing dimension in pulay +mixing_gg0 0 #mixing parameter in kerker + +#Parameters (7.DOS) +dos_emin_ev -15 #minimal range for dos +dos_emax_ev 15 #maximal range for dos +dos_edelta_ev 0.01 #delta energy for dos +dos_sigma 0.07 #gauss b coefficeinet(default=0.07) + +#Parameters (8.Technique) +gamma_only 0 #gamma only +diago_proc 4 #number of proc used to diago +npool 1 #number of pools for k points, pw only +sparse_matrix 0 #use sparse matrix, in DMM +atom_distribution 0 #distribute atoms, in DMM +mem_saver 0 #memory saver for many k points used +printe 100 #print band energy for selectively ionic steps + +#Parameters (9.SIAO) +selinv_npole 40 #number of selected poles +selinv_temp 2000 #temperature for Fermi-Dirac distribution +selinv_gap 0 #supposed gap in the calculation +selinv_deltae 2 #expected energy range +selinv_mu -1 #chosen mu as Fermi energy +selinv_threshold 0.001 #threshold for calculated electron number +selinv_niter 50 #max number of steps to update mu + +#Parameters (10.Molecular dynamics) +md_mdtype 1 #choose ensemble +md_dt -1 #time step +md_nresn 3 #parameter during integrater +md_nyosh 3 #parameter during integrater +md_qmass 1 #mass of thermostat +md_tfirst -1 #temperature first +md_tlast -1 #temperature last +md_dumpmdfred 1 #The period to dump MD information for monitoring and restarting MD +md_mdoutpath mdoutput #output path of md +md_domsd 0 #whether compute +md_domsdatom 0 #whether compute msd for each atom +md_rstmd 0 #whether restart +md_fixtemperature 1 #period to change temperature +md_ediff 0.0001 #parameter for constraining total energy change +md_ediffg 0.001 #parameter for constraining max force change +md_msdstarttime 1 #choose which step that msd be calculated + +#Parameters (11.Efield) +efield 0 #add electric field +edir 1 #add electric field +emaxpos 0.5 #maximal position of efield [0,1) +eopreg 0.1 #where sawlike potential decrease +eamp 0.001 #amplitute of the efield, unit is a.u. +eamp_v 0.05144 #amplitute of the efield, unit is V/A + +#Parameters (12.Bfield) +bfield 0 #add magnetic field +bfield_teslax 0 #magnetic field strength +bfield_teslay 0 #magnetic field strength +bfield_teslaz 0 #magnetic field strength +bfield_gauge_x 0 #magnetic field gauge origin +bfield_gauge_y 0 #magnetic field gauge origin +bfield_gauge_z 0 #magnetic field gauge origin + +#Parameters (13.Test) +out_alllog 0 #output information for each processor, when parallel +nurse 0 #for coders +colour 0 #for coders, make their live colourful +t_in_h 1 #calculate the kinetic energy or not +vl_in_h 1 #calculate the local potential or not +vnl_in_h 1 #calculate the nonlocal potential or not +zeeman_in_h 1 #calculate the zeeman term or not +test_force 0 #test the force +test_stress 0 #test the force + +#Parameters (14.Other Methods) +mlwf_flag 0 #turn MLWF on or off +opt_epsilon2 0 #calculate the dielectic function +opt_nbands 0 #number of bands for optical calculation + +#Parameters (15.VdW Correction) +vdw_method none #the method of calculating vdw (none ; d2 ; d3_0 ; d3_bj +vdw_s6 default #scale parameter of d2/d3_0/d3_bj +vdw_s8 default #scale parameter of d3_0/d3_bj +vdw_a1 default #damping parameter of d3_0/d3_bj +vdw_a2 default #damping parameter of d3_bj +vdw_d 20 #damping parameter of d2 +vdw_abc 0 #third-order term? +vdw_C6_file default #filename of C6 +vdw_C6_unit Jnm6/mol #unit of C6, Jnm6/mol or eVA6 +vdw_R0_file default #filename of R0 +vdw_R0_unit A #unit of R0, A or Bohr +vdw_model radius #expression model of periodic structure, radius or period +vdw_radius default #radius cutoff for periodic structure +vdw_radius_unit Bohr #unit of radius cutoff for periodic structure +vdw_cn_thr 40 #radius cutoff for cn +vdw_cn_thr_unit Bohr #unit of cn_thr, Bohr or Angstrom +vdw_period 3 3 3 #periods of periodic structure + +#Parameters (16.spectrum) +spectral_type None #the type of the calculated spectrum +spectral_method 0 #0: tddft(linear response) +kernel_type rpa #the kernel type: rpa, tdlda ... +eels_method 0 #0: hilbert_transform method; 1: standard method +absorption_method 0 #0: vasp's method 1: pwscf's method +system bulk #the calculate system +eta 0.05 #eta(Ry) +domega 0.01 #domega(Ry) +nomega 300 #nomega +ecut_chi 1 #the dimension of chi matrix +q_start 0.1 0.1 0.1 #the position of the first q point in direct coordinate +q_direction 1 0 0 #the q direction +nq 1 #the total number of qpoints for calculation +out_epsilon 1 #output epsilon or not +out_chi 0 #output chi or not +out_chi0 0 #output chi0 or not +fermi_level 0 #the change of the fermi_level(Ry) +coulomb_cutoff 0 # turn on the coulomb_cutoff or not +kmesh_interpolation 0 #calculting +qcar 0 0 0 #(unit: 2PI/lat0) +ocp 0 #change occupation or not +ocp_n 0 #number of occupation +lcao_box 10 10 10 #the scale for searching the existence of the overlap + mulliken 0 # mulliken charge or not +intrasmear 0 #Eta +shift 0 #shift +metalcalc 0 #metal or not +eps_degauss 0.01 #degauss in calculating epsilon0 +noncolin 0 #using non-collinear-spin +lspinorb 0 #consider the spin-orbit interaction +starting_spin_angle 0 #starting_spin_angle + +#Parameters (17.tddft) +tddft 0 #calculate tddft or not +td_dr2 1e-09 #threshold for electronic iteration of tddft +td_dt 0.02 #time of ion step +td_force_dt 0.02 #time of force change +val_elec_01 1 #val_elec_01 +val_elec_02 1 #val_elec_02 +val_elec_03 1 #val_elec_03 +vext 0 #add extern potential or not +vext_dire 1 #extern potential direction + +#Parameters (18.berry_wannier) +berry_phase 0 #calculate berry phase or not +gdir 3 #calculate the polarization in the direction of the lattice vector +towannier90 0 #use wannier90 code interface or not +nnkpfile seedname.nnkp #the wannier90 code nnkp file name +wannier_spin up #calculate spin in wannier90 code interface diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/OUT.ABACUS/running_scf.log b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/OUT.ABACUS/running_scf.log new file mode 100644 index 000000000..68863acae --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/OUT.ABACUS/running_scf.log @@ -0,0 +1,601 @@ + + WELCOME TO ABACUS + + 'Atomic-orbital Based Ab-initio Computation at UStc' + + Website: http://abacus.ustc.edu.cn/ + + Version: Parallel, v2.1.0 + Processor Number is 4 + Start Time is Tue Jun 1 15:08:11 2021 + + ------------------------------------------------------------------------------------ + + READING GENERAL INFORMATION + global_out_dir = OUT.ABACUS/ + global_in_card = INPUT + pseudo_dir = ./ + pseudo_type = auto + DRANK = 1 + DSIZE = 4 + DCOLOR = 1 + GRANK = 1 + GSIZE = 1 + + + + + >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + | | + | Reading atom information in unitcell: | + | From the input file and the structure file we know the number of | + | different elments in this unitcell, then we list the detail | + | information for each element, especially the zeta and polar atomic | + | orbital number for each element. The total atom number is counted. | + | We calculate the nearest atom distance for each atom and show the | + | Cartesian and Direct coordinates for each atom. We list the file | + | address for atomic orbitals. The volume and the lattice vectors | + | in real and reciprocal space is also shown. | + | | + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + + + + READING UNITCELL INFORMATION + ntype = 2 + atom label for species 1 = H + atom label for species 2 = C + lattice constant (Bohr) = 1.88973 + lattice constant (Angstrom) = 1 + + READING ATOM TYPE 1 + atom label = H + start magnetization = FALSE + L=0, number of zeta = 1 + L=1, number of zeta = 1 + L=2, number of zeta = 1 + number of atom for this type = 4 + + READING ATOM TYPE 2 + atom label = C + start magnetization = FALSE + L=0, number of zeta = 1 + L=1, number of zeta = 1 + L=2, number of zeta = 1 + number of atom for this type = 1 + + TOTAL ATOM NUMBER = 5 + + CARTESIAN COORDINATES ( UNIT = 1.88973 Bohr ). + atom x y z mag + tauc_H1 5.9687 4.63839 4.15753 0 + tauc_H2 4.64299000001 5.19806000001 5.12790999999 0 + tauc_H3 4.76222 3.49318000001 4.69419 0 + tauc_H4 4.45758999999 4.60349 3.41247 0 + tauc_C1 4.90730000001 4.45692999999 4.37323 0 + + + Volume (Bohr^3) = 6676.0271937 + Volume (A^3) = 989.283980644 + + Lattice vectors: (Cartesian coordinate: in unit of a_0) + +10.2565601854 +0 +0 + -0.2453177497 +9.8128484191 +0 + -0.2571031519 -0.3012912337 +9.8293471194 + Reciprocal vectors: (Cartesian coordinate: in unit of 2 pi/a_0) + +0.0974985747584 +0.00243742998334 +0.00262495228314 + -0 +0.101907209537 +0.00312368141153 + +0 -0 +0.101736156822 + + + + + >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + | | + | Reading pseudopotentials files: | + | The pseudopotential file is in UPF format. The 'NC' indicates that | + | the type of pseudopotential is 'norm conserving'. Functional of | + | exchange and correlation is decided by 4 given parameters in UPF | + | file. We also read in the 'core correction' if there exists. | + | Also we can read the valence electrons number and the maximal | + | angular momentum used in this pseudopotential. We also read in the | + | trail wave function, trail atomic density and local-pseudopotential| + | on logrithmic grid. The non-local pseudopotential projector is also| + | read in if there is any. | + | | + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + + + + PAO radial cut off (Bohr) = 15 + + Read in pseudopotential file is H_ONCV_PBE-1.0.upf + pseudopotential type = NC + functional Ex = PBE + functional Ec = + functional GCEx = + functional GCEc = + nonlocal core correction = 0 + valence electrons = 1 + lmax = 0 + number of zeta = 0 + number of projectors = 2 + L of projector = 0 + L of projector = 0 + PAO radial cut off (Bohr) = 15 + + Read in pseudopotential file is C_ONCV_PBE-1.0.upf + pseudopotential type = NC + functional Ex = PBE + functional Ec = + functional GCEx = + functional GCEc = + nonlocal core correction = 0 + valence electrons = 4 + lmax = 1 + number of zeta = 0 + number of projectors = 4 + L of projector = 0 + L of projector = 0 + L of projector = 1 + L of projector = 1 + initial pseudo atomic orbital number = 0 + NLOCAL = 45 + + SETUP THE ELECTRONS NUMBER + electron number of element H = 1 + total electron number of element H = 4 + electron number of element C = 4 + total electron number of element C = 4 + occupied bands = 4 + NBANDS = 5 + DONE : SETUP UNITCELL Time : 0.227668046951 (SEC) + + + + + + >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + | | + | Doing symmetry analysis: | + | We calculate the norm of 3 vectors and the angles between them, | + | the type of Bravais lattice is given. We can judge if the unticell | + | is a primitive cell. Finally we give the point group operation for | + | this unitcell. We we use the point group operations to do symmetry | + | analysis on given k-point mesh and the charge density. | + | | + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + + + + LATTICE VECTORS: (CARTESIAN COORDINATE: IN UNIT OF A0) + +10.2565601854 +0 +0 + -0.2453177497 +9.8128484191 +0 + -0.2571031519 -0.3012912337 +9.8293471194 + right hand lattice = 1 + NORM_A = 10.2565601854 + NORM_B = 9.81591436875 + NORM_C = 9.83732398734 + ALPHA (DEGREE) = 91.4320759898 + BETA (DEGREE) = 91.7171031174 + GAMMA (DEGREE) = 91.4976230389 + BRAVAIS TYPE = 14 + BRAVAIS LATTICE NAME = 14. Triclinic cell + STANDARD LATTICE VECTORS: (CARTESIAN COORDINATE: IN UNIT OF A0) + +10.2565601854 +0 +0 + -0.2453177497 +9.8128484191 +0 + -0.2571031519 -0.3012912337 +9.8293471194 + IBRAV = 14 + BRAVAIS = TRICLINIC CELL + LATTICE CONSTAddNT A = 24.3134388692 + B/A RATIO = 1.20720410464 + C/A RATIO = 1.18773716153 + COS(ALPHA) = 0.878270383691 + COS(BETA) = 0.653779913716 + COS(GAMMA) = 0.215574501928 + ibrav = 14 + ROTATION MATRICES = 2 + PURE POINT GROUP OPERATIONS = 1 + SPACE GROUP OPERATIONS = 1 + POINT GROUP = C_1 + DONE : SYMMETRY Time : 0.278933048248 (SEC) + + + + + + >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + | | + | Setup K-points | + | We setup the k-points according to input parameters. | + | The reduced k-points are set according to symmetry operations. | + | We treat the spin as another set of k-points. | + | | + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + + + + + SETUP K-POINTS + nspin = 1 + Input type of k points = Monkhorst-Pack(Gamma) + nkstot = 1 + nkstot_ibz = 1 + IBZ DirectX DirectY DirectZ Weight ibz2bz + 1 0 0 0 1 0 + nkstot now = 1 + + KPOINTS DIRECT_X DIRECT_Y DIRECT_Z WEIGHT + 1 0 0 0 1 + + k-point number in this process = 1 + minimum distributed K point number = 1 + + KPOINTS CARTESIAN_X CARTESIAN_Y CARTESIAN_Z WEIGHT + 1 0 0 0 2 + + KPOINTS DIRECT_X DIRECT_Y DIRECT_Z WEIGHT + 1 0 0 0 2 + DONE : INIT K-POINTS Time : 0.280417919159 (SEC) + + + + + + >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> + | | + | Setup plane waves: | + | Use the energy cutoff and the lattice vectors to generate the | + | dimensions of FFT grid. The number of FFT grid on each processor | + | is 'nrxx'. The number of plane wave basis in reciprocal space is | + | different for charege/potential and wave functions. We also set | + | the 'sticks' for the parallel of FFT. | + | | + <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< + + + + + + SETUP THE PLANE WAVE BASIS + energy cutoff for wavefunc (unit:Ry) = 80 + [fft grid for wave functions] = 120, 108, 108 + [fft grid for charge/potential] = 120, 108, 108 + [fft grid division] = 1, 1, 1 + [big fft grid for charge/potential] = 120, 108, 108 + nbxx = 349920 + nrxx = 349920 + + SETUP PLANE WAVES FOR CHARGE/POTENTIAL + number of plane waves = 645411 + number of sticks = 9153 + + SETUP PLANE WAVES FOR WAVE FUNCTIONS + number of plane waves = 80695 + number of sticks = 2293 + + PARALLEL PW FOR CHARGE/POTENTIAL + PROC COLUMNS(POT) PW + 1 2289 161355 + 2 2288 161352 + 3 2288 161352 + 4 2288 161352 + --------------- sum ------------------- + 4 9153 645411 + + PARALLEL PW FOR WAVE FUNCTIONS + PROC COLUMNS(W) PW + 1 572 20178 + 2 574 20172 + 3 573 20172 + 4 574 20173 + --------------- sum ------------------- + 4 2293 80695 + + SETUP COORDINATES OF PLANE WAVES + number of total plane waves = 645411 + + SETUP COORDINATES OF PLANE WAVES + number of |g| = 152312 + max |g| = 28.9459422956 + min |g| = 0 + DONE : INIT PLANEWAVE Time : 0.751913070679 (SEC) + + npwx = 20178 + + SETUP NONLOCAL PSEUDOPOTENTIALS IN PLANE WAVE BASIS + H non-local projectors: + projector 1 L=0 + projector 2 L=0 + C non-local projectors: + projector 1 L=0 + projector 2 L=0 + projector 3 L=1 + projector 4 L=1 + TOTAL NUMBER OF NONLOCAL PROJECTORS = 16 + DONE : LOCAL POTENTIAL Time : 6.44963598251 (SEC) + + + Init Non-Local PseudoPotential table : + Init Non-Local-Pseudopotential done. + DONE : NON-LOCAL POTENTIAL Time : 6.45572495461 (SEC) + + start_pot = atomic + DONE : INIT POTENTIAL Time : 7.58789 (SEC) + + + Make real space PAO into reciprocal space. + max mesh points in Pseudopotential = 601 + dq(describe PAO in reciprocal space) = 0.01 + max q = 1078 + + number of pseudo atomic orbitals for H is 0 + + number of pseudo atomic orbitals for C is 0 + DONE : INIT BASIS Time : 7.72146 (SEC) + + ------------------------------------------- + ------------------------------------------- + + PW ALGORITHM --------------- ION= 1 ELEC= 1-------------------------------- + K-point CG iter num Time(Sec) + 1 10.800000 1.190000 + + Density error is 0.729821145419 + Error Threshold = 0.010000000000 + + Energy Rydberg eV + E_KohnSham -16.074330807881 -218.702490524122 + E_Harris -16.417604334752 -223.372966462132 + E_Fermi -1.048335767748 -14.263339858584 + + PW ALGORITHM --------------- ION= 1 ELEC= 2-------------------------------- + K-point CG iter num Time(Sec) + 1 2.600000 0.420000 + + Density error is 0.054695249293 + Error Threshold = 0.009122764318 + + Energy Rydberg eV + E_KohnSham -16.144072294982 -219.651372135698 + E_Harris -16.168056159747 -219.977689356560 + E_Fermi -0.752817311335 -10.242604987193 + + PW ALGORITHM --------------- ION= 1 ELEC= 3-------------------------------- + K-point CG iter num Time(Sec) + 1 3.600000 0.550000 + + Density error is 0.016629706963 + Error Threshold = 0.000683690616 + + Energy Rydberg eV + E_KohnSham -16.149305967765 -219.722579907002 + E_Harris -16.158386373461 -219.846125164631 + E_Fermi -0.668286163733 -9.092499721328 + + PW ALGORITHM --------------- ION= 1 ELEC= 4-------------------------------- + K-point CG iter num Time(Sec) + 1 3.000000 0.460000 + + Density error is 0.012039285293 + Error Threshold = 0.000207871337 + + Energy Rydberg eV + E_KohnSham -16.150013535618 -219.732206861536 + E_Harris -16.156210347385 -219.816518810990 + E_Fermi -0.679552369062 -9.245784308645 + + PW ALGORITHM --------------- ION= 1 ELEC= 5-------------------------------- + K-point CG iter num Time(Sec) + 1 2.800000 0.430000 + + Density error is 0.000038865224 + Error Threshold = 0.000150491066 + + Energy Rydberg eV + E_KohnSham -16.152272431667 -219.762940718990 + E_Harris -16.152279970952 -219.763043296226 + E_Fermi -0.648769155245 -8.826957197980 + + PW ALGORITHM --------------- ION= 1 ELEC= 6-------------------------------- + K-point CG iter num Time(Sec) + 1 4.800000 0.670000 + + Density error is 0.000006534342 + Error Threshold = 0.000000485815 + + Energy Rydberg eV + E_KohnSham -16.152359945301 -219.764131403059 + E_Harris -16.152361698976 -219.764155263039 + E_Fermi -0.649149878586 -8.832137204783 + + PW ALGORITHM --------------- ION= 1 ELEC= 7-------------------------------- + K-point CG iter num Time(Sec) + 1 2.800000 0.450000 + + Density error is 0.000000610404 + Error Threshold = 0.000000081679 + + Energy Rydberg eV + E_KohnSham -16.152360323564 -219.764136549589 + E_Harris -16.152360337435 -219.764136738315 + E_Fermi -0.648756249289 -8.826781603442 + + PW ALGORITHM --------------- ION= 1 ELEC= 8-------------------------------- + K-point CG iter num Time(Sec) + 1 3.600000 0.530000 + + Density error is 0.000000171866 + Error Threshold = 0.000000007630 + + Energy Rydberg eV + E_KohnSham -16.152360355243 -219.764136980609 + E_Harris -16.152360390636 -219.764137462158 + E_Fermi -0.648799753721 -8.827373511606 + + PW ALGORITHM --------------- ION= 1 ELEC= 9-------------------------------- + K-point CG iter num Time(Sec) + 1 3.200000 0.480000 + + Density error is 0.000000067106 + Error Threshold = 0.000000002148 + + Energy Rydberg eV + E_KohnSham -16.152360346433 -219.764136860741 + E_Harris -16.152360368224 -219.764137157224 + E_Fermi -0.648688898759 -8.825865252473 + + PW ALGORITHM --------------- ION= 1 ELEC= 10-------------------------------- + K-point CG iter num Time(Sec) + 1 2.800000 0.460000 + + Density error is 0.000000023325 + Error Threshold = 0.000000000839 + + Energy Rydberg eV + E_KohnSham -16.152360337730 -219.764136742339 + E_Harris -16.152360349284 -219.764136899531 + E_Fermi -0.648713988799 -8.826206619971 + + PW ALGORITHM --------------- ION= 1 ELEC= 11-------------------------------- + K-point CG iter num Time(Sec) + 1 2.600000 0.410000 + + Density error is 0.000000001012 + Error Threshold = 0.000000000292 + + Energy Rydberg eV + E_KohnSham -16.152360339897 -219.764136771816 + E_Harris -16.152360342174 -219.764136802793 + E_Fermi -0.648723968748 -8.826342404147 + + PW ALGORITHM --------------- ION= 1 ELEC= 12-------------------------------- + K-point CG iter num Time(Sec) + 1 3.200000 0.490000 + + Density error is 0.000000000130 + Error Threshold = 0.000000000013 + + Energy Rydberg eV + E_KohnSham -16.152360339384 -219.764136764834 + E_Harris -16.152360340069 -219.764136774158 + E_band -6.635560338377 -90.281430024732 + E_one_elec -40.940654383931 -557.026179470144 + E_Hartree +21.302466346428 +289.834923764663 + E_xc -6.412543006742 -87.247123561742 + E_Ewald +9.898370704861 +134.674242502389 + E_demet +0.000000000000 +0.000000000000 + E_descf +0.000000000000 +0.000000000000 + E_efield +0.000000000000 +0.000000000000 + E_Fermi -0.648717389113 -8.826252883621 + charge density convergence is achieved + final etot is -219.764136764834 eV + + STATE ENERGY(eV) AND OCCUPATIONS. 1/1 kpoint (Cartesian) = 0.00000 0.00000 0.00000 (20178 pws) + [spin1_state] 1 -17.054872 2.000000 + [spin1_state] 2 -9.695583 2.000000 + [spin1_state] 3 -9.564007 2.000000 + [spin1_state] 4 -8.826253 2.000000 + [spin1_state] 5 -0.463743 0.000000 + + + + ><><><><><><><><><><><><><><><><><><><><><>< + + TOTAL-FORCE (Ry/Bohr) + + ><><><><><><><><><><><><><><><><><><><><><>< + + atom x y z + H1 +0.006276 -0.010856 +0.009239 + H2 -0.017059 +0.000470 -0.003141 + H3 -0.013780 -0.092793 +0.035676 + H4 -0.033559 +0.011029 -0.018084 + C1 +0.058123 +0.092150 -0.023689 + + + ><><><><><><><><><><><><><><><><><><><><><>< + + TOTAL-FORCE (eV/Angstrom) + + ><><><><><><><><><><><><><><><><><><><><><>< + + atom x y z + H1 +0.161367 -0.279115 +0.237538 + H2 -0.438608 +0.012083 -0.080753 + H3 -0.354308 -2.385815 +0.917260 + H4 -0.862843 +0.283572 -0.464968 + C1 +1.494392 +2.369276 -0.609077 + + + ><><><><><><><><><><><><><><><><><><><><><>< + + TOTAL-STRESS (KBAR) + + ><><><><><><><><><><><><><><><><><><><><><>< + + +1.14837900 -0.13180299 +0.56581952 + -0.13180299 +3.68777738 -1.56694085 + +0.56581952 -1.56694085 +0.98901525 + + + -------------------------------------------- + !FINAL_ETOT_IS -219.7641367648340349 eV + -------------------------------------------- + + + + + + + |CLASS_NAME---------|NAME---------------|TIME(Sec)-----|CALLS----|AVG------|PER%------- + A DC_Driv reading +0.288 1 +0.29 +1.17% + B Run_Frag frag_init +0.21 1 +0.21 +0.85% + A DC_Driv divide_frag +0.46 1 +0.46 +1.89% + B PW_Basis gen_pw +0.46 1 +0.46 +1.88% + A DC_Driv solve_eachf +23.89 1 +23.89 +96.95% + B Run_Frag frag_pw_line +23.89 1 +23.89 +96.95% + C ppcell_vl init_vloc +5.66 1 +5.66 +22.96% + X FFT FFT3D +8.18 837 +0.01 +33.21% + E potential v_of_rho +3.09 13 +0.24 +12.52% + C wavefunc wfcinit +0.13 1 +0.13 +0.54% + G Hamilt_PW cinitcgg +1.49 13 +0.11 +6.05% + H Hamilt_PW h_psi +6.34 294 +0.02 +25.75% + I Hamilt_PW add_vuspsi +0.16 294 +0.00 +0.67% + C Ions opt_ions_pw +16.91 1 +16.91 +68.64% + D electrons self_consistent +12.70 1 +12.70 +51.54% + E electrons c_bands +6.66 12 +0.56 +27.05% + F Hamilt diago +6.54 12 +0.55 +26.56% + G Diago_CG diag +5.16 12 +0.43 +20.93% + E Charge mix_rho +0.76 12 +0.06 +3.09% + ---------------------------------------------------------------------------------------- + + CLASS_NAME---------|NAME---------------|MEMORY(MB)-------- + +98.5390 + Charge_Pulay Rrho +21.3574 + Charge_Pulay dRrho +18.6877 + Charge_Pulay drho +18.6877 + Use_FFT porter +5.3394 + PW_Basis struc_fac +4.9242 + Charge rho +2.6697 + Charge rho_save +2.6697 + Charge rho_core +2.6697 + potential vltot +2.6697 + potential vr +2.6697 + potential vrs +2.6697 + potential vrs1 +2.6697 + potential vnew +2.6697 + Charge_Pulay rho_save2 +2.6697 + wavefunc evc +1.5395 + Charge rhog +1.2310 + Charge rhog_save +1.2310 + Charge rhog_core +1.2310 + ---------------------------------------------------------- + + Start Time : Tue Jun 1 15:08:11 2021 + Finish Time : Tue Jun 1 15:08:36 2021 + Total Time : +0 h +0 mins +25 secs diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/POSCAR b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/POSCAR new file mode 100644 index 000000000..7c2c619b0 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/POSCAR @@ -0,0 +1,13 @@ +H4 C1 +1.0 +1.0256560185400000e+01 0.0000000000000000e+00 0.0000000000000000e+00 +-2.4531774970000000e-01 9.8128484190999998e+00 0.0000000000000000e+00 +-2.5710315189999999e-01 -3.0129123369999999e-01 9.8293471193999995e+00 +H C +4 1 +Cartesian + 5.9687000000 4.6383900000 4.1575300000 + 4.6429900000 5.1980600000 5.1279100000 + 4.7622200000 3.4931800000 4.6941900000 + 4.4575900000 4.6034900000 3.4124700000 + 4.9073000000 4.4569300000 4.3732300000 diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/STRU b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/STRU new file mode 100644 index 000000000..7990c5e3a --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/STRU @@ -0,0 +1,25 @@ +ATOMIC_SPECIES +H 1.00 H_ONCV_PBE-1.0.upf +C 1.00 C_ONCV_PBE-1.0.upf + +LATTICE_CONSTANT +1.8897261254578281 + +LATTICE_VECTORS +10.2565601854 0.0 0.0 +-0.2453177497 9.8128484191 0.0 +-0.2571031519 -0.3012912337 9.8293471194 + +ATOMIC_POSITIONS +Cartesian # Cartesian(Unit is LATTICE_CONSTANT) +H +0.0 +4 +5.968700000000 4.638390000000 4.157530000000 0 0 0 +4.642990000000 5.198060000000 5.127910000000 0 0 0 +4.762220000000 3.493180000000 4.694190000000 0 0 0 +4.457590000000 4.603490000000 3.412470000000 0 0 0 +C +0.0 +1 +4.907300000000 4.456930000000 4.373230000000 0 0 0 diff --git a/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/output b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/output new file mode 100644 index 000000000..b0debe1e8 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/02.fp/task.001.000001/output @@ -0,0 +1,81 @@ + ********************************************************* + * * + * WELCOME TO ABACUS * + * * + * 'Atomic-orbital Based Ab-initio * + * Computation at UStc' * + * * + * Website: http://abacus.ustc.edu.cn/ * + * * + ********************************************************* + Tue Jun 1 15:08:11 2021 + MAKE THE DIR : OUT.ABACUS/ + DONE(0.227909 SEC) : SETUP UNITCELL + DONE(0.279072 SEC) : SYMMETRY + DONE(0.280556 SEC) : INIT K-POINTS + --------------------------------------------------------- + This calculation is self-consistent + --------------------------------------------------------- + SPIN KPOINTS PROCESSORS + 1 1 4 + --------------------------------------------------------- + Use plane wave basis + --------------------------------------------------------- + ELEMENT NATOM XC + H 4 PBE + C 1 PBE + --------------------------------------------------------- + Initial plane wave basis and FFT box + --------------------------------------------------------- + DONE(0.752093 SEC) : INIT PLANEWAVE + UNIFORM GRID DIM : 120 * 108 * 108 + UNIFORM GRID DIM(BIG): 120 * 108 * 108 + MEMORY FOR PSI (MB) : 1.53946 + DONE(6.44984 SEC) : LOCAL POTENTIAL + DONE(6.45586 SEC) : NON-LOCAL POTENTIAL + START POTENTIAL : atomic + DONE(7.58819 SEC) : INIT POTENTIAL + DONE(7.7217 SEC) : INIT BASIS + ------------------------------------------- + SELF-CONSISTENT : + ------------------------------------------- + ITER ETOT(eV) EDIFF(eV) DRHO2 CG_ITER TIME(S) + CG1 -2.187025e+02 0.000000e+00 7.298e-01 1.080e+01 1.730e+00 + CG2 -2.196514e+02 -9.488816e-01 5.470e-02 2.600e+00 9.200e-01 + CG3 -2.197226e+02 -7.120777e-02 1.663e-02 3.600e+00 1.060e+00 + CG4 -2.197322e+02 -9.626955e-03 1.204e-02 3.000e+00 9.600e-01 + CG5 -2.197629e+02 -3.073386e-02 3.887e-05 2.800e+00 9.400e-01 + CG6 -2.197641e+02 -1.190684e-03 6.534e-06 4.800e+00 1.180e+00 + CG7 -2.197641e+02 -5.146530e-06 6.104e-07 2.800e+00 9.500e-01 + CG8 -2.197641e+02 -4.310203e-07 1.719e-07 3.600e+00 1.040e+00 + CG9 -2.197641e+02 1.198682e-07 6.711e-08 3.200e+00 9.700e-01 + CG10 -2.197641e+02 1.184017e-07 2.332e-08 2.800e+00 9.600e-01 + CG11 -2.197641e+02 -2.947662e-08 1.012e-09 2.600e+00 9.300e-01 + CG12 -2.197641e+02 6.981625e-09 1.296e-10 3.200e+00 9.700e-01 + + |CLASS_NAME---------|NAME---------------|TIME(Sec)-----|CALLS----|AVG------|PER%------- + A DC_Driv reading 0.29 1 0.29 1.2 % + B Run_Frag frag_init 0.21 1 0.21 0.85 % + A DC_Driv divide_frag 0.46 1 0.46 1.9 % + B PW_Basis gen_pw 0.46 1 0.46 1.9 % + A DC_Driv solve_eachf 24 1 24 97 % + B Run_Frag frag_pw_line 24 1 24 97 % + C ppcell_vl init_vloc 5.7 1 5.7 23 % + X FFT FFT3D 8.2 837 0.0098 33 % + E potential v_of_rho 3.1 13 0.24 13 % + C wavefunc wfcinit 0.13 1 0.13 0.54 % + G Hamilt_PW cinitcgg 1.5 13 0.11 6.1 % + H Hamilt_PW h_psi 6.3 294 0.022 26 % + I Hamilt_PW add_vuspsi 0.16 294 0.00056 0.67 % + C Ions opt_ions_pw 17 1 17 69 % + D electrons self_consistent 13 1 13 52 % + E electrons c_bands 6.7 12 0.56 27 % + F Hamilt diago 6.5 12 0.55 27 % + G Diago_CG diag 5.2 12 0.43 21 % + E Charge mix_rho 0.76 12 0.063 3.1 % + ---------------------------------------------------------------------------------------- + + START Time : Tue Jun 1 15:08:11 2021 + FINISH Time : Tue Jun 1 15:08:36 2021 + TOTAL Time : 25 + SEE INFORMATION IN : OUT.ABACUS/ diff --git a/tests/generator/out_data_post_fp_abacus/orig/box.raw b/tests/generator/out_data_post_fp_abacus/orig/box.raw new file mode 100644 index 000000000..01d8995ec --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/orig/box.raw @@ -0,0 +1,2 @@ +1.025655610217515346e+01 0.000000000000000000e+00 0.000000000000000000e+00 -2.453176520368934022e-01 9.812844512520625173e+00 0.000000000000000000e+00 -2.571030495450233877e-01 -3.012911137533678674e-01 9.829343206252350029e+00 +1.025655610217515346e+01 0.000000000000000000e+00 0.000000000000000000e+00 -2.453176520368934022e-01 9.812844512520625173e+00 0.000000000000000000e+00 -2.571030495450233877e-01 -3.012911137533678674e-01 9.829343206252350029e+00 diff --git a/tests/generator/out_data_post_fp_abacus/orig/coord.raw b/tests/generator/out_data_post_fp_abacus/orig/coord.raw new file mode 100644 index 000000000..c80e71221 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/orig/coord.raw @@ -0,0 +1,2 @@ +5.347517871106284737e+00 4.132988354621125460e+00 3.424088636840314059e+00 4.009958403600426990e+00 5.010068005448031769e+00 4.173708338410142993e+00 5.589177774899359186e+00 5.082417976644874713e+00 4.866118062755765195e+00 4.705248126799496333e+00 3.519008599051845820e+00 4.886068054813499373e+00 4.922268040401967859e+00 4.472648219399557590e+00 4.376728257586134596e+00 +5.968697623809181785e+00 4.638388153417038140e+00 4.157528344851540325e+00 4.642988151585738521e+00 5.198057930607595800e+00 5.127907958534914101e+00 4.762218104119249062e+00 3.493178609334990803e+00 4.694188131202577274e+00 4.457588225395072712e+00 4.603488167311027723e+00 3.412468641466336106e+00 4.907298046361653121e+00 4.456928225657824427e+00 4.373228258979515282e+00 diff --git a/tests/generator/out_data_post_fp_abacus/orig/energy.raw b/tests/generator/out_data_post_fp_abacus/orig/energy.raw new file mode 100644 index 000000000..d7e762650 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/orig/energy.raw @@ -0,0 +1,2 @@ +-2.197924465754728089e+02 +-2.197641367648340349e+02 diff --git a/tests/generator/out_data_post_fp_abacus/orig/force.raw b/tests/generator/out_data_post_fp_abacus/orig/force.raw new file mode 100644 index 000000000..1e42ae234 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/orig/force.raw @@ -0,0 +1,2 @@ +7.607500000000000373e-02 3.334309999999999774e-01 -1.210559999999999969e-01 -4.998139999999999805e-01 1.840160000000000129e-01 -5.376000000000000223e-02 1.661246000000000000e+00 1.279636999999999913e+00 1.377318999999999960e+00 -5.203000000000000159e-03 4.784840000000000204e-01 3.535690000000000222e-01 -1.232302999999999926e+00 -2.275568999999999953e+00 -1.556071999999999900e+00 +1.613670000000000104e-01 -2.791150000000000020e-01 2.375379999999999991e-01 -4.386079999999999979e-01 1.208299999999999999e-02 -8.075300000000000533e-02 -3.543080000000000118e-01 -2.385815000000000019e+00 9.172599999999999643e-01 -8.628430000000000266e-01 2.835719999999999907e-01 -4.649679999999999924e-01 1.494391999999999943e+00 2.369276000000000160e+00 -6.090769999999999795e-01 diff --git a/tests/generator/out_data_post_fp_abacus/orig/set.000/box.npy b/tests/generator/out_data_post_fp_abacus/orig/set.000/box.npy new file mode 100644 index 000000000..5493f23dc Binary files /dev/null and b/tests/generator/out_data_post_fp_abacus/orig/set.000/box.npy differ diff --git a/tests/generator/out_data_post_fp_abacus/orig/set.000/coord.npy b/tests/generator/out_data_post_fp_abacus/orig/set.000/coord.npy new file mode 100644 index 000000000..9ef5c3713 Binary files /dev/null and b/tests/generator/out_data_post_fp_abacus/orig/set.000/coord.npy differ diff --git a/tests/generator/out_data_post_fp_abacus/orig/set.000/energy.npy b/tests/generator/out_data_post_fp_abacus/orig/set.000/energy.npy new file mode 100644 index 000000000..a9e9c21e5 Binary files /dev/null and b/tests/generator/out_data_post_fp_abacus/orig/set.000/energy.npy differ diff --git a/tests/generator/out_data_post_fp_abacus/orig/set.000/force.npy b/tests/generator/out_data_post_fp_abacus/orig/set.000/force.npy new file mode 100644 index 000000000..6c90fae84 Binary files /dev/null and b/tests/generator/out_data_post_fp_abacus/orig/set.000/force.npy differ diff --git a/tests/generator/out_data_post_fp_abacus/orig/set.000/virial.npy b/tests/generator/out_data_post_fp_abacus/orig/set.000/virial.npy new file mode 100644 index 000000000..8b7077794 Binary files /dev/null and b/tests/generator/out_data_post_fp_abacus/orig/set.000/virial.npy differ diff --git a/tests/generator/out_data_post_fp_abacus/orig/type.raw b/tests/generator/out_data_post_fp_abacus/orig/type.raw new file mode 100644 index 000000000..0b21c0d0e --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/orig/type.raw @@ -0,0 +1,5 @@ +0 +0 +0 +0 +1 diff --git a/tests/generator/out_data_post_fp_abacus/orig/type_map.raw b/tests/generator/out_data_post_fp_abacus/orig/type_map.raw new file mode 100644 index 000000000..35025b8b1 --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/orig/type_map.raw @@ -0,0 +1,2 @@ +H +C diff --git a/tests/generator/out_data_post_fp_abacus/orig/virial.raw b/tests/generator/out_data_post_fp_abacus/orig/virial.raw new file mode 100644 index 000000000..bd961b15b --- /dev/null +++ b/tests/generator/out_data_post_fp_abacus/orig/virial.raw @@ -0,0 +1,2 @@ +1.577361027367633950e+00 7.219745599453539775e-01 8.379100448482763586e-01 7.219745599453539775e-01 2.902466263928850099e-01 5.136411252101861225e-01 8.379100448482763586e-01 5.136411252101861225e-01 9.625665818900658310e-01 +7.090754003383151760e-01 -8.138276466222123251e-02 3.493695919755006041e-01 -8.138276466222123251e-02 2.277046360201712805e+00 -9.675196172345627010e-01 3.493695919755006041e-01 -9.675196172345627010e-01 6.106750335337453039e-01 diff --git a/tests/generator/param-methane-abacus.json b/tests/generator/param-methane-abacus.json new file mode 100644 index 000000000..2fca7d924 --- /dev/null +++ b/tests/generator/param-methane-abacus.json @@ -0,0 +1,147 @@ +{ + "type_map": ["H", "C"], + "mass_map": [1.0, 12.0], + + "_comment": "initial data set for Training and the number of frames in each training batch", + "init_data_prefix": "/home/mhchen_pkuhpc/mhchen_cls/lustre2/5_liurenxi/5_ABACUS_dpgen_interface/5_dpgen_examples/dpgen-example/run_abacus/", + "init_data_sys": [ + "abacus_init_data" + ], + "init_batch_size": [ + 8 + ], + + "_comment": "configurations for starting MD in Exploration and batch sizes when traning snapshots derived from these configs (if they were selected)", + "sys_configs_prefix": "/home/mhchen_pkuhpc/mhchen_cls/lustre2/5_liurenxi/5_ABACUS_dpgen_interface/5_dpgen_examples/dpgen-example/run", + "sys_configs": [ + [ + "CH4.POSCAR.01x01x01/01.scale_pert/sys-0004-0001/scale-1.000/000000/POSCAR", + "CH4.POSCAR.01x01x01/01.scale_pert/sys-0004-0001/scale-1.000/000001/POSCAR", + "CH4.POSCAR.01x01x01/01.scale_pert/sys-0004-0001/scale-1.000/00000[2-9]/POSCAR" + ], + [ + "CH4.POSCAR.01x01x01/01.scale_pert/sys-0004-0001/scale-1.000/00001*/POSCAR" + ] + ], + "sys_batch_size": [ + 8, + 8 + ], + + "_comment": " 00.train ", + "numb_models": 4, + + "default_training_param": { + "model": { + "type_map": ["H","C"], + "descriptor": { + "type": "se_a", + "sel": [16,4], + "rcut_smth": 0.5, + "rcut": 5.0, + "neuron": [10,20,40], + "resnet_dt": false, + "axis_neuron": 12, + "seed": 0 + }, + "fitting_net": { + "neuron": [120,120,120], + "resnet_dt": true, + "coord_norm": true, + "type_fitting_net": false, + "seed": 0 + } + }, + "loss": { + "start_pref_e": 0.02, + "limit_pref_e": 2, + "start_pref_f": 1000, + "limit_pref_f": 1, + "start_pref_v": 0, + "limit_pref_v": 0 + }, + "learning_rate": { + "type": "exp", + "start_lr": 0.001, + "decay_steps": 180, + "decay_rate": 0.95 + }, + "training": { + "systems": [], + "set_prefix": "set", + "stop_batch": 36000, + "batch_size": 1, + "seed": 1, + "_comment": "frequencies counted in batch", + "disp_file": "lcurve.out", + "disp_freq": 1000, + "numb_test": 4, + "save_freq": 1000, + "save_ckpt": "model.ckpt", + "load_ckpt": "model.ckpt", + "disp_training": true, + "time_training": true, + "profiling": false, + "profiling_file": "timeline.json" + } + }, + + "_comment": " 01.model_devi ", + "model_devi_dt": 0.002, + "model_devi_skip": 0, + "model_devi_f_trust_lo": 0.05, + "model_devi_f_trust_hi": 0.15, + "model_devi_clean_traj": false, + "model_devi_jobs": [ + { + "sys_idx": [ + 0 + ], + "temps": [ + 50 + ], + "press": [ + 1 + ], + "trj_freq": 10, + "nsteps": 1000, + "ensemble": "nvt", + "_idx": "00" + }, + { + "sys_idx": [ + 1 + ], + "temps": [ + 50 + ], + "press": [ + 1 + ], + "trj_freq": 10, + "nsteps": 3000, + "ensemble": "nvt", + "_idx": "01" + } + ], + + "_comment": " 02.fp ", + "fp_style": "abacus/scf", + "shuffle_poscar": false, + "fp_task_max": 30, + "fp_task_min": 8, + "fp_pp_path": ".", + "fp_pp_files": [ "H_HSCV_PBE-1.0.UPF","C_HSCV_PBE-1.0.UPF"], + "user_fp_params":{ + "ntype": 2, + "ecutwfc": 80, + "mixing_type": "pulay", + "mixing_beta": 0.4, + "symmetry": 1, + "nbands": 5, + "nspin": 1, + "ks_solver": "cg", + "smearing": "fixed", + "sigma": 0.001 + } +} diff --git a/tests/generator/test_make_fp.py b/tests/generator/test_make_fp.py index f1ad5ecaa..09ac5aede 100644 --- a/tests/generator/test_make_fp.py +++ b/tests/generator/test_make_fp.py @@ -13,6 +13,7 @@ from .context import param_old_file from .context import param_pwscf_file from .context import param_pwscf_old_file +from .context import param_abacus_post_file from .context import param_siesta_file from .context import param_gaussian_file from .context import param_cp2k_file @@ -148,7 +149,25 @@ IN.PSP2 = H.SG15.PBE.UPF\n\ IN.PSP3 = N.SG15.PBE.UPF\n"; - +abacus_input_ref = "INPUT_PARAMETERS\n\ +ntype 2\n\ +pseudo_dir ./\n\ +ecutwfc 80.000000\n\ +mixing_type pulay\n\ +mixing_beta 0.400000\n\ +symmetry 1\n\ +nbands 5.000000\n\ +nspin 1\n\ +ks_solver cg\n\ +smearing fixed\n\ +sigma 0.001000\n\ +force 1\n\ +stress 1\n" + +abacus_kpt_ref = "K_POINTS\n\ +0\n\ +Gamma\n\ +1 1 1 0 0 0\n" def _box2lmpbox(orig, box) : @@ -382,6 +401,26 @@ def _check_pwscf_input_head(testCase, idx) : lines = lines[:idx] testCase.assertEqual(('\n'.join(lines)).strip(), pwscf_input_ref.strip()) +def _check_abacus_input(testCase, idx) : + fp_path = os.path.join('iter.%06d' % idx, '02.fp') + tasks = glob.glob(os.path.join(fp_path, 'task.*')) + for ii in tasks : + ifile = os.path.join(ii, 'INPUT') + testCase.assertTrue(os.path.isfile(ifile)) + with open(ifile) as fp: + lines = fp.read().split('\n') + testCase.assertEqual(('\n'.join(lines)).strip(), abacus_input_ref.strip()) + +def _check_abacus_kpt(testCase, idx) : + fp_path = os.path.join('iter.%06d' % idx, '02.fp') + tasks = glob.glob(os.path.join(fp_path, 'task.*')) + for ii in tasks : + ifile = os.path.join(ii, 'KPT') + testCase.assertTrue(os.path.isfile(ifile)) + with open(ifile) as fp: + lines = fp.read().split('\n') + testCase.assertEqual(('\n'.join(lines)).strip(), abacus_kpt_ref.strip()) + def _check_siesta_input_head(testCase, idx) : fp_path = os.path.join('iter.%06d' % idx, '02.fp') tasks = glob.glob(os.path.join(fp_path, 'task.*')) @@ -497,6 +536,35 @@ def test_make_fp_pwscf_old(self): _check_potcar(self, 0, jdata['fp_pp_path'], jdata['fp_pp_files']) shutil.rmtree('iter.000000') +class TestMakeFPABACUS(unittest.TestCase): + def test_make_fp_abacus(self): + setUpModule() + if os.path.isdir('iter.000000') : + shutil.rmtree('iter.000000') + with open (param_abacus_post_file, 'r') as fp : + jdata = json.load (fp) + with open (machine_file, 'r') as fp: + mdata = json.load (fp) + md_descript = [] + nsys = 2 + nmd = 3 + n_frame = 10 + for ii in range(nsys) : + tmp = [] + for jj in range(nmd) : + tmp.append(np.arange(0, 0.29, 0.29/10)) + md_descript.append(tmp) + atom_types = [0, 0, 0, 0, 1] + type_map = jdata['type_map'] + _make_fake_md(0, md_descript, atom_types, type_map) + make_fp(0, jdata, {}) + _check_sel(self, 0, jdata['fp_task_max'], jdata['model_devi_f_trust_lo'], jdata['model_devi_f_trust_hi']) + _check_poscars(self, 0, jdata['fp_task_max'], jdata['type_map']) + _check_abacus_input(self, 0) + _check_abacus_kpt(self, 0) + _check_potcar(self, 0, jdata['fp_pp_path'], jdata['fp_pp_files']) + shutil.rmtree('iter.000000') + class TestMakeFPSIESTA(unittest.TestCase): def test_make_fp_siesta(self): setUpModule() diff --git a/tests/generator/test_post_fp.py b/tests/generator/test_post_fp.py index 629f416b8..8c14889f6 100644 --- a/tests/generator/test_post_fp.py +++ b/tests/generator/test_post_fp.py @@ -7,6 +7,7 @@ __package__ = 'generator' from .context import post_fp from .context import post_fp_pwscf +from .context import post_fp_abacus_pw_scf from .context import post_fp_siesta from .context import post_fp_vasp from .context import post_fp_gaussian @@ -15,6 +16,7 @@ from .context import param_old_file from .context import param_pwscf_file from .context import param_pwscf_old_file +from .context import param_abacus_post_file from .context import param_siesta_file from .context import param_gaussian_file from .context import param_cp2k_file @@ -177,6 +179,22 @@ def setUp(self): self.system_1 = dpdata.LabeledSystem('iter.000000/orig', fmt = 'deepmd/raw') self.system_2 = dpdata.LabeledSystem('iter.000000/02.fp/data.000', fmt = 'deepmd/raw') +class TestPostFPABACUS(unittest.TestCase, CompLabeledSys): + def setUp(self): + self.places = 5 + self.e_places = 5 + self.f_places = 5 + self.v_places = 2 + assert os.path.isdir('out_data_post_fp_abacus'), 'out data for post fp pwscf should exist' + if os.path.isdir('iter.000000') : + shutil.rmtree('iter.000000') + shutil.copytree('out_data_post_fp_abacus', 'iter.000000') + with open (param_abacus_post_file, 'r') as fp : + jdata = json.load (fp) + post_fp(0, jdata) + self.system_1 = dpdata.LabeledSystem('iter.000000/orig', fmt = 'deepmd/raw') + self.system_2 = dpdata.LabeledSystem('iter.000000/02.fp/data.000', fmt = 'deepmd/raw') + class TestPostFPSIESTA(unittest.TestCase, CompLabeledSys): def setUp(self): self.places = 5