STFC
MPI für Kohlenforschung

University College London

Energy and Gradient evaluation

Using the energy and eandg drivers

Sometimes, particularly for testing purposes it is useful to calculate a single point energy.

Using the interfaces to QM methods provided in ChemShell this is not completely straightforward, since it is necessary to invoke first an initialisation function, the energy (or gradient function) and finally a termination function. Normally separate function invocations are hidden from the user as they are issued from another driver module (such as newopt). For simplicity, a number of additional drivers are provided to request a single point calculation. These are energy and gradient and eandg, calculating energy, gradient and energy+gradient respectively. They take the following arguments:

Argument Argument type Mandatory Default To specify
theory= Energy/Gradient code yes - Method for computation
coords= Fragment tag yes - Fragment object containing the coordinates
energy= Matrix tag no - Matrix to hold the resulting energy
gradient= Matrix tag no - Matrix to hold the resulting gradient
list_option= Output keyword no - How much information to report

In the absence of energy= and gradient= arguments the results of the calculations are not saved to disk.

Use list_option=full if the gradient is required in the output listing.

As an example, consider calculating a B3LYP energy for the Fragment tag named c:

energy coords=c energy=e_b3lyp theory=gamess : { hamiltonian=b3lyp basis=dzp } 

Multiple state calculations: multeg and multegh

Single point calculations can also be carried out for multiple electronic states, for QM methods which support such calculations. The multeg driver calculates energies and gradients for the requested states, while multegh also calculates interstate coupling gradients between all pairs of the requested states.

The syntax is similar to that of single state calculations:

Argument Argument type Mandatory Default To specify
theory= Energy/Gradient code yes - Method for computation (currently mndo, gaussian and molpro are supported)
states= Tcl List no - List of requested electronic states (ordered by increasing energy)
coords= Fragment tag yes - Fragment object containing the coordinates
energy= Matrix tag no - Matrix to hold the resulting energies
gradient= Matrix tag no - Matrix to hold the resulting gradients
isc_gradient= Matrix tag no - Matrix to hold the resulting interstate coupling gradients (only for multegh)
list_option= Output keyword no - How much information to report

Notes regarding multiple state calculations

  • A method capable of calculating multiple states must be selected via the sub-arguments to the theory keyword (e.g. GUGA-CI in MNDO, CASSCF in Gaussian, and MCSCF or RS2 in Molpro).
  • The resulting gradients are stored as 3-dimensional matrices.
  • Multiple state calculations with Gaussian

  • Gaussian multiple state calculations are state-averaged.
  • For technical reasons, Gaussian multiple state calculations are limited to two adjacent states.
  • Multiple state calculations with Molpro

  • Molpro multiple state calculations are state-averaged.
  • multegh calculations are only supported for MCSCF, as RS2 interstate coupling gradients are not available in Molpro.
  • Molpro has an internal limit of 5 CPMCSCF gradient directives. This means that multeg calculations using MCSCF are limited to 5 states, and multegh to 2 states.
  • The symmetry of the states should not be specified, as this will be taken automatically from the value of mcscf_wf.
  • MCSCF interstate coupling gradients are calculated by scaling the non-adiabatic coupling by the difference in energy between the states. This scaling is unstable when the states are extremely close to degeneracy, which can lead to convergence problems with conical intersection optimisations (unless the penalty function algorithm is used, which does not require interstate coupling gradients).





















This manual was generated using htp, an HTML pre-processor Powered by htp