Modes

There are a large number of settings in computational chemistry programs, and while expert users may wish to individually tune dozens of parameters, this is not usually necessary. Instead, all that typically matters is the ability to move along the speed–accuracy Pareto frontier: initial investigations can be done quickly, while precise values can be obtained through more painstaking means. At a high level, this can be done through adjusting the level of theory: hf-3c is fast, while b97-d3/pcseg-1 is slower and more accurate. But there are also many less obvious ways in which calculations can be tuned to provide more or less accuracy.

In Rowan, some of these other parameters can be conveniently tuned through "modes." There are five modes in Rowan: reckless, rapid, careful, meticulous, and debug. As the names imply, some modes choose very aggressive values for each parameter, while other modes are very conservative. If no mode is selected, Rowan will default to careful for anything involving a gradient or Hessian calculation and rapid for everything else.

import cctk
import rowan

rowan.api_key = "rowan-SK"
client = rowan.Client()

# load molecule by name
molecule = cctk.Molecule.new_from_name("taxol")

# run calculation remotely and return result
result = client.compute(
    "calculation",
    input_mol=molecule,
    name="fast taxol dipole estimate",
    method="hf-3c",
    mode="reckless",
    tasks=["dipole"],
)

How Modes Work

For isolated calculations, the mode selected mainly determines if a geometry optimization has converged. Here are the parameters changed by each mode:

Mode∆ Energy (Hartree)Max Gradient (Hartree/Bohr)RMS Gradient (Hartree/Bohr)
Reckless0.000010.00450.003
Rapid0.0000050.00250.0017
Careful0.0000010.000450.0003
Meticulous0.0000010.0000150.00001
Debug0.0000010.0000020.000001

(Past iterations of Rowan, which used our own in-house quantum chemistry code, also used the mode to determine a whole host of internal thresholds and cutoffs. We no longer do this, although we reserve the right to tweak a setting here or there in the future.)

For workflows, modes determine a variety of workflow-specific parameters.