keyword = valuewhere keyword is the parameter chosen (e.g., convergence) and value has one of the following data types:
zmat = ( (O) (H 1 r) (H 1 r 2 a) )For z-matrices, z-matrix variables, and Cartesian coordinates, it is also possible to discard the inner parentheses. The following is equivalent in this case:
zmat = ( O H 1 r H 1 r 2 a )
Keywords must grouped together in blocks, based on the module or
modules that require them. The default block is labelled psi:,
and most users will require only a psi: block when using
PSI3. For example, the following is a simple input file for a
single-point CCSD energy calculation on H
O:
psi: (
label = "6-31G**/CCSD H2O"
wfn = ccsd
reference = rhf
jobtype = sp
basis = "6-31G**"
zmat = (
O
H 1 r
H 1 r 2 a
)
zvars = (
r 1.0
a 104.5
)
)
In this example, the psi: identifier collects all the keywords
(of varying types) together. Every PSI3 module will have access
to every keyword in the psi: block by default. One may use
other identifiers (e.g., ccenergy:) to separate certain keywords
to be used only by selected modules. For example, consider the
keyword convergence, which is used by several PSI3 modules
to determine the convergence criteria for constructing various types
of wave functions. If one wanted to use a high convergence cutoff for the
PSI3 SCF module but a lower cutoff for the coupled cluster
module, one could modify the above input:
psi: ( ... convergence = 7 ) scf:convergence = 12Note that, since we have only one keyword associated with the scf: block, we do not need to enclose it parentheses.
Some additional aspects of the PSI3 grammar to keep in mind: