User input reference

  • Keywords without a default value are required.

  • Default values are either explicit or computed from the value of other keywords in the input.

  • Sections where all keywords have a default value can be omitted.

  • Predicates, if present, are the functions run to validate user input.

Keywords
world_prec:

Overall relative precision in the calculation.

Type float

Predicates
  • 1.0e-10 < value < 1.0

world_size:

Total size of computational domain given as 2**(world_size). Always cubic and symmetric around the origin. Negative value means it will be computed from the molecular geometry.

Type int

Default -1

Predicates
  • value <= 10

world_unit:

Length unit for all coordinates given in user input. Everything will be converted to atomic units (bohr) before the main executable is launched, so the JSON input is always given in bohrs.

Type str

Default bohr

Predicates
  • value.lower() in ["bohr", "angstrom"]

world_origin:

Global gauge origin of the calculation.

Type List[float]

Default [0.0, 0.0, 0.0]

Predicates
  • len(value) == 3

Sections
Precisions:

Define specific precision parameters.

Keywords
exchange_prec:

Precision parameter used in construction of Exchange operators. Negative value means it will follow the dynamic precision in SCF.

Type float

Default -1.0

helmholtz_prec:

Precision parameter used in construction of Helmholtz operators. Negative value means it will follow the dynamic precision in SCF.

Type float

Default -1.0

poisson_prec:

Precision parameter used in construction of Poisson operators.

Type float

Default user['world_prec']

Predicates
  • 1.0e-10 < value < 1.0

nuclear_prec:

Precision parameter used in smoothing and projection of nuclear potential.

Type float

Default user['world_prec']

Predicates
  • 1.0e-10 < value < 1.0

Printer:

Define variables for printed output.

Keywords
print_level:

Level of detail in the written output. Level 0 for production calculations, negative level for complete silence.

Type int

Default 0

print_mpi:

Write separate output from each MPI to file called <file_name>-<mpi-rank>.out.

Type bool

Default False

print_prec:

Number of digits in property output (energies will get twice this number of digits).

Type int

Default 6

Predicates
  • 0 < value < 10

print_width:

Line width of printed output (in number of characters).

Type int

Default 75

Predicates
  • 50 < value < 100

print_constants:

Print table of physical constants used by MRChem.

Type bool

Default False

Plotter:

Give details regarding the density and orbital plots. Three types of plots are available, line, surface and cube, and the plotting ranges are defined by three vectors (A, B and C) and an origin (O): line: plots on line spanned by A, starting from O. surf: plots on surface spanned by A and B, starting from O. cube: plots on volume spanned by A, B and C, starting from O.

Keywords
path:

File path to plot directory.

Type str

Default plots

Predicates
  • value[-1] != '/'

type:

Type of plot: line (1D), surface (2D) or cube (3D).

Type str

Default cube

Predicates
  • value.lower() in ['line', 'surf', 'cube']

points:

Number of points in each direction on the cube grid.

Type List[int]

Default [20, 20, 20]

Predicates
  • all(p > 0 for p in value)

  • not (user['Plotter']['type'] == 'line' and len(value) < 1)

  • not (user['Plotter']['type'] == 'surf' and len(value) < 2)

  • not (user['Plotter']['type'] == 'cube' and len(value) < 3)

O:

Origin of plotting ranges.

Type List[float]

Default [0.0, 0.0, 0.0]

Predicates
  • len(value) == 3

A:

First boundary vector for plot.

Type List[float]

Default [1.0, 0.0, 0.0]

Predicates
  • len(value) == 3

B:

Second boundary vector for plot.

Type List[float]

Default [0.0, 1.0, 0.0]

Predicates
  • len(value) == 3

C:

Third boundary vector for plot.

Type List[float]

Default [0.0, 0.0, 1.0]

Predicates
  • len(value) == 3

MPI:

Define MPI related parameters.

Keywords
numerically_exact:

This will use MPI algorithms that guarantees that the output is invariant wrt the number of MPI processes.

Type bool

Default False

shared_memory_size:

Size (MB) of the MPI shared memory blocks of each shared function.

Type int

Default 10000

share_nuclear_potential:

This will use MPI shared memory for the nuclear potential.

Type bool

Default False

share_coulomb_potential:

This will use MPI shared memory for the Coulomb potential.

Type bool

Default False

share_xc_potential:

This will use MPI shared memory for the exchange-correlation potential.

Type bool

Default False

bank_size:

Number of MPI processes exclusively dedicated to manage orbital bank.

Type int

Default -1

Basis:

Define polynomial basis.

Keywords
order:

Polynomial order of multiwavelet basis. Negative value means it will be set automatically based on the world precision.

Type int

Default -1

type:

Polynomial type of multiwavelet basis.

Type str

Default interpolating

Predicates
  • value.lower() in ['interpolating', 'legendre']

Derivatives:

Define various derivative operators used in the code.

Keywords
kinetic:

Derivative used in kinetic operator.

Type str

Default abgv_55

h_b_dip:

Derivative used in magnetic dipole operator.

Type str

Default abgv_00

h_m_pso:

Derivative used in paramagnetic spin-orbit operator.

Type str

Default abgv_00

Molecule:

Define molecule.

Keywords
charge:

Total charge of molecule.

Type int

Default 0

multiplicity:

Spin multiplicity of molecule.

Type int

Default 1

Predicates
  • value > 0

translate:

Translate coordinates such that center of mass coincides with the global gauge origin.

Type bool

Default False

coords:

Coordinates in xyz format. Atoms can be given either using atom symbol or atom number

Type str

WaveFunction:

Define the wavefunction method.

Keywords
method:

Wavefunction method. See predicates for valid methods. hf, hartreefock and hartree-fock all mean the same thing, while lda is an alias for svwn5. You can set a non-standard DFT functional (e.g. varying the amount of exact exchange) by choosing dft and specifing the functional(s) in the DFT section below.

Type str

Predicates
  • value.lower() in ['core', 'hartree', 'hf', 'hartreefock', 'hartree-fock', 'dft', 'lda', 'svwn3', 'svwn5', 'pbe', 'pbe0', 'bpw91', 'bp86', 'b3p86', 'b3p86-g', 'blyp', 'b3lyp', 'b3lyp-g', 'olyp', 'kt1', 'kt2', 'kt3']

restricted:

Use spin restricted wavefunction.

Type bool

Default True

environment:

Set method for treatment of environment. none for vacuum calculation. PCM for Polarizable Continuum Model, which will activate the PCM input section for further parametrization options.

Type str

Default none

Predicates
  • value.lower() in ['none', 'pcm']

DFT:

Define the exchange-correlation functional in case of DFT.

Keywords
density_cutoff:

Hard cutoff for passing density values to XCFun.

Type float

Default 0.0

functionals:

List of density functionals with numerical coefficient. E.g. for PBE0 EXX 0.25, PBEX 0.75, PBEC 1.0, see XCFun documentation <https://xcfun.readthedocs.io/>_.

Type str

Default `` ``

spin:

Use spin separated density functionals.

Type bool

Default not(user['WaveFunction']['restricted'])

Properties:

Provide a list of properties to compute (total SCF energy and orbital energies are always computed).

Keywords
dipole_moment:

Compute dipole moment.

Type bool

Default True

quadrupole_moment:

Compute quadrupole moment. Note: Gauge origin dependent, should be used with translate = true in Molecule.

Type bool

Default False

polarizability:

Compute polarizability tensor.

Type bool

Default False

magnetizability:

Compute magnetizability tensor.

Type bool

Default False

nmr_shielding:

Compute NMR shielding tensor.

Type bool

Default False

geometric_derivative:

Compute geometric derivative.

Type bool

Default False

plot_density:

Plot converged electron density.

Type bool

Default False

plot_orbitals:

Plot converged molecular orbitals from list of indices, negative index plots all orbitals.

Type List[int]

Default []

ExternalFields:

Define external electromagnetic fields.

Keywords
electric_field:

Strength of external electric field.

Type List[float]

Default []

Predicates
  • len(value) == 0 or len(value) == 3

Polarizability:

Give details regarding the polarizability calculation.

Keywords
frequency:

List of external field frequencies.

Type List[float]

Default [0.0]

NMRShielding:

Give details regarding the NMR shileding calculation.

Keywords
nuclear_specific:

Use nuclear specific perturbation operator (h_m_pso).

Type bool

Default False

nucleus_k:

List of nuclei to compute. Negative value computes all nuclei.

Type List[int]

Default [-1]

Files:

Defines file paths used for program input/output. Note: all paths must be given in quotes if they contain slashes “path/to/file”.

Keywords
guess_basis:

File name for GTO basis set, used with gto guess.

Type str

Default initial_guess/mrchem.bas

guess_gto_p:

File name for paired orbitals, used with gto guess.

Type str

Default initial_guess/mrchem.mop

guess_gto_a:

File name for alpha orbitals, used with gto guess.

Type str

Default initial_guess/mrchem.moa

guess_gto_b:

File name for beta orbitals, used with gto guess.

Type str

Default initial_guess/mrchem.mob

guess_phi_p:

File name for paired orbitals, used with mw guess. Expected path is ``<path_orbitals>/phi_p_scf_idx_<0…Np>_<re/im>.mw

Type str

Default initial_guess/phi_p

guess_phi_a:

File name for alpha orbitals, used with mw guess. Expected path is ``<path_orbitals>/phi_a_scf_idx_<0…Na>_<re/im>.mw

Type str

Default initial_guess/phi_a

guess_phi_b:

File name for beta orbitals, used with mw guess. Expected path is ``<path_orbitals>/phi_b_scf_idx_<0…Nb>_<re/im>.mw

Type str

Default initial_guess/phi_b

guess_x_p:

File name for paired response orbitals, used with mw guess. Expected path is ``<path_orbitals>/x_p_rsp_idx_<0…Np>_<re/im>.mw

Type str

Default initial_guess/X_p

guess_x_a:

File name for alpha response orbitals, used with mw guess. Expected path is ``<path_orbitals>/x_a_rsp_idx_<0…Na>_<re/im>.mw

Type str

Default initial_guess/X_a

guess_x_b:

File name for beta response orbitals, used with mw guess. Expected path is ``<path_orbitals>/x_b_rsp_idx_<0…Nb>_<re/im>.mw

Type str

Default initial_guess/X_b

guess_y_p:

File name for paired response orbitals, used with mw guess. Expected path is ``<path_orbitals>/y_p_rsp_idx_<0…Np>_<re/im>.mw

Type str

Default initial_guess/Y_p

guess_y_a:

File name for alpha response orbitals, used with mw guess. Expected path is ``<path_orbitals>/y_a_rsp_idx_<0…Na>_<re/im>.mw

Type str

Default initial_guess/Y_a

guess_y_b:

File name for beta response orbitals, used with mw guess. Expected path is ``<path_orbitals>/y_b_rsp_idx_<0…Nb>_<re/im>.mw

Type str

Default initial_guess/Y_b

guess_cube_p:

File name for paired orbitals, used with cube guess. Expected path is ``<path_orbitals>/phi_p_scf_idx_<0…Np>_<re/im>.cube

Type str

Default initial_guess/phi_p

guess_cube_a:

File name for alpha orbitals, used with cube guess. Expected path is ``<path_orbitals>/phi_a>_scf_idx_<0…Na>_<re/im>.cube

Type str

Default initial_guess/phi_a

guess_cube_b:

File name for beta orbitals, used with cube guess. Expected path is ``<path_orbitals>/phi_b_scf_idx_<0…Nb>_<re/im>.cube

Type str

Default initial_guess/phi_b

cube_vectors:

Directory where cube vectors are stored for mrchem calculation.

Type str

Default cube_vectors/

SCF:

Includes parameters related to the ground state SCF orbital optimization.

Keywords
run:

Run SCF solver. Otherwise properties are computed on the initial orbitals.

Type bool

Default True

max_iter:

Maximum number of SCF iterations.

Type int

Default 100

kain:

Length of KAIN iterative history.

Type int

Default 5

rotation:

Number of iterations between each diagonalization/localization.

Type int

Default 0

localize:

Use canonical or localized orbitals.

Type bool

Default False

energy_thrs:

Convergence threshold for SCF energy.

Type float

Default -1.0

guess_prec:

Precision parameter used in construction of initial guess.

Type float

Default 0.001

Predicates
  • 1.0e-10 < value < 1.0

guess_screen:

Screening parameter used in GTO evaluations, in number of standard deviations. Every coordinate beyond N StdDev from the Gaussian center is evaluated to zero. Note that too aggressive screening is counter productive, because it leads to a sharp cutoff in the resulting function which requires higher grid refinement. Negative value means no screening.

Type float

Default 12.0

start_prec:

Incremental precision in SCF iterations, initial value.

Type float

Default -1.0

final_prec:

Incremental precision in SCF iterations, final value.

Type float

Default -1.0

guess_type:

Type of initial guess for ground state orbitals. chk restarts a previous calculation which was dumped using the write_checkpoint keyword. This will load MRA and electron spin configuration directly from the checkpoint files, which are thus required to be identical in the two calculations. mw will start from final orbitals in a previous calculation written using the write_orbitals keyword. The orbitals will be re-projected into the new computational setup, which means that the electron spin configuration and MRA can be different in the two calculations. gto reads precomputed GTO orbitals (requires extra non-standard input files for basis set and MO coefficients). core and sad will diagonalize the Fock matrix in the given AO basis (SZ, DZ, TZ or QZ) using a Core or Superposition of Atomic Densities Hamiltonian, respectively.

Type str

Default sad_dz

Predicates
  • value.lower() in ['mw', 'chk', 'gto', 'core_sz', 'core_dz', 'core_tz', 'core_qz', 'sad_sz', 'sad_dz', 'sad_tz', 'sad_qz', 'sad_gto', 'cube']

write_checkpoint:

Write orbitals to disk in each iteration, file name <path_checkpoint>/phi_scf_idx_<0..N>. Can be used as chk initial guess in subsequent calculations. Note: must be given in quotes if there are slashes in the path “path/to/checkpoint”.

Type bool

Default False

path_checkpoint:

Path to checkpoint files during SCF, used with write_checkpoint and chk guess.

Type str

Default checkpoint

Predicates
  • value[-1] != '/'

write_orbitals:

Write final orbitals to disk, file name <path_orbitals>/phi_<p/a/b>_scf_idx_<0..Np/Na/Nb>. Can be used as mw initial guess in subsequent calculations.

Type bool

Default False

path_orbitals:

Path to where converged orbitals will be written in connection with the write_orbitals keyword. Note: must be given in quotes if there are slashes in the path “path/to/orbitals”.

Type str

Default orbitals

Predicates
  • value[-1] != '/'

orbital_thrs:

Convergence threshold for orbital residuals.

Type float

Default 10 * user['world_prec']

Response:

Includes parameters related to the response SCF optimization.

Keywords
run:

In which Cartesian directions to run response solver.

Type List[bool]

Default [True, True, True]

max_iter:

Maximum number of response iterations.

Type int

Default 100

kain:

Length of KAIN iterative history.

Type int

Default 5

property_thrs:

Convergence threshold for symmetric property. Symmetric meaning the property computed from the same operator as the response purturbation, e.g. for external magnetic field the symmetric property corresponds to the magnetizability (NMR shielding in non-symmetric, since one of the operators is external magnetic field, while the other is nuclear magnetic moment).

Type float

Default -1.0

start_prec:

Incremental precision in SCF iterations, initial value.

Type float

Default -1.0

final_prec:

Incremental precision in SCF iterations, final value.

Type float

Default -1.0

guess_prec:

Precision parameter used in construction of initial guess.

Type float

Default 0.001

Predicates
  • 1.0e-10 < value < 1.0

guess_type:

Type of initial guess for response. none will start from a zero guess for the response functions. chk restarts a previous calculation which was dumped using the write_checkpoint keyword. mw will start from final orbitals in a previous calculation written using the write_orbitals keyword. The orbitals will be re-projected into the new computational setup.

Type str

Default none

Predicates
  • value.lower() in ['none', 'chk', 'mw']

write_checkpoint:

Write perturbed orbitals to disk in each iteration, file name <path_checkpoint>/<X/Y>_rsp_<direction>_idx_<0..N>. Can be used as chk initial guess in subsequent calculations.

Type bool

Default False

path_checkpoint:

Path to checkpoint files during SCF, used with write_checkpoint and chk guess.

Type str

Default checkpoint

Predicates
  • value[-1] != '/'

write_orbitals:

Write final perturbed orbitals to disk, file name <path_orbitals>/<X/Y>_<p/a/b>_rsp_<direction>_idx_<0..Np/Na/Nb>. Can be used as mw initial guess in subsequent calculations.

Type bool

Default False

path_orbitals:

Path to where converged orbitals will be written in connection with the write_orbitals keyword.

Type str

Default orbitals

Predicates
  • value[-1] != '/'

orbital_thrs:

Convergence threshold for orbital residuals.

Type float

Default 10 * user['world_prec']

localize:

Use canonical or localized unperturbed orbitals.

Type bool

Default user['SCF']['localize']

PCM:

Includes parameters related to the computation of the reaction field energy of a system in an environment within the Polarizable Continuum Model.

Sections
SCRF:

Parameters for the Self-Consistent Reaction Field optimization.

Keywords
max_iter:

Max number of iterations allowed in the nested procedure.

Type int

Default 100

dynamic_thrs:

Set the convergence threshold for the nested procedure. true will dynamically tighten the convergence threshold based on the absolute value of the latest orbital update as. When the orbitals are close to convergence (mo_residual < world_prec*10) the convergence threshold will be set equal to world_prec. false uses world_prec as convergence threshold throughout.

Type bool

Default True

optimizer:

Choose which function to use in the KAIN solver, the surface charge density (gamma) or the reaction potential (V_R).

Type str

Default potential

Predicates
  • value.lower() in ['density', 'potential']

density_type:

What part of the total molecular charge density to use in the algorithm. total uses the total charge density. nuclear uses only the nuclear part of the total charge density. electronic uses only the electronic part of the total charge density.

Type str

Default total

Predicates
  • value.lower() in ['total', 'nuclear', 'electronic']

kain:

Number of previous reaction field iterates kept for convergence acceleration during the nested precedure.

Type int

Default user['SCF']['kain']

Cavity:

Define the interlocking spheres cavity.

Keywords
mode:

Determines how to set up the interlocking spheres cavity. atoms: centers are taken from the molecular geometry, radii taken from tabulated data (van der Waals radius), and rescaled using the parameters alpha, beta and sigma (R_i <- alpha*R_i + beta*sigma). Default spheres can be modified and/or extra spheres added, using the $spheres section, see documentation. explicit: centers and radii given explicitly in the spheres block.

Type str

Default atoms

Predicates
  • value.lower() in ['atoms', 'explicit']

spheres:

This input parameter affects the list of spheres used to generate the cavity. In all cases, values for the radius, the radius scaling factor (alpha), the width (sigma), and the width scaling factor (beta) can be modified. If they are not specified their global default values are used. In atoms mode, we modify the default list of spheres, built with centers from the molecular geometry and radii from internal tabulated van der Waals values. To substitute a sphere, include a line like: $spheres i R [alpha] [beta] [sigma] $end to specify that the i atom in the molecule (0-based indexing) should use radius R instead of the pre-tabulated vdW radius. To add a sphere, include a line like: $spheres x y z R [alpha] [beta] [sigma] $end to specify that a sphere of radius R should be added at position (x, y, z). Spheres added in this way are not aware of their parent atom, if any. They will not contribute to the molecular gradient. In explicit mode, we build the complete sphere list from scratch. You can add a line like: $spheres x y z R [alpha] [beta] [sigma] $end to specify that a sphere of radius R should be added at position (x, y, z). Spheres added in this way are not aware of their parent atom, if any. They will not contribute to the molecular gradient. Alternatively, you can specify a line like: $spheres i R [alpha] [beta] [sigma] $end to specify that the i atom in the molecule (0-based indexing) should use radius R. Spheres added in this way are aware of their parent atom. They will contribute to the molecular gradient.

Type str

Default ````

alpha:

Scaling factor on the radius term for the cavity rescaling (R_i <- alpha*R_i + beta*sigma). Only used for the default vdW radii in atoms mode, not if explicit $spheres are given.

Type float

Default 1.1

beta:

Scaling factor on the boundary width term for the cavity rescaling (R_i <- alpha*R_i + beta*sigma). Only used for the default vdW radii in atoms mode, not if explicit $spheres are given.

Type float

Default 0.5

sigma:

Width of cavity boundary, smaller value means sharper transition.

Type float

Default 0.2

Permittivity:

Parameters for the permittivity function.

Keywords
epsilon_in:

Permittivity inside the cavity. 1.0 is the permittivity of free space, anything other than this is undefined behaviour.

Type float

Default 1.0

epsilon_out:

Permittivity outside the cavity. This is characteristic of the solvent used.

Type float

Default 1.0

formulation:

Formulation of the Permittivity function. Currently only the exponential is used.

Type str

Default exponential

Predicates
  • value.lower() in ['exponential']

Constants:

Physical and mathematical constants used by MRChem

Keywords
hartree2simagnetizability:
Conversion factor for magnetizability from atomic units to SI units (unit: J T^-2). Affected code: Printed value of the magnetizability property.

Type float

Default 78.9451185

light_speed:
Speed of light in atomic units (unit: au). Affected code: Relativistic Hamiltonians (ZORA, etc.)

Type float

Default 137.035999084

angstrom2bohrs:
Conversion factor for Cartesian coordinates from Angstrom to Bohr (unit: Å^-1). Affected code: Parsing of input coordinates, printed coordinates

Type float

Default 1.8897261246257702

hartree2kjmol:
Conversion factor from Hartree to kJ/mol (unit: kJ mol^-1). Affected code: Printed value of energies.

Type float

Default 2625.4996394798254

hartree2kcalmol:
Conversion factor from Hartree to kcal/mol (unit: kcal mol^-1). Affected code: Printed value of energies.

Type float

Default 627.5094740630558

hartree2ev:
Conversion factor from Hartree to eV (unit: ev). Affected code: Printed value of energies.

Type float

Default 27.211386245988

hartree2wavenumbers:
Conversion factor from Hartree to wavenumbers (unit: cm^-1). Affected code: Printed value of frequencies.

Type float

Default 219474.6313632

fine_structure_constant:
Fine-structure constant in atomic units (unit: au). Affected code: Certain magnetic interaction operators.

Type float

Default 0.0072973525693

electron_g_factor:
Electron g factor in atomic units (unit: au). Affected code: Certain magnetic interaction operators.

Type float

Default -2.00231930436256

dipmom_au2debye:
Conversion factor for dipoles from atomic units to Debye (unit: ?). Affected code: Printed value of dipole moments.

Type float

Default 2.5417464739297717