# Simple Input

The simple input format consists of keywords followed by a ":" followed by a value.

The keywords are case sensitive. The values might be modified by options found in parenthesis. For example, the following input performs an optimization of water using density functional theory with the B3LYP exchange-correlation functional:

    % B3LYP optimization of water
    optimize: yes
    method: KS (xc = B3LYP)
    basis: 3-21G*
    molecule: (angstrom)
        O    0.172   0.000   0.000
        H    0.745   0.000   0.754
        H    0.745   0.000  -0.754

Comments begin with a `%` and continue to the end of the line. Basis set names containing special characters, such as a space or parentheses, must be quoted inside a pair of double quotes. The accepted keywords are:

`molecule`

  Gives the atoms types and coordinates. The following options can be used

  `bohr`
    The coordinates are given in Bohr.
  `angstrom`
    The coordinates are given in Angstroms (the default).
  `charge`
    This option can be given after an "element x y z" quadruple. This will override the charge on the atom. For example, `(charge = 0)` can be given for the ghost atoms in a counterpoise correction calculation.

`multiplicity`

  Gives the multiplicity of the molecule. The default is `1`.

`optimize`

  If `yes`, then an optimization will be performed. The default is `no`. The following options can be given.

  `cartesian`
    Use Cartesian coordinates.
  `internal`
    Use internal coordinates.
  `redundant`
    Use redundant internal coordinates.

`gradient`

  If `yes`, then a gradient calculation will be performed. The default is `no`.

`frequencies`

  If `yes`, then the frequencies will be obtained. The default is `no`.

`charge`

  Specificies the charge on the molecule. The default is `0`.

`method`

  Specifices the method. There is no default and the possible values are:

  `HF`
    Hartree-Fock. Unrestricted HF is used if `multiplicity` > 1
  `RHF`
    Restricted Hartree-Fock.
  `UHF`
    Unrestricted Hartree-Fock.
  `KS`
    Kohn-Sham. Unrestricted KS is used if `multiplicity` > 1
  `RKS`
    Restricted Kohn-Sham.
  `UKS`
    Unrestricted Kohn-Sham.
  `MP2`
    Second order Moeller-Plesset perturbation theory. Only available for `multiplicity` = 1.
  `MP2-R12/A`
    The A version of MP2-R12. Only available for `multiplicity` = 1. An auxiliary basis may be specified. No gradient, optimization, or frequencies are possible.
  `MP2-R12/A'`
    The A' version of MP2-R12. Only available for `multiplicity` = 1. An auxiliary basis may be specified. No gradient, optimization, or frequencies are possible.
  `ZAPT2`
    Z-averaged perturbation theory. Only available for `multiplicity` > 1. No gradient, optimization, or frequencies are possible.

  The following options are valid with the `KS`, `RKS`, and `UKS` methods:

  `grid`
    Specifies the grid to be used for numerical integrations. The following values can be given:
    `xcoarse`
    `coarse`
    `medium`
    `fine`
    `xfine`
    `ultrafine`
  `xc`
    Specifies the exchange-correlation functional. There is no default. See the table in the StdDenFunctional class documentation for the possible values.

  The following options are valid with the `MP2-R12/A` and `MP2-R12/A'` methods. These options are mutually exclusive:

  `abs`
    Use the standard Auxiliary Basis Set method.
  `abs+`
    Use the standard Auxiliary Basis Set method, but use the union of the orbital and the given auxiliary basis as the actual auxiliary basis set used.
  `cabs`
    Use the Complementary Auxiliary Basis Set method.
  `cabs+`
    Use the Complementary Auxiliary Basis Set method, but use the union of the orbital and the given auxiliary basis as the actual auxiliary basis set used.

  The following options are valid with the `MP2-R12/A'` method:

  `ebc`
    Assume the Extended Brillion Condition to hold. This is the default.
  `gbc`
    Assume the Generalized Brillion Condition to hold. This is the default.
  `!ebc`
    Do not assume the Extended Brillion Condition to hold.
  `!gbc`
    Do not assume the Generalized Brillion Condition to hold.

`basis`

  Specifies the basis set. There is no default. See the table in the GaussianBasisSet class documentation for the available basis sets.

`auxbasis`

  Specifies the auxiliary basis set for MP2-R12 methods. There is no default. See the table in the GaussianBasisSet class documentation for the available basis sets.

`restart`

  Set to `yes` to restart an optimization. The default is `no`.

`checkpoint`

  Set to `no` to not save checkpoint files during an optimization. The default is `yes`.

`symmetry`

  Specifices the Schoenflies symbol of the point group of the molecule. The default is `auto`, which will cause to program to find the highest order Abelian subgroup of the molecule.

`docc`

  Gives the number of doubly occupied orbitals in each each irreducible representation in a parenthesized list. The symmetry must be specified and not be `auto`. The method must be restricted.

`socc`

  Gives the number of single occupied orbitals in each each irreducible representation in a parenthesized list. The symmetry must be specified and not be `auto`. The method must be restricted.

`alpha`

  Gives the number of alpha occupied orbitals in each each irreducible representation in a parenthesized list. The symmetry must be specified and not be `auto`. The method must be unrestricted.

`beta`

  Gives the number of beta occupied orbitals in each each irreducible representation in a parenthesized list. The symmetry must be specified and not be `auto`. The method must be unrestricted.

`frozen_docc`

  Gives the number of frozen core orbitals. Can be either a single integer or a parenthesized list giving the frozen core orbitals in each irreducible representation. In the latter case the symmetry must be given and not be `auto`.

`frozen_uocc`

  Gives the number of frozen virtual orbitals. Can be either a single integer or a parenthesized list giving the frozen virtual orbitals in each irreducible representation. In the latter case the symmetry must be given and not be `auto`.

`memory`

  Gives a hint for the amount of memory in bytes that can be used. This is typically a lower bound, more memory will be used in practice and the exact amount cannot be precisely controlled. The format is a fixed or floating point number optionally followed (without spaces) by one of the following suffixes: KB, MB, GB, KIB, MIB, or GIB.