Usage
Command Line Usage
Generates an input for a computational chemistry package
usage: ccinput [-h] [--basis_set BASIS_SET] [--solvent SOLVENT]
[--solvation_model SOLVATION_MODEL]
[--solvation_radii SOLVATION_RADII]
[--custom_solvation_radii CUSTOM_SOLVATION_RADII]
[--specifications SPECIFICATIONS]
[--density_fitting DENSITY_FITTING]
[--custom_basis_sets CUSTOM_BASIS_SETS] [--xyz XYZ]
[--file FILE [FILE ...]] [--output OUTPUT]
[--constraints CONSTRAINTS] [--freeze ATOM [ATOM ...]]
[--scan ATOM [ATOM ...]] [--from FROM] [--to TO]
[--nsteps NSTEPS] [--step STEP] [--nproc NPROC] [--mem MEM]
[--charge CHARGE] [--mult MULT] [--parse_name] [--trust_me]
[--d3 | --d3bj] [--name NAME] [--aux_name AUX_NAME]
[--header HEADER] [--save SAVE] [--preset [PRESET]]
[--driver {none,ORCA,pysis}] [--version]
[--fragments FRAGMENTS]
[software] [type] [method]
Positional Arguments
- software
Desired software package (Gaussian, ORCA, Q-Chem, …)
- type
Calculation type (opt, freq, sp, …)
- method
Computational method (HF, AM1, B3LYP, …)
Named Arguments
- --basis_set, -bs
Basis set
Default: “”
- --solvent, -s
Solvent for implicit solvation
Default: “”
- --solvation_model, -sm
Solvation model for implicit solvation
Default: “”
- --solvation_radii, -sr
Set of solvation radii for implicit solvation
Default: “”
- --custom_solvation_radii, -csr
Specific solvation radii to modify
Default: “”
- --specifications, -spec
Additional commands
Default: “”
- --density_fitting, -df
Basis set for density fitting (Gaussian only)
Default: “”
- --custom_basis_sets, -cbs
String specification of custom basis sets on a per-atom basis
Default: “”
- --xyz, -x
XYZ structure as string
Default: “”
- --file, -f
XYZ structure(s) as file(s)
- --output, -o
Write the result to the specified file (single file) or using the specified pattern (multiple files)
Default: “”
- --constraints, -co
String specification of constraints for certain calculations
Default: “”
- --freeze
Freeze specified distance/angle/dihedral between the specified atoms
Default: []
- --scan
Scan specified distance/angle/dihedral between the specified atoms (additional parameters required)
Default: []
- --from
Initial distance (for –scan)
Default: []
- --to
Final distance (for –scan)
Default: []
- --nsteps
Number of steps (for –scan)
Default: []
- --step
Step size in Å (for –scan)
Default: []
- --nproc, -n
Number of CPU cores to use
Default: 1
- --mem
Amount of memory to use (if no unit is provided, assumed to be in MB)
Default: “1000MB”
- --charge, -c
Charge of the system
Default: 0
- --mult, -m
Multiplicity of the system
Default: 1
- --parse_name
Use filenames to assign the charge and multiplicity
Default: False
- --trust_me
Unknown values will be accepted as given
Default: False
- --d3
Use the D3(0) dispersion correction
Default: False
- --d3bj
Use the D3 dispersion correction with Becke-Johnson damping
Default: False
- --name
Name of the produced file (unused by some packages)
- --aux_name
Name of the auxiliary file (some calculation types only)
- --header
Header in produced file (unused by some packages)
Default: “File created by ccinput”
- --save
Save the current parameters as a preset of the given name
- --preset
Load parameters from the chosen preset
- --driver
Possible choices: none, ORCA, pysis
Specify a computation driver other than the calculation package
Default: none
- --version, -v
show program’s version number and exit
- --fragments
Assign each atom to a fragment
Python Library Usage
When using ccinput
as a Python library, the desired wrapper must be imported as such:
>>> from ccinput.wrapper import gen_input
>>> inp = gen_input(...)
The generated input can be directly written to files:
>>> from ccinput.wrapper import write_input
>>> inp = write_input(filename, ...)
The parameters to these two wrappers will be the same as in the command line usage, using their long name as named parameters. For example:
>>> from ccinput.wrapper import gen_input
>>> inp = gen_input(software="orca", type="ts", method="PBEh-3c", file="ethanol.xyz", nproc=16, solvent="ethanol", solvation_model="SMD")
Parameter Details
The parameters not case sensitive and ccinput
recognizes several synonyms for each of them. For example, “Def2-TZVP” can be written in any of these forms:
def2-TZVP
DEF2TZVP
def2tzvp
Spaces and symbols other than +
and *
will be ignored. The otherwise different synonyms will be listed for each parameter. If you believe that a common or useful synonym is missing, feel free to send a pull request.
Software
Software package for which the input should be generated. This can influence the availability of certain options.
As of version 1.0, the following packages are supported for most features:
Software id |
Synonyms |
---|---|
gaussian |
g16 gaussian16 |
nwchem |
|
orca |
orca5 |
psi4 |
psi4 |
qchem |
|
xtb |
Type
Type of calculation (e.g. single-point energy, geometrical optimization, transition state optimization…)
Calculation type |
Code |
---|---|
Conformational Search |
CalcType.CONF_SEARCH |
Constrained Conformational Search |
CalcType.CONSTR_CONF_SEARCH |
Constrained Optimisation |
CalcType.CONSTR_OPT |
Frequency Calculation |
CalcType.FREQ |
Geometrical Optimisation |
CalcType.OPT |
MO Calculation |
CalcType.MO |
Minimum energy path |
CalcType.MEP |
NMR Calculation |
CalcType.NMR |
Opt+Freq Calculation |
CalcType.OPTFREQ |
Single-point Energy |
CalcType.SP |
TDA UV-Vis Calculation |
CalcType.UVVIS_TDA |
TS Optimisation |
CalcType.TS |
UV-Vis Calculation |
CalcType.UVVIS |
Method
Calculation method to use.
All computational methods
Method |
Synonyms |
---|---|
am1 |
|
apfd |
|
b1b95 |
|
b1lyp |
|
b1p |
|
b2gpplyp |
|
b2kplyp |
|
b2plyp |
|
b2tplyp |
|
b3lyp |
|
b3p |
|
b3p86 |
|
b97 |
|
b973c |
|
b97d |
|
b97d3 |
|
b98 |
|
bhandhlyp |
|
blyp |
|
bmk |
|
bnl |
|
bnull |
|
bp |
|
bvwn |
|
camb3lyp |
|
ccsd |
|
ccsdt |
|
dlpnoccsd |
|
dlpnoccsdt |
|
dlpnoqcisd |
|
dlpnoqcisdt |
|
g1lyp |
|
g1p |
|
g3lyp |
|
g3p |
|
gfn0xtb |
xtb0 gfn0 |
gfn1xtb |
xtb1 gfn1 gfnxtb |
gfn2xtb |
xtb2 gfn2 |
gfn2xtbgfnff |
gfn2gfnff |
gfnff |
|
glyp |
|
gp |
|
hcth147 |
|
hcth407 |
|
hcth93 |
|
hf |
hartreefock scf |
hf3c |
|
hfs |
|
hissbpbe |
|
hse06 |
hse1pbe |
l7pnoqcisdt |
|
lcblyp |
|
lcpbe |
|
lcpbe0 |
campbe0 |
lcwhpbe |
lrcwpbeh |
lcwpbe |
|
lpnoccsd |
|
lpnoccsdt |
|
lpnoqcisd |
|
lsd |
|
m05 |
|
m052x |
|
m06 |
|
m062x |
|
m06hf |
|
m06l |
|
m08hx |
|
m11 |
|
m11l |
|
mcscf |
|
mn12l |
|
mn12sx |
|
mn15 |
|
mn15l |
|
mndo |
|
mp2 |
|
mpw1lyp |
|
mpw1pbe |
|
mpw1pw |
|
mpw1pw91 |
|
mpw2plyp |
|
mpw3pbe |
|
mpwlyp |
|
mpwpw |
|
n12 |
|
n12sx |
|
o3lyp |
|
ohse1pbe |
|
ohse2pbe |
|
olyp |
|
opbe |
|
pbe |
pbe96 |
pbe0 |
pbe1pbe |
pbeh1pbe |
|
pbeh3c |
|
pm3 |
|
pm6 |
|
pm7 |
pm7r6 |
pw6b95 |
|
pw6b95d3 |
|
pw86pbe |
|
pw91 |
|
pw910 |
|
pwlda |
|
pwp |
|
pwp1 |
|
pwpb95 |
|
qcisd |
|
qcisdt |
|
qtp00 |
|
r2scan3c |
|
revpbe |
|
revtpss |
|
rimp2 |
|
rpbe |
|
rpw86pbe |
|
scanfunc |
|
sogga11 |
|
sogga11x |
|
thcth |
|
thcthhyb |
|
tpss |
|
tpss0 |
|
tpssh |
xctpssh |
vsxc |
|
vwn3 |
|
vwn5 |
|
wb2gpplyp |
|
wb2plyp |
|
wb97 |
|
wb97x |
|
wb97xd |
|
wb97xd3 |
|
wb97xd3bj |
|
wb97xv |
|
x3lyp |
|
xalpha |
|
xlyp |
Basis set
Basis set used for the calculation. Required for most methods, except “-3c” methods (e.g. HF-3c, PBEh-3c) and semi-empirical methods (e.g. AM1, PM3, …), including tight-binding methods (e.g. GFN2-xTB).
All basis sets
Basis set |
Synonyms |
---|---|
321g |
|
321gsp |
|
422gsp |
|
431g |
|
621g |
|
631++g2d2p |
|
631++g2df |
|
631++g2df2p |
|
631++g2df2pd |
|
631++g2dp |
|
631++gdp |
631++g** |
631+g2d |
|
631+g2d2p |
|
631+g2df |
|
631+g2df2p |
|
631+g2df2pd |
|
631+g2dp |
|
631+gd |
631+g* |
631+gdp |
631+g** |
6311++g2d |
|
6311++g2d2p |
|
6311++g2df |
|
6311++g2df2p |
|
6311++g2df2pd |
|
6311++g2dp |
|
6311++g3df |
|
6311++g3df3pd |
|
6311++gdp |
6311++g** |
6311+g2d |
|
6311+g2d2p |
|
6311+g2df |
|
6311+g2df2p |
|
6311+g2df2pd |
|
6311+g2dp |
|
6311+g3df |
|
6311+g3df2p |
|
6311+g3df3pd |
|
6311+gd |
6311+g* |
6311+gdp |
6311+g** |
6311g2d |
|
6311g2d,2p |
|
6311g2df |
|
6311g2df2p |
|
6311g2df2pd |
|
6311g2dp |
|
6311g3df |
|
6311g3df3pd |
|
6311gd |
6311g* |
6311gdp |
6311g** |
631g |
|
631g2d |
|
631g2d2p |
|
631g2df |
|
631g2df2p |
|
631g2df2pd |
|
631g2dp |
|
631gd |
631g* |
631gdp |
631g** |
anopv5z |
|
anopv6z |
|
anopvdz |
|
anopvqz |
|
anopvtz |
|
anorccdzp |
|
anorccfull |
|
anorccqzp |
|
anorcctzp |
|
anosz |
|
auganopv5z |
|
auganopvdz |
|
auganopvqz |
|
auganopvtz |
|
augccpcv5z |
|
augccpcv5zpp |
|
augccpcv6z |
|
augccpcvdz |
|
augccpcvdzpp |
|
augccpcvqz |
|
augccpcvqzpp |
|
augccpcvtz |
|
augccpcvtzpp |
|
augccpv5+dz |
|
augccpv5z |
|
augccpv5zdk |
|
augccpv5zpp |
|
augccpv6+dz |
|
augccpv6z |
|
augccpvd+dz |
|
augccpvdz |
|
augccpvdzdk |
|
augccpvdzpp |
|
augccpvq+dz |
|
augccpvqz |
|
augccpvqzdk |
|
augccpvqzpp |
|
augccpvt+dz |
|
augccpvtz |
|
augccpvtzdk |
|
augccpvtzj |
|
augccpvtzpp |
|
augccpwcv5z |
|
augccpwcvdz |
|
augccpwcvqz |
|
augccpwcvtz |
|
augccpwv5zdk |
|
augccpwv5zpp |
|
augccpwvdzdk |
|
augccpwvdzpp |
|
augccpwvqzdk |
|
augccpwvqzpp |
|
augccpwvtzdk |
|
augccpwvtzpp |
|
augpc0 |
|
augpc1 |
|
augpc2 |
|
augpc3 |
|
augpc4 |
|
augpcj0 |
|
augpcj1 |
|
augpcj2 |
|
augpcj3 |
|
augpcj4 |
|
augpcseg0 |
|
augpcseg1 |
|
augpcseg2 |
|
augpcseg3 |
|
augpcseg4 |
|
augpcsseg0 |
|
augpcsseg1 |
|
augpcsseg2 |
|
augpcsseg3 |
|
augpcsseg4 |
|
cbsb7 |
|
ccpcv5z |
|
ccpcv5zpp |
|
ccpcv6z |
|
ccpcvdz |
|
ccpcvdzf12 |
|
ccpcvdzpp |
|
ccpcvqz |
|
ccpcvqzf12 |
|
ccpcvqzpp |
|
ccpcvtz |
|
ccpcvtzf12 |
|
ccpcvtzpp |
|
ccpv5+dz |
|
ccpv5z |
|
ccpv5zdk |
|
ccpv5zpp |
|
ccpv6z |
|
ccpvd+dz |
|
ccpvdz |
|
ccpvdzdk |
|
ccpvdzf12 |
|
ccpvdzpp |
|
ccpvdzppf12 |
|
ccpvq+dz |
|
ccpvqz |
|
ccpvqzdk |
|
ccpvqzf12 |
|
ccpvqzpp |
|
ccpvqzppf12 |
|
ccpvt+dz |
|
ccpvtz |
|
ccpvtzdk |
|
ccpvtzf12 |
|
ccpvtzpp |
|
ccpvtzppf12 |
|
ccpwcv5z |
|
ccpwcv5zdk |
|
ccpwcvdz |
|
ccpwcvdzdk |
|
ccpwcvqz |
|
ccpwcvqzdk |
|
ccpwcvtz |
|
ccpwcvtzdk |
|
ccpwv5zpp |
|
ccpwvdzpp |
|
ccpwvqzpp |
|
ccpwvtzpp |
|
cep121g |
|
cep31g |
|
cep4g |
|
cp |
|
cpppp |
|
d95 |
|
d95p |
|
d95v |
|
def2 |
|
def2msvp |
|
def2mtzvp |
|
def2mtzvpp |
|
def2qzv |
|
def2qzvp |
|
def2qzvpd |
|
def2qzvpp |
|
def2qzvppd |
|
def2sv |
|
def2svp |
|
def2svpd |
|
def2svpp |
|
def2tzv |
|
def2tzvp |
|
def2tzvpd |
|
def2tzvpf |
|
def2tzvpp |
|
def2tzvppd |
|
dgdzvp |
|
dgdzvp2 |
|
dkhdef2qzvp |
|
dkhdef2qzvpp |
|
dkhdef2svp |
|
dkhdef2tzvp |
|
dkhdef2tzvpf |
|
dkhdef2tzvpp |
|
dkhqzvp |
|
dkhqzvpp |
|
dkhsvp |
|
dkhtzvp |
|
dkhtzvpp |
|
eprii |
|
epriii |
|
gdtzvp |
|
hav5+dz |
|
havq+dz |
|
havt+dz |
|
igloii |
|
igloiii |
|
lanl08 |
|
lanl08f |
|
lanl2dz |
|
lanl2mb |
|
lanl2tz |
|
lanl2tzf |
|
m631g |
|
m631gd |
m631g* |
madef2msvp |
|
madef2qzvp |
|
madef2qzvpp |
|
madef2svp |
|
madef2tzvp |
|
madef2tzvpf |
|
madef2tzvpp |
|
madkhdef2qzvp |
|
madkhdef2qzvpp |
|
madkhdef2svp |
|
madkhdef2tzvp |
|
madkhdef2tzvpf |
|
madkhdef2tzvpp |
|
mazoradef2qzvpp |
|
mazoradef2svp |
|
mazoradef2tzvp |
|
mazoradef2tzvpf |
|
mazoradef2tzvpp |
|
midi |
|
midix |
|
mini |
|
minis |
|
minix |
|
partridge1 |
|
partridge2 |
|
partridge3 |
|
partridge4 |
|
pc0 |
|
pc1 |
|
pc2 |
|
pc3 |
|
pc4 |
|
pcj0 |
|
pcj1 |
|
pcj2 |
|
pcj3 |
|
pcj4 |
|
pcseg0 |
|
pcseg1 |
|
pcseg2 |
|
pcseg3 |
|
pcseg4 |
|
pcsseg0 |
|
pcsseg1 |
|
pcsseg2 |
|
pcsseg3 |
|
pcsseg4 |
|
qzvp |
|
qzvpp |
|
sapporodkh3dzp2012 |
|
sapporodkh3qzp2012 |
|
sapporodkh3tzp2012 |
|
sapporodzp2012 |
|
sapporoqzp2012 |
|
sapporotzp2012 |
|
sarc |
|
sarc2dkhqzv |
|
sarc2dkhqzvp |
|
sarc2zoraqzv |
|
sarc2zoraqzvp |
|
sarcdkhsvp |
|
sarcdkhtzvp |
|
sarcdkhtzvpp |
|
sauganopv5z |
|
sauganopvdz |
|
sauganopvqz |
|
sauganopvtz |
|
sdd |
|
sddall |
|
shc |
|
sto3g |
|
sv |
|
svp |
|
tzv |
|
tzvp |
|
tzvpp |
|
ugbs |
|
w1dz |
|
w1mtsmall |
|
w1opt |
|
w1qz |
|
w1tz |
|
wachters+f |
|
x2c |
|
zoradef2qzvp |
|
zoradef2qzvpp |
|
zoradef2svp |
|
zoradef2tzvp |
|
zoradef2tzvpf |
|
zoradef2tzvpp |
|
zoraqzvp |
|
zoraqzvpp |
|
zorasvp |
|
zoratzvp |
|
zoratzvpp |
Custom basis sets
Specific basis sets for specific atoms. Uses the format “<Element>=<Basis set label>;…” (e.g. “I=Def2-TZVPD;”). To see all the valid basis set labels per element, visit the Basis Set Exchange. Nonetheless, ccinput
will also detect close synonyms of the requested basis set.
If applicable, the effective core potential (ECP) corresponding to the requested basis set will also be added to the input file.
Density fitting
Basis set to use for density fitting. For nwchem, specify the name of the basis set you want to use for density fitting.
Gaussian documentation about density fitting
Note
Only available for Gaussian 16 and nwchem for the moment. Density fitting for DFT is only available for nwchem 7.2.0 version.
Structure files
Structure file(s) to use in the input. Only XYZ files are currently supported.
Multiple files can be specified at once when using from the command line:
$ ccinput [...] -f struct1.xyz struct2.xyz
If no output pattern is specified, each input file will be printed to the console sequentially separated by a header. With an output pattern, the files will be created in the chosen directory with the given prefix and extension. When specifying only one file, the exact output path will be used.
$ ccinput [...] -f struct1.xyz struct2.xyz -o calc_dir/sp.inp
Input file written to calc_dir/sp_struct1.inp
Input file written to calc_dir/sp_struct2.inp
$ ccinput [...] -f struct1.xyz struct2.xyz -o .com
Input file written to struct1.com
Input file written to struct2.com
$ ccinput [...] -f struct1.xyz -o my_struct.com
Input file written to my_struct.com
Solvent
Solvent to model using implicit solvation.
All solvents
Solvent |
Synonyms |
---|---|
111trichloroethane |
|
112trichloroethane |
|
124trimethylbenzene |
|
12dibromoethane |
|
12ethanediol |
|
14dioxane |
|
1bromo2methylpropane |
|
1bromooctane |
|
1bromopentane |
|
1bromopropane |
|
1butanol |
|
1chlorohexane |
|
1chloropentane |
|
1chloropropane |
|
1decanol |
|
1fluorooctane |
|
1heptanol |
|
1hexanol |
|
1hexene |
|
1hexyne |
|
1iodobutane |
|
1iodohexadecane |
|
1iodopentane |
|
1iodopropane |
|
1nitropropane |
|
1nonanol |
|
1pentanol |
|
1pentene |
|
1propanol |
|
222trifluoroethanol |
|
224trimethylpentane |
|
24dimethylpentane |
|
24dimethylpyridine |
|
26dimethylpyridine |
|
2bromopropane |
|
2butanol |
|
2chlorobutane |
|
2heptanone |
|
2hexanone |
|
2methoxyethanol |
|
2methyl1propanol |
|
2methyl2propanol |
|
2methylpentane |
|
2methylpyridine |
|
2nitropropane |
|
2octanone |
|
2pentanone |
|
2propanol |
|
2propen1ol |
|
3methylpyridine |
|
3pentanone |
|
4heptanone |
|
4methyl2pentanone |
|
4methylpyridine |
|
5nonanone |
|
aceticacid |
|
acetone |
acetone |
acetonitrile |
acetonitrile acn ch3cn mecn |
acetophenone |
|
achlorotoluene |
|
aniline |
|
anisole |
|
argon |
|
benzaldehyde |
|
benzene |
benzene c6h6 |
benzonitrile |
|
benzylalcohol |
|
bromobenzene |
|
bromoethane |
|
bromoform |
|
butanal |
|
butanoicacid |
|
butanone |
|
butanonitrile |
|
butylamine |
|
butylethanoate |
|
carbondisulfide |
|
carbontetrachloride |
ccl4 carbontetrachloride |
chlorobenzene |
phcl |
chloroform |
chcl3 trichloromethane |
cis1,2dimethylcyclohexane |
|
cisdecalin |
|
cyclohexane |
|
cyclohexanone |
|
cyclopentane |
|
cyclopentanol |
|
cyclopentanone |
|
decalinmixture |
|
dibromomethane |
|
dibutylether |
|
dichloroethane |
12dichloroethane |
dichloromethane |
ch2cl2 dcm |
diethylamine |
|
diethylether |
ether et2o |
diethylsulfide |
|
diiodomethane |
|
diisopropylether |
|
dimethyldisulfide |
|
dimethylformamide |
dmf |
dimethylsulfoxide |
dmso |
diphenylether |
|
dipropylamine |
|
e1,2dichloroethene |
|
e2pentene |
|
ethanethiol |
|
ethanol |
|
ethylbenzene |
|
ethylethanoate |
|
ethylmethanoate |
|
ethylphenylether |
|
fluorobenzene |
|
formamide |
|
formicacid |
|
heptane |
|
hexanoicacid |
|
iodobenzene |
|
iodoethane |
|
iodomethane |
|
isopropylbenzene |
|
isoquinoline |
|
krypton |
|
mcresol |
|
mesitylene |
|
methanol |
meoh |
methylbenzoate |
|
methylbutanoate |
|
methylcyclohexane |
|
methylethanoate |
|
methylmethanoate |
|
methylpropanoate |
|
mxylene |
|
nbutylbenzene |
|
ndecane |
|
ndodecane |
|
nhexadecane |
|
nhexane |
hexane hex |
nitrobenzene |
phno2 |
nitroethane |
|
nitromethane |
meno2 |
nmethylaniline |
|
nmethylformamidemixture |
|
nndimethylacetamide |
|
nndimethylformamide |
dmf |
nnonane |
|
noctane |
|
noctanol |
1octanol octanol |
npentadecane |
|
npentane |
|
nundecane |
|
ochlorotoluene |
|
ocresol |
|
odichlorobenzene |
|
onitrotoluene |
|
oxylene |
|
pentanal |
|
pentanoicacid |
|
pentylamine |
|
pentylethanoate |
|
perfluorobenzene |
|
pisopropyltoluene |
|
propanal |
|
propanoicacid |
|
propanonitrile |
|
propylamine |
|
propylethanoate |
|
pxylene |
|
pyridine |
|
quinoline |
|
secbutylbenzene |
|
tertbutylbenzene |
|
tetrachloroethene |
|
tetrahydrofuran |
thf |
tetrahydrothiophenessdioxide |
|
tetralin |
|
thiophene |
|
thiophenol |
|
toluene |
phme phch3 |
transdecalin |
|
tributylphosphate |
|
trichloroethene |
|
triethylamine |
|
water |
h2o |
xenon |
|
xylenemixture |
|
z12dichloroethene |
Solvation model
Model used for implicit solvation.
Software |
Models |
---|---|
Gaussian |
SMD PCM CPCM |
ORCA |
SMD CPCM |
xtb |
GBSA ALPB |
nwchem |
SMD COSMO |
Solvation radii
Set of element radii to use in the solvation model.
Model |
Sets of radii |
---|---|
SMD |
Default SMD18 [SMD18] |
All |
UFF (g16 default) UA0 UAHF UAKS Pauling Bondi |
- SMD18
Engelage, N. Schulz, F. Heinen, S. M. Huber, D. G. Truhlar, C. J. Cramer, Chem. Eur. J. 2018, 24, 15983-15987.
Custom solvation radii
Specific solvation radii to use for some elements.
The format to use is “<ELEMENT>=<RADIUS>;…”, for example: “H=1.00;Li=1.70;”.
Parse Name
Input files can have different charges or multiplicities, as long as the file name reflects this and the --parse_name
option is used.
By default, inputs are assumed to be neutral and in the singlet state. Charges are indicated by having (tri/di)cation
or (tri/di)anion
in the file name. Doublet states are denoted with radical
or doublet
, and triplet states with triplet
.
If a charge or multiplicity is also provided explicitly, it will be used as default state for all inputs. However, the charge and multiplicity in the file names have priority over the default state. As such, neutral
can be added to the file name to ensure that the input will be considered neutral, even if the option --charge 1
is provided, for example.
Specifications
Custom keywords to add to the command of the input.
$ ccinput orca opt HF --xyz "Cl 0 0 0" -c -1 -bs Def2SVP
!OPT HF Def2-SVP
[...]
$ ccinput orca opt HF --xyz "Cl 0 0 0" -c -1 -bs Def2SVP --specifications "TIGHTSCF"
!OPT HF Def2-SVP tightscf
[...]
With Gaussian 16, this can also add parameters to the calculation keyword:
$ ccinput g16 opt HF --xyz "Cl 0 0 0" -c -1 -bs Def2SVP
[...]
#p opt HF/Def2SVP
[...]
$ ccinput g16 opt HF --xyz "Cl 0 0 0" -c -1 -bs Def2SVP --specifications "opt(maxstep=5)"
[...]
#p opt(maxstep=5) HF/Def2SVP
[...]
$ ccinput g16 opt HF --xyz "Cl 0 0 0" -c -1 -bs Def2SVP --specifications "opt(maxstep=5) SCF(restart)"
[...]
#p opt(maxstep=5) HF/Def2SVP scf(restart)
[...]
Note that the specifications are not checked for validity beyond simple syntax checks. This allows you to use all valid keywords of the software, but can also lead to invalid inputs.
In nwchem, the syntax for specifcations in the following:
$ ccinput g16 opt HF --xyz "Cl 0 0 0" -c -1 -bs Def2SVP --specifications "scf(maxiter 20);opt(tight)"
Constraints
Constraints (freeze or scan) can be specified either as a string or as separate parameters.
The string representation allows to specified all the constraints at once in a relatively readable fashion:
# Freeze the bond between atoms 1 and 2 (starting at 1)
$ ccinput [...] --constraints "freeze/1_2;"
# Freeze the angle between atoms 1, 2 and 3
$ ccinput [...] --constraints "freeze/1_2_3;"
# Freeze the dihedral angle between atoms 1, 2, 3 and 4
$ ccinput [...] --constraints "freeze/1_2_3_4;"
# Different constraints are delimited by semi-colons
$ ccinput [...] --constraints "freeze/1_2;freeze/3_4_5;"
# Scans the bond 1-2 from 2 A to 1 A in 10 steps
# Note that Gaussian does not allow starting values other than those of the current structure.
# As such, the starting value is ignored with Gaussian.
$ ccinput [...] --constraints "scan_2_1_10/1_2;"
# Scans the angle 1-2-3 from 90 degrees to 0 degrees in 10 steps
$ ccinput [...] --constraints "scan_90_0_10/1_2_3;"
# Scans the angle 1-2-3 from its current value to 0 degrees in 10 steps
$ ccinput [...] --constraints "scan_auto_0_10/1_2_3;"
# Scans the dihedral angle 1-2-3-4 from 90 degrees to 0 degrees in 10 steps
$ ccinput [...] --constraints "scan_90_0_10/1_2_3_4;"
# Different types of constraint can be combined
$ ccinput [...] --constraints "scan_90_0_10/1_2_3;freeze/4_5;"
The library usage uses an identical syntax:
>>> from ccinput.wrapper import gen_input
>>> inp = gen_input([...], constraints="scan_90_0_10/1_2_3;freeze/4_5;")
With the string, scans always require the starting value, the final value as well as the number of steps. However, more convenient options are available using --scan
, --from
, --to
, --nsteps
and --step
:
Note
Scans are not implemented in nwchem for the moment
# Also scans the bond 1-2 from 2 A to 1 A in 10 steps
$ ccinput [...] --scan 1 2 --from 2 --to 1 --nsteps 10
# Scans the bond 1-2 from its current value to 1 A in 10 steps
$ ccinput [...] --scan 1 2 --to 1 --nsteps 10
# Scans the bond 1-2 from its current value to 1 A in steps of 0.1 A
$ ccinput [...] --scan 1 2 --to 1 --step 0.1
# Equivalent to the above
$ ccinput [...] --scan 1 2 --to 1 --step -0.1
# Scans the bonds 1-2 and 3-4 from their current values to 1 A in steps of 0.1 A
$ ccinput [...] --scan 1 2 --to 1 --step 0.1 --scan 3 4 --to 1 --step 0.1
# The order of the sets of parameters matters:
# Scans the bond 1-2 from 1.9 A to 0.5 A by step of 0.15 and
# the bond 3-4 from 1.5 A to 1.0 A in step of 0.1 A
$ ccinput [...] --scan 1 2 --from 1.9 --to 0.5 --step 0.15 --scan 3 4 --from 1.5 --to 1 --step 0.1
# Scans the bond 1-2 from 1.5 A to 1.0 A in step of 0.1 A and
# the bond 3-4 from 1.9 A to 0.5 A by step of 0.15
$ ccinput [...] --scan 1 2 --from 1.5 --to 1 --step 0.1 --scan 3 4 --from 1.9 --to 0.5 --step 0.15
# However, the exact ordering of each different parameter does not matter
# Equivalent to the above
$ ccinput [...] --scan 1 2 --to 1 --from 1.5 --step 0.1 --scan 3 4 --step 0.15 --to 0.5 --from 1.9
# Moreover, coordinates can be frozen in a similar fashion
# Freezes the angle between atoms 1, 2 and 3
$ ccinput [...] --freeze 1 2 3
# Freezes the angle between atoms 1, 2 and 3 and
# scans the bond 1-2 from its current value to 1 A in steps of 0.1 A
$ ccinput [...] --freeze 1 2 3 --scan 1 2 --to 1 --step 0.1
# Equivalent to the above
$ ccinput [...] --scan 1 2 --to 1 --step 0.1 --freeze 1 2 3
# Also equivalent to the above (although confusing)
$ ccinput [...] --scan 1 2 --to 1 --freeze 1 2 3 --step 0.1
The library usage employs arrays for each parameter, with freeze
and scan
being arrays of arrays (for multiple constraints of multiple atoms each). The scanning parameters are prefixed by the letter “s” (for “scan”) due to the name clash with the Python keyword from
.
>>> from ccinput.wrapper import gen_input
>>> inp = gen_input([...], freeze=[[1, 2]])
>>> inp = gen_input([...], scan=[[2, 3]], sfrom=[1.0], sto=[1.5], snsteps=[5])
>>> inp = gen_input([...], scan=[[2, 3]], sfrom=[1.0], sto=[1.5], sstep=[0.1])
>>> inp = gen_input([...], scan=[[2, 3], [1, 2, 3, 4]], sfrom=[1.0, 120], sto=[1.5, 160], sstep=[0.1, 5])
Presets
Presets offer a convenient way to save sets of parameters and reuse them easily in the command line:
$ ccinput gaussian opt m062x -bs def2tzvp --specifications "opt(maxstep=5) 5d nosymm" -sm smd -sr smd18 -s methanol --save my_preset
--- Saved preset 'my_preset'
software gaussian
type opt
method m062x
basis_set def2tzvp
version <Y.X.Z>
solvent methanol
solvation_model smd
solvation_radii smd18
specifications opt(maxstep=5) 5d nosymm
$ ccinput --preset my_preset --xyz "Cl 0 0 0" -c -1
%chk=calc.chk
%nproc=1
%mem=1000MB
#p opt(maxstep=5) M062X/Def2TZVP 5d nosymm SCRF(SMD, Solvent=methanol, Read)
File created by ccinput
-1 1
Cl 0.00000000 0.00000000 0.00000000
modifysph
Br 2.60
I 2.74
All parameters can be saved in the preset, except the calculation name and the XYZ structure. To create a preset, simply enter all the desired parameters exactly like when creating an input file and append --preset <preset_name>
to the command. This will not generate any input file and will instead same the parameters as JSON in an accessible user directory (generally ~/.local/share/ccinput
or C:\\Users\\<username>\\AppData\\Local\\CYLlab\\ccinput
).
Parameters in the preset file can be overwritten when creating the input file:
$ ccinput --preset my_preset --xyz "Cl 0 0 0" -c -1
%chk=calc.chk
%nproc=1
%mem=1000MB
#p opt(maxstep=5) M062X/Def2TZVP 5d nosymm SCRF(SMD, Solvent=methanol, Read)
File created by ccinput
-1 1
Cl 0.00000000 0.00000000 0.00000000
modifysph
Br 2.60
I 2.74
$ ccinput --preset my_preset --xyz "Cl 0 0 0" -c -1 -s vacuum
%chk=calc.chk
%nproc=1
%mem=1000MB
#p opt(maxstep=5) M062X/Def2TZVP 5d nosymm
File created by ccinput
-1 1
Cl 0.00000000 0.00000000 0.00000000
Specifications are the only parameters that are not overwritten, but combined:
$ ccinput --preset my_preset --xyz "Cl 0 0 0" -c -1 -s vacuum --specifications "Int(Ultrafinegrid)"
%chk=calc.chk
%nproc=1
%mem=1000MB
#p opt(maxstep=5) M062X/Def2TZVP 5d nosymm int(ultrafinegrid)
File created by ccinput
-1 1
Cl 0.00000000 0.00000000 0.00000000
Presets can be permanently modified by specifying new parameters and saving them in the same preset. Unspecified options will not be modified:
$ ccinput -s vacuum --save my_preset
--- Saved preset 'my_preset'
software gaussian
type opt
method m062x
basis_set def2tzvp
version 1.2.2+7.g8e241e2.dirty
solvent vacuum
solvation_model smd
solvation_radii smd18
specifications opt(maxstep=5) 5d nosymm
$ ccinput --preset my_preset --xyz "Cl 0 0 0" -c -1
%chk=calc.chk
%nproc=1
%mem=1000MB
#p opt(maxstep=5) M062X/Def2TZVP 5d nosymm
File created by ccinput
-1 1
Cl 0.00000000 0.00000000 0.00000000
Note that the parameters are not validated on preset creation.