# 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`

- 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`

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

**Type**`bool`

**Default**`False`

- coords
Coordinates in xyz format.

**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`

- 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.**Type**`str`

**Default**`initial_guess/phi_p`

- guess_phi_a
File name for alpha orbitals, used with

`mw`

guess.**Type**`str`

**Default**`initial_guess/phi_a`

- guess_phi_b
File name for beta orbitals, used with

`mw`

guess.**Type**`str`

**Default**`initial_guess/phi_b`

- guess_x_p
File name for paired response orbitals, used with

`mw`

guess.**Type**`str`

**Default**`initial_guess/X_p`

- guess_x_a
File name for alpha response orbitals, used with

`mw`

guess.**Type**`str`

**Default**`initial_guess/X_a`

- guess_x_b
File name for beta response orbitals, used with

`mw`

guess.**Type**`str`

**Default**`initial_guess/X_b`

- guess_y_p
File name for paired response orbitals, used with

`mw`

guess.**Type**`str`

**Default**`initial_guess/Y_p`

- guess_y_a
File name for alpha response orbitals, used with

`mw`

guess.**Type**`str`

**Default**`initial_guess/Y_a`

- guess_y_b
File name for beta response orbitals, used with

`mw`

guess.**Type**`str`

**Default**`initial_guess/Y_b`

- 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`

- 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']`

- 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']`

- Environment
Includes parameters related to the computation of the reaction field energy of a system in an environment.

- Keywords
- max_iter
Max number of iterations allowed in the nested procedure.

**Type**`int`

**Default**`100`

- run_environment
Perform the reaction field calculation of the reaction potential of the interaction between environment and molecule.

**Type**`bool`

**Default**`False`

- algorithm
What algorithm to use for the reaction field

`scrf`

runs a nested algorithm where the generalized Poisson equation is solved iterativelly until self consistency wrt. the convergence threshold.**Type**`str`

**Default**`scrf`

**Predicates**`value.lower() in ['scrf']`

- convergence_criterion
Adjust the convergence threshold for the nested procedure.

`dynamic`

Uses the absolute value of the latest orbital update as convergence threshold. When the orbitals are close to convergence (`mo_residual < world_prec*10`

) the convergence threshold will be equal to`world_prec`

.`static`

uses`world_prec`

as convergence threshold.**Type**`str`

**Default**`dynamic`

**Predicates**`value.lower() in ['dynamic', 'static']`

- extrapolate_Vr
Extrapolate on the reaction potential if true, or on the surface charge distribution in the convergence acceleration.

**Type**`bool`

**Default**`True`

- 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']`

- Sections
- Cavity
Define the interlocking spheres cavity.

- 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**`2.0`

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

**Type**`str`

**Default**`exponential`

**Predicates**`value.lower() in ['exponential']`