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

- zora
Derivative used ZORA potential.

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

- relativity
Set method for relativistic treatment.

`ZORA`

for fully self-consistent ZORA potential, by default including all potentials (`V_nuc`

,`J`

,`V_xc`

) but this can be overwritten in the`ZORA`

section.`nZORA`

is shortcut for nuclear-ZORA, i.e. only`V_nuc`

is included (this keyword takes precedence over keywords in the`ZORA`

section).**Type**`str`

**Default**`none`

**Predicates**`value.lower() in ['none', 'zora', 'nzora']`

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

- ZORA
Define required parameters for the ZORA Hamiltonian.

- Keywords
- include_nuclear
Include the nuclear potential

`V_nuc`

in the ZORA potential.**Type**`bool`

**Default**`True`

- include_coulomb
Include the Coulomb potential

`J`

in the ZORA potential.**Type**`bool`

**Default**`True`

- include_xc
Include the XC potential

`V_xc`

in the ZORA potential.**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. 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 where Np is the number of orbitals and re/im denote real or imaginary parts.**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 where Np is the number of orbitals and re/im denote real or imaginary parts.**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 where Np is the number of orbitals and re/im denote real or imaginary parts.**Type**`str`

**Default**`initial_guess/phi_b`

- guess_cube_x_p
File name for paired response orbitals, used with

`cube`

guess. Expected path is ``<path_orbitals>/x_p_rsp_<0,1,2>_<0…Np>_<re/im>.cube where 0,1,2 indicate the index of the components of the response vectors. Np is the number of orbitals and re/im denote real or imaginary parts.**Type**`str`

**Default**`initial_guess/x_p`

- guess_cube_x_a
File name for alpha response orbitals, used with

`cube`

guess. Expected path is ``<path_orbitals>/x_a_rsp_<0,1,2>_<0…Na>_<re/im>.cube where 0,1,2 indicate the index of the components of the response vectors. Np is the number of orbitals and re/im denote real or imaginary parts.**Type**`str`

**Default**`initial_guess/x_a`

- guess_cube_x_b
File name for beta response orbitals, used with

`cube`

guess. Expected path is ``<path_orbitals>/x_b_rsp_<0,1,2>_<0…Nb>_<re/im>.cube where 0,1,2 indicate the index of the components of the response vectors. Np is the number of orbitals and re/im denote real or imaginary parts.**Type**`str`

**Default**`initial_guess/x_b`

- guess_cube_y_p
File name for paired response orbitals, used with

`cube`

guess. Expected path is ``<path_orbitals>/y_p_rsp_<0,1,2>_<0…Np>_<re/im>.cube where 0,1,2 indicate the index of the components of the response vectors. Np is the number of orbitals and re/im denote real or imaginary parts.**Type**`str`

**Default**`initial_guess/y_p`

- guess_cube_y_a
File name for alpha response orbitals, used with

`cube`

guess. Expected path is ``<path_orbitals>/y_a_rsp_<0,1,2>_<0…Na>_<re/im>.cube where 0,1,2 indicate the index of the components of the response vectors. Np is the number of orbitals and re/im denote real or imaginary parts.**Type**`str`

**Default**`initial_guess/y_a`

- guess_cube_y_b
File name for beta response orbitals, used with

`cube`

guess. Expected path is ``<path_orbitals>/y_b_rsp_<0,1,2>_<0…Nb>_<re/im>.cube where 0,1,2 indicate the index of the components of the response vectors. Np is the number of orbitals and re/im denote real or imaginary parts.**Type**`str`

**Default**`initial_guess/y_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.`cube`

will start from orbitals saved in cubefiles from external calculations.**Type**`str`

**Default**`sad_gto`

**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', 'cube']`

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

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