from dargs import Argument, ArgumentEncoder
from dpgen.arginfo import general_mdata_arginfo
[docs]def init_bulk_mdata_arginfo() -> Argument:
"""Generate arginfo for dpgen init_bulk mdata.
Returns
-------
Argument
arginfo
"""
return general_mdata_arginfo("init_bulk_mdata", ("fp",))
[docs]def init_surf_mdata_arginfo() -> Argument:
"""Generate arginfo for dpgen init_surf mdata.
Returns
-------
Argument
arginfo
"""
return general_mdata_arginfo("init_surf_mdata", ("fp",))
[docs]def init_reaction_mdata_arginfo() -> Argument:
"""Generate arginfo for dpgen init_reaction mdata.
Returns
-------
Argument
arginfo
"""
return general_mdata_arginfo("init_reaction_mdata", ("reaxff", "build", "fp"))
[docs]def init_reaction_jdata_arginfo() -> Argument:
"""Generate arginfo for dpgen init_reaction jdata.
Returns
-------
Argument
dpgen init_reaction jdata arginfo
"""
doc_init_reaction = "Generate initial data for reactive systems for small gas-phase molecules, from a ReaxFF NVT MD trajectory."
doc_type_map = "Type map, which should match types in the initial data. e.g. [\"C\", \"H\", \"O\"]"
doc_reaxff = "Parameters for ReaxFF NVT MD."
doc_data = "Path to initial LAMMPS data file. The atom_style should be charge."
doc_ff = "Path to ReaxFF force field file. Available in the lammps/potentials directory."
doc_control = "Path to ReaxFF control file."
doc_temp = "Target Temperature for the NVT MD simulation. Unit: K."
doc_dt = "Real time for every time step. Unit: fs."
doc_tau_t = "Time to determine how rapidly the temperature. Unit: fs."
doc_dump_frep = "Frequency of time steps to collect trajectory."
doc_nstep = "Total steps to run the ReaxFF MD simulation."
doc_cutoff = "Cutoff radius to take clusters from the trajectory. Note that only a complete molecule or free radical will be taken."
doc_dataset_size = "Collected dataset size for each bond type."
doc_qmkeywords = "Gaussian keywords for first-principle calculations. e.g. force mn15/6-31g** Geom=PrintInputOrient. Note that \"force\" job is necessary to collect data. Geom=PrintInputOrient should be used when there are more than 50 atoms in a cluster."
return Argument("init_reaction_jdata", dict, [
Argument("type_map", list, doc=doc_type_map),
Argument("reaxff", dict, [
Argument("data", str, doc=doc_data),
Argument("ff", str, doc=doc_ff),
Argument("control", str, doc=doc_control),
Argument("temp", [float, int], doc=doc_temp),
Argument("dt", [float, int], doc=doc_dt),
Argument("tau_t", [float, int], doc=doc_tau_t),
Argument("dump_freq", int, doc=doc_dump_frep),
Argument("nstep", int, doc=doc_nstep),
], doc=doc_reaxff),
Argument("cutoff", float, doc=doc_cutoff),
Argument("dataset_size", int, doc=doc_dataset_size),
Argument("qmkeywords", str, doc=doc_qmkeywords),
], doc=doc_init_reaction)