dpgen.generator.lib package

Contents

dpgen.generator.lib package#

Submodules#

dpgen.generator.lib.abacus_scf module#

dpgen.generator.lib.abacus_scf.get_abacus_STRU(STRU)[source]#

Read STRU file and return a dictionary containing the structure information.

Args:

STRU (str): The path of STRU file.

Returns:
dict: A dictionary containing the structure information.
{

“atom_names”: list of str, “atom_numbs”: list of int, “atom_masses”: list of float, “coords”: np.ndarray, “cells”: np.ndarray, “pp_files”: list of str, “orb_files”: list of str, “dpks_descriptor”: str,

}
dpgen.generator.lib.abacus_scf.get_abacus_input_parameters(INPUT)[source]#
dpgen.generator.lib.abacus_scf.make_abacus_scf_input(fp_params, extra_file_path='')[source]#
dpgen.generator.lib.abacus_scf.make_abacus_scf_kpt(fp_params)[source]#
dpgen.generator.lib.abacus_scf.make_abacus_scf_stru(sys_data, fp_pp_files, fp_orb_files=None, fp_dpks_descriptor=None, type_map=None, pporb='')[source]#
dpgen.generator.lib.abacus_scf.make_kspacing_kpoints_stru(stru, kspacing)[source]#
dpgen.generator.lib.abacus_scf.make_supercell_abacus(from_struct, super_cell)[source]#

dpgen.generator.lib.calypso_check_outcar module#

dpgen.generator.lib.calypso_run_model_devi module#

dpgen.generator.lib.calypso_run_opt module#

dpgen.generator.lib.cp2k module#

dpgen.generator.lib.cp2k.calculate_multiplicity(atom_names, atom_types, charge=0)[source]#

Calculate the multiplicity based on atom species, quantities, and system charge.

This function provides a basic heuristic for determining multiplicity: - Even number of electrons -> singlet (multiplicity = 1) - Odd number of electrons -> doublet (multiplicity = 2)

Note: This approach assumes that an odd electron count always results in a doublet state. It does not account for systems with multiple unpaired electrons, which can have higher multiplicities (e.g., triplet, quartet, etc.). Users should be aware of this limitation and use the function accordingly.

Parameters:
  • atom_names – List of element symbols.

  • atom_types – List of atom type indices.

  • charge – System charge (default: 0).

Returns:

Multiplicity.

dpgen.generator.lib.cp2k.iterdict(d, out_list, flag=None, indent=0)[source]#
Doc:

a recursive expansion of dictionary into cp2k input

K:

current key

V:

current value

D:

current dictionary under expansion

Flag:

used to record dictionary state. if flag is None,

it means we are in top level dict. flag is a string. :indent: intent for current section.

dpgen.generator.lib.cp2k.make_cp2k_input(sys_data, fp_params)[source]#
dpgen.generator.lib.cp2k.make_cp2k_input_from_external(sys_data, exinput_path)[source]#
dpgen.generator.lib.cp2k.make_cp2k_xyz(sys_data)[source]#
dpgen.generator.lib.cp2k.update_dict(old_d, update_d)[source]#

A method to recursive update dict :old_d: old dictionary :update_d: some update value written in dictionary form.

dpgen.generator.lib.cvasp module#

dpgen.generator.lib.cvasp.runvasp(cmd, opt=False, max_errors=3, backup=False, auto_gamma=False, auto_npar=False, ediffg=-0.05)[source]#

Cmd example: cmd=[‘mpirun’, ‘-np’, ‘32’ , ‘-machinefile’, ‘hosts’,’vasp_std’].

dpgen.generator.lib.ele_temp module#

class dpgen.generator.lib.ele_temp.NBandsEsti(test_list)[source]#

Bases: object

Methods

predict

save

predict(target_dir, tolerance=0.5)[source]#
save(fname)[source]#

dpgen.generator.lib.gaussian module#

dpgen.generator.lib.gaussian.detect_multiplicity(symbols)[source]#
dpgen.generator.lib.gaussian.make_gaussian_input(sys_data, fp_params)[source]#
dpgen.generator.lib.gaussian.take_cluster(old_conf_name, type_map, idx, jdata)[source]#

dpgen.generator.lib.lammps module#

dpgen.generator.lib.lammps.get_all_dumped_forces(file_name)[source]#
dpgen.generator.lib.lammps.get_dumped_forces(file_name)[source]#
dpgen.generator.lib.lammps.make_lammps_input(ensemble, conf_file, graphs, nsteps, dt, neidelay, trj_freq, mass_map, temp, jdata, tau_t=0.1, pres=None, tau_p=0.5, pka_e=None, ele_temp_f=None, ele_temp_a=None, max_seed=1000000, nopbc=False, deepmd_version='0.1', nbeads=None)[source]#

dpgen.generator.lib.make_calypso module#

dpgen.generator.lib.make_calypso.make_calypso_input(nameofatoms, numberofatoms, numberofformula, volume, distanceofion, psoratio, popsize, maxstep, icode, split, vsc, maxnumatom, ctrlrange, pstress, fmax)[source]#
dpgen.generator.lib.make_calypso.write_model_devi_out(devi, fname)[source]#

dpgen.generator.lib.parse_calypso module#

dpgen.generator.lib.pwmat module#

dpgen.generator.lib.pwmat.input_upper(dinput)[source]#
dpgen.generator.lib.pwmat.make_pwmat_input_dict(node1, node2, atom_config, ecut, e_error, rho_error, icmix=None, smearing=None, sigma=None, kspacing=0.5, flag_symm=None)[source]#
dpgen.generator.lib.pwmat.make_pwmat_input_user_dict(fp_params)[source]#
dpgen.generator.lib.pwmat.write_input_dict(input_dict)[source]#

dpgen.generator.lib.pwscf module#

dpgen.generator.lib.pwscf.cvt_1frame(fin, fout)[source]#
dpgen.generator.lib.pwscf.get_atom_types(lines)[source]#
dpgen.generator.lib.pwscf.get_block(lines, keyword, skip=0)[source]#
dpgen.generator.lib.pwscf.get_cell(lines)[source]#
dpgen.generator.lib.pwscf.get_coords(lines)[source]#
dpgen.generator.lib.pwscf.get_energy(lines)[source]#
dpgen.generator.lib.pwscf.get_force(lines)[source]#
dpgen.generator.lib.pwscf.get_natoms(lines)[source]#
dpgen.generator.lib.pwscf.get_stress(lines, cells)[source]#
dpgen.generator.lib.pwscf.get_types(lines)[source]#
dpgen.generator.lib.pwscf.make_pwscf_01_runctrl_dict(sys_data, idict)[source]#
dpgen.generator.lib.pwscf.make_pwscf_input(sys_data, fp_pp_files, fp_params, user_input=True)[source]#

dpgen.generator.lib.run_calypso module#

calypso as model devi engine: 1. gen_structures 2. analysis 3. model devi.

dpgen.generator.lib.run_calypso.analysis(iter_index, jdata, calypso_model_devi_path)[source]#
dpgen.generator.lib.run_calypso.gen_main(iter_index, jdata, mdata, caly_run_opt_list, gen_idx)[source]#
dpgen.generator.lib.run_calypso.gen_structures(iter_index, jdata, mdata, caly_run_path, current_idx, length_of_caly_runopt_list)[source]#
dpgen.generator.lib.run_calypso.run_calypso_model_devi(iter_index, jdata, mdata)[source]#

dpgen.generator.lib.siesta module#

dpgen.generator.lib.siesta.make_siesta_input(sys_data, fp_pp_files, fp_params)[source]#

dpgen.generator.lib.utils module#

dpgen.generator.lib.utils.check_api_version(mdata)[source]#

Check if the API version in mdata is at least 1.0.

dpgen.generator.lib.utils.cmd_append_log(cmd, log_file)[source]#
dpgen.generator.lib.utils.copy_file_list(file_list, from_path, to_path)[source]#
dpgen.generator.lib.utils.create_path(path)[source]#
dpgen.generator.lib.utils.log_iter(task, ii, jj)[source]#
dpgen.generator.lib.utils.log_task(message)[source]#
dpgen.generator.lib.utils.make_iter_name(iter_index)[source]#
dpgen.generator.lib.utils.record_iter(record, ii, jj)[source]#
dpgen.generator.lib.utils.repeat_to_length(string_to_expand, length)[source]#
dpgen.generator.lib.utils.replace(file_name, pattern, subst)[source]#

Symlink user-defined forward_common_files Current path should be work_path, such as 00.train.

Parameters:
mdatadict

machine parameters

task_typestr

task_type, such as “train”

work_pathstr

work_path, such as “iter.000001/00.train”

task_formatdict

formats of tasks

Returns:
None

dpgen.generator.lib.vasp module#

dpgen.generator.lib.vasp.incar_upper(dincar)[source]#
dpgen.generator.lib.vasp.make_vasp_incar_user_dict(fp_params)[source]#
dpgen.generator.lib.vasp.write_incar_dict(incar_dict)[source]#