PySCF cli tools
-
Purpose:
- Provide a simple template input, that defines a unique quantum chemistry calculation. The input allows to trigger a calculation completely from cli.
- A straight-forward input config make users know how to run pyscf calculation, without knowing the underlying program language or modules.
- The pyscf cli works like a compiler, that can generate a Python script.
- Make the input/output a standard config format which can be parsed by other programs or tools.
- Not necessary to cover all functionalities of pyscf.
- A very basic rule for the cli entry: it cannot be more complicated than writing a python script.
-
Yaml, Json, Toml (QCSchema in the future) format as input and output
-
Input sample
version: v1
Mole: # or Cell
verbose: 4
atom: |
H 0 0 0
H 0 0 1
basis:
name-string-or-anything-supported-by-basis-input
HF: # or any method keywords, like, KS, CCSD, MP2, CASSCF(x,x), DFT ..
conv_tol: 1e-9
level_shift: 0.2
max_cycle: 12
xc:
b3lyp
grids:
level: 3
density_fit:
auxbasis: weigend
newton:
micro: 2
x2c:
atom
results: # a list of attributes in results, if key-value are provided, the
# key will be used as function name, values are used as arguments
# (or kwargs)
- mo_energy
- e_tot
Solvent: # or the name of Solvent-model (ddCOSMO, ddPCM), default is ddCOSMO
eps: 1.8
CCSD: # or any post-HF method names
results:
- e_tot
- e_corr
Gradients: # or other property names
unit: au
Geomopt:
- cli arguments
-o Output format (yaml, json, toml, QCSchema)
-k Keys to substitute in config template if input file is a template
--dry-run Only generate the pyscf script. Do not run the code
$ pyscfcli -k key=val input.yaml