Welcome to MRChem’s documentation!

MRChem is a numerical real-space code for molecular electronic structure calculations within the self-consistent field (SCF) approximations of quantum chemistry (Hartree-Fock and Density Functional Theory). The code is divided in two main parts: the MultiResolution Computation Program Package (MRCPP), which is a general purpose numerical mathematics library based on multiresolution analysis and the multiwavelet basis which provide low-scaling algorithms as well as rigorous error control in numerical computations, and the MultiResolution Chemistry (MRChem) program that uses the functionalities of MRCPP for computational chemistry applications.

The code is being developed at the Hylleraas Centre for Quantum Molecular Sciences at UiT - The Arctic University of Norway.


The code is under active development, and the latest stable releases as well as development versions can be found on GitHub.

Features in MRChem-1.1:

  • Wave functions:
    • Kohn-Sham DFT
      • Spin-polarized

      • Spin-unpolarized

      • LDA, GGA and hybrid functionals

    • Hartree-Fock
      • Restricted closed-shell

      • Unrestricted

    • Explicit external fields
      • Electric field

    • Solvent effects
      • Cavity-free PCM

      • Poisson-Boltzmann PCM

      • Linearized Poisson-Boltzmann PCM

  • Properties:
    • Ground state energy

    • Dipole moment

    • Quadrupole moment

    • Polarizability

    • Magnetizability

    • NMR shielding constant

    • Geometric derivative

  • Parallel implementation:
    • Shared memory (OpenMP): ~20 cores

    • Distributed memory (MPI): ~1000 procs

    • Hybrid scheme (MPI + OpenMP): ~10 000 cores

  • Current size limitations:
    • ~2000 orbitals on ~100 high-end compute nodes (128 core/256GiB mem)

    • ~100 orbitals on a single high-memory (1TB) compute node

Upcoming features:

  • Wave functions:
    • Meta-GGAs

    • ZORA Hamiltonian

    • Periodic Boundary Conditions

    • External magnetic field

  • Properties:
    • Optical rotation

    • Spin-spin coupling constant

    • Hyperfine coupling constant

    • Magnetically induced currents

    • Hyperpolarizability

    • Geometry optimization

  • Performance:
    • Reduced memory footprint

    • Improved DFT scaling and performance

Installation

Build prerequisites

  • Python-3.9 (or later)

  • CMake-3.14 (or later)

  • GNU-5.4 or Intel-17 (or later) compilers (C++14 standard)

Hint

We have collected the recommended modules for the different Norwegian HPC systems under tools/<machine>.env. These files can be sourced in order to get a working environment on the respective machines, and may also serve as a guide for other HPC systems.

C++ dependencies

The MRChem program depends on the following C++ libraries:

All these dependencies will be downloaded automatically at configure time by CMake, but can also be linked manually by setting the variables:

MRCPP_DIR=<path_to_mrcpp>/share/cmake/MRCPP
XCFun_DIR=<path_to_xcfun>/share/cmake/XCFun
Eigen3_DIR=<path_to_eigen3>/share/eigen3/cmake
nlohmann_json_DIR=<path_to_nlohmann_json>
Python dependencies

Users only need a Python3 interpreter, which is used for configuration (setup script) as well as launching the program (mrchem script).

Developers will need some extra Python packages to update the input parser and build the documentation locally with Sphinx.

We strongly suggest not to install these Python dependencies globally, but rather to use a local virtual environment. We provide a Pipfile for specifying the Python dependencies. We recommend using Pipenv, since it manages virtual environment and package installation seamlessly. After installing it with your package manager, run:

$ pipenv install --dev

to create a virtual environment with all developer packages installed.

The environment can be activated with:

$ pipenv shell

Alternatively, any Python command can be run within the virtual environment by doing:

$ pipenv run python -c "print('Hello, world')"

Obtaining and building the code

The latest development version of MRChem can be found on the master branch on GitHub:

$ git clone https://github.com/MRChemSoft/mrchem.git

The released versions can be found from Git tags vX.Y.Z under the release/X.Y branches in the same repository, or a zip file can be downloaded from Zenodo.

By default, all dependencies will be fetched at configure time if they are not already available.

Configure

The setup script will create a directory called <build-dir> and run CMake. There are several options available for the setup, the most important being:

--cxx=<CXX>

C++ compiler [default: g++]

--omp

Enable OpenMP parallelization [default: False]

--mpi

Enable MPI parallelization [default: False]

--type=<TYPE>

Set the CMake build type (debug, release, relwithdebinfo, minsizerel) [default: release]

--prefix=<PATH>

Set the install path for make install [default: ‘/usr/local’]

--cmake-options=<STRING>

Define options to CMake [default: ‘’]

-h --help

List all options

The code can be built with four levels of parallelization:

  • no parallelization

  • only shared memory (OpenMP)

  • only distributed memory (MPI)

  • hybrid OpenMP + MPI

Note

In practice we recommend the shared memory version for running on your personal laptop/workstation, and the hybrid version for running on a HPC cluster. The serial and pure MPI versions are only useful for debugging.

The default build is without parallelization and using GNU compilers:

$ ./setup --prefix=<install-dir> <build-dir>

To use Intel compilers you need to specify the --cxx option:

$ ./setup --prefix=<install-dir> --cxx=icpc <build-dir>

To build the code with shared memory (OpenMP) parallelization, add the --omp option:

$ ./setup --prefix=<install-dir> --omp <build-dir>

To build the code with distributed memory (MPI) parallelization, add the --mpi option and change to the respective MPI compilers (--cxx=mpicxx for GNU and --cxx=mpiicpc for Intel):

$ ./setup --prefix=<install-dir> --omp --mpi --cxx=mpicxx <build-dir>

When dependencies are fetched at configuration time, they will be downloaded into <build-dir>/_deps. For the example of MRCPP, sources are saved into the folders <build-dir>/_deps/mrcpp_sources-src and built into <build-dir>/_deps/mrcpp_sources-build.

Note

If you compile the MRCPP library manually as a separate project, the level of parallelization must be the same for MRCPP and MRChem. Similar options apply for the MRCPP setup, see mrcpp.readthedocs.io.

Build

If the CMake configuration is successful, the code is compiled with:

$ cd <build-dir>
$ make
Test

A test suite is provided to make sure that everything compiled properly. To run a collection of small unit tests:

$ cd <build-dir>
$ ctest -L unit

To run a couple of more involved integration tests:

$ cd <build-dir>
$ ctest -L integration
Install

After the build has been verified with the test suite, it can be installed with the following command:

$ cd <build-dir>
$ make install

This will install two executables under the <install-path>:

<install-path>/bin/mrchem       # Python input parser and launcher
<install-path>/bin/mrchem.x     # MRChem executable

Please refer to the User’s Manual for instructions for how to run the program.

Hint

We have collected scripts for configure and build of the hybrid OpenMP + MPI version on the different Norwegian HPC systems under tools/<machine>.sh. These scripts will build the current version under build-${version}, run the unit tests and install under install-${version}, e.g. to build version v1.0.0 on Fram:

$ cd mrchem
$ git checkout v1.0.0
$ tools/fram.sh

The configure step requires internet access, so the scripts must be run on the login nodes, and it will run on a single core, so it might take some minutes to complete. The scripts will not install the Python dependencies, so this must be done manually in order to run the code.

User’s Manual

The MRChem program comes as two executables:

<install-path>/bin/mrchem                   # Python input parser and launcher
<install-path>/bin/mrchem.x                 # MRChem main executable

where the former is a Python script that reads and validates the user input file and produces a new program input file which is then passed as argument to the latter, which is the actual C++ executable.

The input and output of the program is thus organized as three separate files:

File extension

Description

Format

.inp

User input file

GETKW/JSON

.json

Program input/output

JSON

.out

User output file

Text

The name of the user input file can be anything, as long as it has the .inp extension, and the corresponding .json and .out files will get the same name prefix. The JSON program file will get both an "input" and an "output" section. This "input" section is rather detailed and contains very implementation specific keywords, but it is automatically generated by the mrchem script, based on the more generic keywords of the user input file. The mrchem script will further launch the mrchem.x main executable, which will produce the text output file as well as the "output" section of the JSON in/out file. The contents of all these files will be discussed in more detail in the sections below.

Running the program

In the following we will assume to have a valid user input file for the water molecule called h2o.inp, e.g. like this

world_prec = 1.0e-4

WaveFunction {
  method = B3LYP
}

Molecule {
$coords
O  0.0000  0.000 -0.125
H -1.4375  0.000  1.025
H  1.4375  0.000  1.025
$end
}

To run the calculation, pass the file name (without extension) as argument to the mrchem script (make sure you understand the difference between the .inp, .json and .out file, as described in the previous section):

$ mrchem h2o

This will under the hood actually do the following two steps:

$ mrchem h2o.inp > h2o.json
$ mrchem.x h2o.json > h2o.out

The first step includes input validation, which means that everything that passes this step is a well-formed computation.

Dry-running the input parser

The execution of the two steps above can be done separately by dry-running the parser script:

$ mrchem --dryrun h2o

This will run only the input validation part and generate the h2o.json program input, but it will not launch the main executable mrchem.x. This can then be done manually in a subsequent step by calling:

$ mrchem.x h2o.json

This separation can be useful for instance for developers or advanced users who want to change some automatically generated input values before launching the actual program, see Input schema.

Printing to standard output

By default the program will write to the text output file (.out extension), but if you rather would like it printed in the terminal you can add the --stdout option (then no text output file is created):

$ mrchem --stdout h2o
Reproducing old calculations

The JSON in/out file acts as a full record of the calculation, and can be used to reproduce old results. Simply pass the JSON file once more to mrchem.x, and the "output" section will be overwritten:

$ mrchem.x h2o.json
User input in JSON format

The user input file can be written in JSON format instead of the standard syntax which is described in detail below. This is very convenient if you have for instance a Python script to generate input files. The water example above in JSON format reads (the coords string is not very elegant, but unfortunately that’s just how JSON works…):

{
  "world_prec": 1.0e-4,
  "WaveFunction": {
    "method": "B3LYP"
  },
  "Molecule": {
    "coords": "O  0.0000  0.000 -0.125\nH -1.4375  0.000  1.025\nH  1.4375  0.000  1.025\n"
  }
}

which can be passed to the input parser with the --json option:

$ mrchem --json h2o

Note

A user input file in JSON format must NOT be confused with the JSON in/out file for the mrchem.x program. The file should still have a .inp extension, and contain all the same keywords which have to be validated and translated by the mrchem script into the .json program input file.

Parallel execution

The MRChem program comes with support for both shared memory and distributed memory parallelization, as well as a hybrid combination of the two. In order to activate these capabilities, the code needs to be compiled with OpenMP and/or MPI support (--omp and/or --mpi options to the CMake setup script, see Installation instructions).

Shared memory OpenMP

For the shared memory part, the program will automatically pick up the number of threads from the environment variable OMP_NUM_THREADS. If this variable is not set it will usually default to the maximum available. So, to run the code on 16 threads (all sharing the same physical memory space):

$ OMP_NUM_THREADS=16 mrchem h2o

Note that this is the number of threads will be set by OMP_NUM_THREADS only if the code is compiled without MPI support, see below.

Distributed memory MPI

In order to run a program in an MPI parallel fashion, it must be executed with an MPI launcher like mpirun, mpiexec, srun, etc. Note that it is only the main executable mrchem.x that should be launched in parallel, not the mrchem input parser script. This can be achieved either by running these separately in a dry-run (here two MPI processes):

$ mrchem --dryrun h2o
$ mpirun -np 2 mrchem.x h2o.json

or in a single command by passing the launcher string as argument to the parser:

$ mrchem --launcher="mpirun -np 2" h2o

This string can contain any argument you would normally pass to mpirun as it will be literally prepended to the mrchem.x command when the mrchem script executes the main program.

Hint

For best performance, it is recommended to use shared memory within each NUMA domain (usually one per socket) of your CPU, and MPI across NUMA domains and ultimately machines. Ideally, the number of OpenMP threads should be between 8-20. E.g. on hardware with two sockets of 16 cores each, scale the number of MPI processes by the size of the molecule, typically one process per ~5 orbitals or so (and definitely not more than one process per orbital). The actual number of threads will be set automatically regardless of the value of OMP_NUM_THREADS.

Job example (Betzy)

This job will use 4 compute nodes, with 12 MPI processes on each, and the MPI process will use up to 15 OpenMP threads. 4 MPI process per node are used for the “Bank”. The Bank processes are using only one thread, therefore there is in practice no overallocation. It is however important that bank_size is set to be at least 4*4 = 16 (it is by default set, correctly, to one third of total MPI size, i.e. 4*12/3=16). It would also be possible to set 16 tasks per node, and set the bank size parameter accordingly to 8*4=32. The flags are optimized for the OpenMPI (foss) library on Betzy (note that H2O is a very small molecule for such setup!).

#!/bin/bash -l
#SBATCH --nodes=4
#SBATCH --tasks-per-node=12

export UCX_LOG_LEVEL=ERROR

~/my_path/to/mrchem --launcher='mpirun --rank-by node --map-by socket --bind-to numa' h2o
--rank-by node

Tells the system to place the first MPI rank on the first node, the second MPI rank on the second node, until the last node, then start at the first node again.

--map-by socket

Tells the system to map (group) MPI ranks according to socket before distribution between nodes. This will ensure that for example two bank cores will access different parts of memory and be placed as the 16th thread of a numa group.

--bind-to numa

Tells the system to bind cores to one NUMA (Non Uniform Memory Access) group. On Betzy memory configuration groups cores by groups of 16, with cores in the same group having the same access to memory (other cores will have access to that part of the memory too, but slower). That means that a process will only be allowed to use one of the 16 cores of the group. (The operating system may change the core assigned to a thread/process and, without precautions, it may be assigned to any other core, which would result in much reduced performance). The 16 cores of the group may then be used by the threads initiated by that MPI process.

Advanced option: Alternatively one can get full control of task placement using the Slurm workload manager by replacing mpirun with srun and setting explicit CPU masks as:

~/my_path/to/mrchem --launcher='srun --cpu-bind=mask_cpu:0xFFFE00000000, \\
0xFFFE000000000000000000000000,0xFFFE000000000000,0xFFFE0000000000000000000000000000, \\
0xFFFE,0xFFFE0000000000000000,0xFFFE0000,0xFFFE00000000000000000000,0x10000, \\
0x100000000000000000000,0x100000000,0x1000000000000000000000000 \\
--distribution=cyclic:cyclic' h2o

--cpu-bind=mask_cpu:0xFFFE00000000,0xFFFE000000000000000000000000,... give the core (or cpu) masks the process have access to. 0x means that the number is in hexadecimal. For example 0xFFFE00000000 is 111111111111111000000000000000000000000000000000 in binary, meaning that the first process can not use the first 33 cores, then it can use the cores from position 34 up to position 48, and nothing else.

--distribution=cyclic:cyclic The first cyclic will put the first rank on the first node, the second rank on the second node etc. The second cyclic distribute the ranks withing the nodes.

More examples can be found in the mrchem-examples repository on GitHub.

Parallel pitfalls

Warning

Parallel program execution is not a black box procedure, and the behavior and efficiency of the run depends on several factors, like hardware configuration, operating system, compiler type and flags, libraries for OpenMP and MPI, type of queing system on a shared cluster, etc. Please make sure that the program runs correctly on your system and is able to utilize the computational resources before commencing production calculations.

Typical pitfalls for OpenMP
  • Not compiling with correct OpenMP support.

  • Not setting number of threads correctly.

  • Hyper-threads: the round-robin thread distribution might fill all hyper-threads on each core before moving on to the next physical core. In general we discourage the use of hyper-threads, and recommend a single thread per physical core.

  • Thread binding: all threads may be bound to the same core, which means you can have e.g. 16 threads competing for the limited resources available on this single core (typically two hyper-threads) while all other cores are left idle.

Typical pitfalls for MPI
  • Not compiling with the correct MPI support.

  • Default launcher options might not give correct behavior.

  • Process binding: if a process is bound to a core, then all its spawned threads will also be bound to the same core. In general we recommend binding to socket/NUMA.

  • Process distribution: in a multinode setup, all MPI processes might land on the same machine, or the round-robin procedure might count each core as a separate machine.

How to verify a parallel MRChem run
  • In the printed output, verify that MRCPP has actually been compiled with correct support for MPI and/or OpenMP:

    ----------------------------------------------------------------------
    
    MRCPP version         : 1.2.0
    Git branch            : master
    Git commit hash       : 686037cb78be601ac58b
    Git commit author     : Stig Rune Jensen
    Git commit date       : Wed Apr 8 11:35:00 2020 +0200
    
    Linear algebra        : EIGEN v3.3.7
    Parallelization       : MPI/OpenMP
    
    ----------------------------------------------------------------------
    
  • In the printed output, verify that the correct number of processes and threads has been detected:

    ----------------------------------------------------------------------
    
     MPI processes         :      (no bank)                             2
     OpenMP threads        :                                           16
     Total cores           :                                           32
    
    ----------------------------------------------------------------------
    
  • Monitor your run with top to see that you got the expected number of mrchem.x processes (MPI), and that they actually run at the expected CPU percentage (OpenMP):

    PID   USER      PR  NI    VIRT    RES    SHR S   %CPU  %MEM     TIME+ COMMAND
    9502  stig      25   5  489456 162064   6628 R 1595,3   2,0   0:14.50 mrchem.x
    9503  stig      25   5  489596 162456   6796 R 1591,7   2,0   0:14.33 mrchem.x
    
  • Monitor your run with htop to see which core/hyper-thread is being used by each process. This is very useful to get the correct binding/pinning of processes and threads. In general you want one threads per core, which means that every other hyper-thread should remain idle. In a hybrid MPI/OpenMP setup it is rather common that each MPI process becomes bound to a single core, which means that all threads spawned by this process will occupy the same core (possibly two hyper-threads). This is then easily detected with htop.

  • Perform dummy executions of your parallel launcher (mpirun, srun, etc) to check whether it picks up the correct parameters from the resource manager on your cluster (SLURM, Torque, etc). You can then for instance report bindings and host name for each process:

    $ mpirun --print-rank-map hostname
    

    Play with the launcher options until you get it right. Note that Intel and OpenMPI have slightly different options for their mpirun and usually different behavior. Beware that the behavior can also change when you move from single- to multinode execution, so it is in general not sufficient to verify you runs on a single machine.

  • Perform a small scaling test on e.g. 1, 2, 4 processes and/or 1, 2, 4 threads and verify that the total computation time is reduced as expected (don’t expect 100% efficiency at any step).

User input file

The input file is organized in sections and keywords that can be of different type. Input keywords and sections are case-sensitive, while values are case-insensitive.

Section {
  keyword_1 = 1                         # int
  keyword_2 = 3.14                      # float
  keyword_3 = [1, 2, 3]                 # int array
  keyword_4 = foo                       # string
  keyword_5 = true                      # boolean
}

Valid options for booleans are true/false, on/off or yes/no. Single word strings can be given without quotes (be careful of special characters, like slashes in file paths). A complete list of available input keywords can be found in the User input reference.

Top section

The main input section contain four keywords: the relative precision \(\epsilon_{rel}\) that will be guaranteed in the calculation and the size, origin and unit of the computational domain. The top section is not specified by name, just write the keywords directly, e.g

world_prec = 1.0e-5                     # Overall relative precision
world_size = 5                          # Size of domain 2^{world_size}
world_unit = bohr                       # Global length unit
world_origin = [0.0, 0.0, 0.0]          # Global gauge origin

The relative precision sets an upper limit for the number of correct digits you are expected to get out of the computation (note that \(\epsilon_{rel}=10^{-6}\) yields \(\mu\) Ha accuracy for the hydrogen molecule, but only mHa accuracy for benzene).

The computational domain is always symmetric around the origin, with total size given by the world_size parameter as \([2^n]^3\), e.i. world_size = 5 gives a domain of \([-16,16]^3\). Make sure that the world is large enough to allow the molecular density to reach zero on the boundary. The world_size parameter can be left out, in which case the size will be estimated based on the molecular geometry. The world_unit relates to all coordinates given in the input file and can be one of two options: angstrom or bohr.

Note

The world_size will be only approximately scaled by the angstrom unit, by adding an extra factor of 2 rather than the appropriate factor of ~1.89. This means that e.g. world_size = 5 (\([-16,16]^3\)) with world_unit = angstrom will be translated into \([-32,32]^3\) bohrs.

Precisions

MRChem uses a smoothed nuclear potential to avoid numerical problems in connection with the \(Z/|r-R|\) singularity. The smoothing is controlled by a single parameter nuc_prec that is related to the expected error in the energy due to the smoothing. There are also different precision parameters for the construction of the Poisson and Helmholtz integral operators.

Precisions {
  nuclear_prec = 1.0e-6                 # For construction of nuclear potential
  poisson_prec = 1.0e-6                 # For construction of Poisson operators
  helmholtz_prec = 1.0e-6               # For construction of Helmholtz operatos
}

By default, all precision parameters follow world_prec and usually don’t need to be changed.

Printer

This section controls the format of the printed output file (.out extension). The most important option is the print_level, but it also gives options for number of digits in the printed output, as well as the line width (defaults are shown):

Printer {
  print_level = 0                       # Level of detail in the printed output
  print_width = 75                      # Line width (in characters) of printed output
  print_prec = 6                        # Number of digits in floating point output
}

Note that energies will be printed with twice as many digits. Available print levels are:

  • print_level=-1 no output is printed

  • print_level=0 prints mainly properties

  • print_level=1 adds timings for individual steps

  • print_level=2 adds memory and timing information on OrbitalVector level

  • print_level=3 adds details for individual terms of the Fock operator

  • print_level=4 adds memory and timing information on Orbital level

  • print_level>=5 adds debug information at MRChem level

  • print_level>=10 adds debug information at MRCPP level

MPI

This section defines some parameters that are used in MPI runs (defaults shown):

MPI {
  bank_size = -1                        # Number of processes used as memory bank
  omp_threads = -1                      # Number of omp threads to use
  numerically_exact = false             # Guarantee MPI invariant results
  share_nuclear_potential = false       # Use MPI shared memory window
  share_coulomb_potential = false       # Use MPI shared memory window
  share_xc_potential = false            # Use MPI shared memory window
}

The memory bank will allow larger molecules to get though if memory is the limiting factor, but it will be slower, as the bank processes will not take part in any computation. For calculations involving exact exchange (Hartree-Fock or hybrid DFT functionals) a memory bank is required whenever there’s more than one MPI process. A negative bank size will set it automatically based on the number of available processes. For pure DFT functionals on smaller molecules it is likely more efficient to set bank_size = 0, otherwise it’s recommended to use the default. If a particular calculation runs out of memory, it might help to increase the number of bank processes from the default value.

The number of threads to use in OpenMP can be forced using the omp_threads flag. For MPI runs, it is strongly advised to leave the default, as the optimal value can be difficult to guess. The environment variable OMP_NUM_THREADS is not used for MPI runs.

The numerically_exact keyword will trigger algorithms that guarantee that the computed results are invariant (within double precision) with respect to the number or MPI processes. These exact algorithms require more memory and are thus not default. Even when the numbers are not MPI invariant they should be correct and identical within the chosen world_prec.

The share_potential keywords are used to share the memory space for the particular functions between all processes located on the same physical machine. This will save memory but it might slow the calculation down, since the shared memory cannot be “fast” memory (NUMA) for all processes at once.

Basis

This section defines the polynomial MultiWavelet basis

Basis {
  type = Interpolating                  # Legendre or Interpolating
  order = 7                             # Polynomial order of MW basis
}

The MW basis is defined by the polynomial order \(k\), and the type of scaling functions: Legendre or Interpolating polynomials (in the current implementation it doesn’t really matter which type you choose). Note that increased precision requires higher polynomial order (use e.g \(k = 5\) for \(\epsilon_{rel} = 10^{-3}\), and \(k = 13\) for \(\epsilon_{rel} = 10^{-9}\), and interpolate in between). If the order keyword is left out it will be set automatically according to

\[k=-1.5*log_{10}(\epsilon_{rel})\]

The Basis section can usually safely be omitted in the input.

Molecule

This input section specifies the geometry (given in world_unit units), charge and spin multiplicity of the molecule, e.g. for water (coords must be specified, otherwise defaults are shown):

Molecule {
  charge = 0                            # Total charge of molecule
  multiplicity = 1                      # Spin multiplicity
  translate = false                     # Translate CoM to world_origin
$coords
O   0.0000     0.0000     0.0000        # Atomic symbol and coordinate
H   0.0000     1.4375     1.1500        # Atomic symbol and coordinate
H   0.0000    -1.4375     1.1500        # Atomic symbol and coordinate
$end
}

Since the computational domain is always cubic and symmetric around the origin it is usually a good idea to translate the molecule to the origin (as long as the world_origin is the true origin).

WaveFunction

Here we give the wavefunction method, environment used (for solvent models) and whether we run spin restricted (alpha and beta spins are forced to occupy the same spatial orbitals) or not (method must be specified, otherwise defaults are shown):

WaveFunction {
  method = <wavefunction_method>        # Core, Hartree, HF or DFT
  restricted = true                     # Spin restricted/unrestricted
  environment = pcm                     # Environment (pcm, pcm-pb, pcm-lpb) defaults to none
}

There are currently four methods available: Core Hamiltonian, Hartree, Hartree-Fock (HF) and Density Functional Theory (DFT). When running DFT you can either set one of the default functionals in this section (e.g. method = B3LYP), or you can set method = DFT and specify a “non-standard” functional in the separate DFT section (see below). See User input reference for a list of available default functionals.

The solvent model implemented is a cavity free PCM, described in [gerez2023]. In this model we have implemented the Generalized Poisson equation solver, keyword pcm, a Poisson-Boltzmann solver, keyword pcm-pb and a Linearized Poisson-Boltzmann solver, keyword pcm-lpb. Further details for the calculation have to be included in the PCM section, see :ref: User input reference for details.

Note

Restricted open-shell wavefunctions are not supported.

DFT

This section can be omitted if you are using a default functional, see above. Here we specify the exchange-correlation functional used in DFT (functional names must be specified, otherwise defaults are shown)

DFT {
  spin = false                          # Use spin-polarized functionals
  density_cutoff = 0.0                  # Cutoff to set XC potential to zero
$functionals
<func1>     1.0                         # Functional name and coefficient
<func2>     1.0                         # Functional name and coefficient
$end
}

You can specify as many functionals as you want, and they will be added on top of each other with the given coefficient. Both exchange and correlation functionals must be set explicitly, e.g. SLATERX and VWN5C for the standard LDA functional. For hybrid functionals you must specify the amount of exact Hartree-Fock exchange as a separate functional EXX (EXX 0.2 for B3LYP and EXX 0.25 for PBE0 etc.). Option to use spin-polarized functionals or not. Unrestricted calculations will use spin-polarized functionals by default. The XC functionals are provided by the XCFun library.

Properties

Specify which properties to compute. By default, only the ground state SCF energy as well as orbital energies will be computed. Currently the following properties are available (all but the dipole moment are false by default)

Properties {
  dipole_moment = true                  # Compute dipole moment
  quadrupole_moment = false             # Compute quadrupole moment
  polarizabiltity = false               # Compute polarizability
  magnetizability = false               # Compute magnetizability
  nmr_shielding = false                 # Compute NMR shieldings
  geometric_derivative = false          # Compute geometric derivative
  plot_density = false                  # Plot converged density
  plot_orbitals = []                    # Plot converged orbitals
}

Some properties can be further specified in dedicated sections.

Warning

The computation of the molecular gradient suffers greatly from numerical noise. The code replaces the nucleus-electron attraction with a smoothed potential. This can only partially recover the nuclear cusps, even with tight precision. The molecular gradient is only suited for use in geometry optimization of small molecules and with tight precision thresholds.

Polarizability

The polarizability can be computed with several frequencies (by default only static polarizability is computed):

Polarizability {
  frequency = [0.0, 0.0656]             # List of frequencies to compute
}
NMRShielding

For the NMR shielding we can specify a list of nuclei to compute (by default all nuclei are computed):

NMRShielding {
  nuclear_specific = false              # Use nuclear specific perturbation operator
  nucleus_k = [0,1,2]                   # List of nuclei to compute (-1 computes all)
}

The nuclear_specific keyword triggers response calculations using the nuclear magnetic moment operator instead of the external magnetic field. For small molecules this is not recommended since it requires a separate response calculation for each nucleus, but it might be beneficial for larger systems if you are interested only in a single shielding constant. Note that the components of the perturbing operator defines the row index in the output tensor, so nuclear_specific = true will result in a shielding tensor which is the transpose of the one obtained with nuclear_specific = false.

Plotter

The plot_density and plot_orbitals properties will use the Plotter section to specify the parameters of the plots (by default you will get a cube plot on the unit cube):

Plotter {
  path = plots                          # File path to store plots
  type = cube                           # Plot type (line, surf, cube)
  points = [20, 20, 20]                 # Number of grid points
  O = [-4.0,-4.0,-4.0]                  # Plot origin
  A = [8.0, 0.0, 0.0]                   # Boundary vector
  B = [0.0, 8.0, 0.0]                   # Boundary vector
  C = [0.0, 0.0, 8.0]                   # Boundary vector
}

The plotting grid is computed from the vectors O, A, B and C in the following way:

  1. line plot: along the vector A starting from O, using points[0] number of points.

  2. surf plot: on the area spanned by the vectors A and B starting from O, using points[0] and points[1] points in each direction.

  3. cube plot: on the volume spanned by the vectors A, B and C starting from O, using points[0], points[1] and points[2] points in each direction.

The above example will plot on a 20x20x20 grid in the volume [-4,4]^3, and the generated files (e.g. plots/phi_1_re.cube) can be viewed directly in a web browser by blob , like this benzene orbital:

_images/blob.png
SCF

This section specifies the parameters for the SCF optimization of the ground state wavefunction.

SCF solver

The optimization is controlled by the following keywords (defaults shown):

SCF {
  run = true                            # Run SCF solver
  kain = 5                              # Length of KAIN iterative subspace
  max_iter = 100                        # Maximum number of SCF iterations
  rotation = 0                          # Iterations between diagonalize/localize
  localize = false                      # Use canonical or localized  orbitals
  start_prec = -1.0                     # Dynamic precision, start value
  final_prec = -1.0                     # Dynamic precision, final value
  orbital_thrs = 10 * world_prec        # Convergence threshold orbitals
  energy_thrs = -1.0                    # Convergence threshold energy
}

If run = false no SCF is performed, and the properties are computed directly on the initial guess wavefunction.

The kain (Krylov Accelerated Inexact Newton) keyword gives the length of the iterative subspace accelerator (similar to DIIS). The rotation keyword gives the number of iterations between every orbital rotation, which can be either localization or diagonalization, depending on the localize keyword. The first two iterations in the SCF are always rotated, otherwise it is controlled by the rotation keyword (usually this is not very important, but sometimes it fails to converge if the orbitals drift too far away from the localized/canonical forms).

The dynamic precision keywords control how the numerical precision is changed throughout the optimization. One can choose to use a lower start_prec in the first iterations which is gradually increased to final_prec (both are equal to world_prec by default). Note that lower initial precision might affect the convergence rate.

In general, the important convergence threshold is that of the orbitals, and by default this is set one order of magnitude higher than the overall world_prec. For simple energy calculations, however, it is not necessary to converge the orbitals this much due to the quadratic convergence of the energy. This means that the number of correct digits in the total energy will be saturated well before this point, and one should rather use the energy_thrs keyword in this case in order to save a few iterations.

Note

It is usually not feasible to converge the orbitals beyond the overall precision world_prec due to numerical noise.

Initial guess

Several types of initial guess are available:

  • core and sad requires no further input and computes guesses from scratch.

  • chk and mw require input files from previous MW calculations.

  • cube requires input files computed from other sources.

The core and sad guesses are computed by diagonalizing the Hamiltonian matrix using a Core or Superposition of Atomic Densities (SAD) Hamiltonian, respectively. The matrix is constructed in a small AO basis with a given “zeta quality”, which should be added as a suffix in the keyword. Available AO bases are hydrogenic orbitals of single sz, double dz, triple tz and quadruple qz zeta size.

The SAD guess can also be computed in a small GTO basis (3-21G), using the guess type sad_gto. In this case another input keyword guess_screen becomes active for screening in the MW projection of the Gaussians. The screening value is given in standard deviations. Such screening will greatly improve the efficiency of the guess for large systems. It is, however, not recommended to reduce the value much below 10 StdDevs, as this will have the opposite effect on efficiency due to introduction of discontinuities at the cutoff point, which leads to higher grid refinement. sad_gto is usually the preferred guess both for accuracy and efficiency, and is thus the default choice.

The core and sad guesses are fully specified with the following keywords (defaults shown):

SCF {
  guess_prec = 1.0e-3                   # Numerical precision used in guess
  guess_type = sad_gto                  # Type of inital guess (chk, mw, cube, core_XX, sad_XX)
  guess_screen = 12.0                   # Number of StdDev before a GTO is set to zero (sad_gto)
}
Checkpointing

The program can dump checkpoint files at every iteration using the write_checkpoint keyword (defaults shown):

SCF {
  path_checkpoint = checkpoint          # Path to checkpoint files
  write_checkpoint = false              # Save checkpoint files every iteration
}

This allows the calculation to be restarted in case it crashes e.g. due to time limit or hardware failure on a cluster. This is done by setting guess_type = chk in the subsequent calculation:

SCF {
  guess_type = chk                      # Type of inital guess (chk, mw, cube, core_XX, sad_XX)
}

In this case the path_checkpoint must be the same as the previous calculation, as well as all other parameters in the calculation (Molecule and Basis in particular).

Write orbitals

The converged orbitals can be saved to file with the write_orbitals keyword (defaults shown):

SCF {
  path_orbitals = orbitals              # Path to orbital files
  write_orbitals = false                # Save converged orbitals to file
}

This will make individual files for each orbital under the path_orbitals directory. These orbitals can be used as starting point for subsequent calculations using the guess_type = mw initial guess:

SCF {
  guess_prec = 1.0e-3                   # Numerical precision used in guess
  guess_type = mw                       # Type of inital guess (chk, mw, cube, core_XX, sad_XX)
}

Here the orbitals will be re-projected onto the current MW basis with precision guess_prec. We also need to specify the paths to the input files:

Files {
  guess_phi_p = initial_guess/phi_p     # Path to paired MW orbitals
  guess_phi_a = initial_guess/phi_a     # Path to alpha MW orbitals
  guess_phi_b = initial_guess/phi_b     # Path to beta MW orbitals
}

Note that by default orbitals are written to the directory called orbitals but the mw guess reads from the directory initial_guess (this is to avoid overwriting the files by default). So, in order to use MW orbitals from a previous calculation, you must either change one of the paths (SCF.path_orbitals or Files.guess_phi_p etc), or manually copy the files between the default locations.

Note

The mw guess must not be confused with the chk guess, although they are similar. The chk guess will blindly read in the orbitals that are present, regardless of the current molecular structure and computational setup (if you run with a different computational domain or MW basis type/order the calculation will crash). The mw guess will re-project the old orbitals onto the new computational setup and populate the orbitals based on the new molecule (here the computation domain and MW basis do not have to match).

Response

This section specifies the parameters for the SCF optimization of the linear response functions. There might be several independent response calculations depending on the requested properties, e.g.

Polarizability {
  frequency = [0.0, 0.0656]             # List of frequencies to compute
}

will run one response for each frequency (each with three Cartesian components), while

Properties {
  magnetizability = true                # Compute magnetizability
  nmr_shielding = true                  # Compute NMR shieldings
}

will combine both properties into a single response calculation, since the perturbation operator is the same in both cases (unless you choose NMRShielding.nuclear_specific = true, in which case there will be a different response for each nucleus).

Response solver

The optimization is controlled by the following keywords (defaults shown):

Response {
  run = [true,true,true]                # Run response solver [x,y,z] direction
  kain = 5                              # Length of KAIN iterative subspace
  max_iter = 100                        # Maximum number of SCF iterations
  localize = false                      # Use canonical or localized  orbitals
  start_prec = -1.0                     # Dynamic precision, start value
  final_prec = -1.0                     # Dynamic precision, final value
  orbital_thrs = 10 * world_prec        # Convergence threshold orbitals
}

Each linear response calculation involves the three Cartesian components of the appropriate perturbation operator. If any of the components of run is false, no response is performed in that particular direction, and the properties are computed directly on the initial guess response functions (usually zero guess).

The kain (Krylov Accelerated Inexact Newton) keyword gives the length of the iterative subspace accelerator (similar to DIIS). The localize keyword relates to the unperturbed orbitals, and can be set independently of the SCF.localize keyword.

The dynamic precision keywords control how the numerical precision is changed throughout the optimization. One can choose to use a lower start_prec in the first iterations which is gradually increased to final_prec (both are equal to world_prec by default). Note that lower initial precision might affect the convergence rate.

For response calculations, the important convergence threshold is that of the orbitals, and by default this is set one order of magnitude higher than the overall world_prec.

Note

The quality of the response property depends on both the perturbed as well as the unperturbed orbitals, so they should be equally well converged.

Initial guess

The following initial guesses are available:

  • none start from a zero guess for the response functions.

  • chk and mw require input files from previous MW calculations.

By default, no initial guess is generated for the response functions, but the chk and mw guesses work similarly as for the SCF.

Checkpointing

The program can dump checkpoint files at every iteration using the write_checkpoint keyword (defaults shown):

Response {
  path_checkpoint = checkpoint          # Path to checkpoint files
  write_checkpoint = false              # Save checkpoint files every iteration
}

This allows the calculation to be restarted in case it crashes e.g. due to time limit or hardware failure on a cluster. This is done by setting guess_type = chk in the subsequent calculation:

Response {
  guess_type = chk                      # Type of inital guess (none, chk, mw)
}

In this case the path_checkpoint must be the same as the previous calculation, as well as all other parameters in the calculation (Molecule and Basis in particular).

Write orbitals

The converged response orbitals can be saved to file with the write_orbitals keyword (defaults shown):

Response {
  path_orbitals = orbitals              # Path to orbital files
  write_orbitals = false                # Save converged orbitals to file
}

This will make individual files for each orbital under the path_orbitals directory. These orbitals can be used as starting point for subsequent calculations using the guess_type = mw initial guess:

Response {
  guess_prec = 1.0e-3                   # Numerical precision used in guess
  guess_type = mw                       # Type of inital guess (chk, mw, cube, core_XX, sad_XX)
}

Here the orbitals will be re-projected onto the current MW basis with precision guess_prec. We also need to specify the paths to the input files (only X for static perturbations, X and Y for dynamic perturbations):

Files {
  guess_X_p = initial_guess/X_p         # Path to paired MW orbitals
  guess_X_a = initial_guess/X_a         # Path to alpha MW orbitals
  guess_X_b = initial_guess/X_b         # Path to beta MW orbitals
  guess_Y_p = initial_guess/Y_p         # Path to paired MW orbitals
  guess_Y_a = initial_guess/Y_a         # Path to alpha MW orbitals
  guess_Y_b = initial_guess/Y_b         # Path to beta MW orbitals
}

Note that by default orbitals are written to the directory called orbitals but the mw guess reads from the directory initial_guess (this is to avoid overwriting the files by default). So, in order to use MW orbitals from a previous calculation, you must either change one of the paths (Response.path_orbitals or Files.guess_X_p etc), or manually copy the files between the default locations.

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

omp_threads:

Force the number of OpenMP threads.

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. The PB and LPB variants add the Poisson-Boltzmann and Linearized Poisson-Boltzmann solvers, respectively.

Type str

Default none

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

nuclear_model:

Type of nucleus model. Point-like (numerical smoothing): HFYGB (default), parabola or minimal. Finite models (physical smoothing): Gaussian or Homogeneous sphere Finite models are derived from nuclear RMS radius, Visscher (1997)

Type str

Default point_like

Predicates
  • value.lower() in ['point_like', 'point_parabola', 'point_minimal', 'finite_gaussian', 'finite_sphere']

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

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 []

geometric_derivative:

Compute geometric derivative.

Type bool

Default user['GeometryOptimizer']['run']

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] != '/'

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] != '/'

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 user['GeometryOptimizer']['use_previous_guess']

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

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

Solvent:

Parameters for the Self-Consistent Reaction Field optimization.

Sections
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

formulation:

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

Type str

Default exponential

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

Sections
epsilon_out:

Parameters for the continuum solvent outside the cavity.

Keywords
nonequilibrium:

Whether to use the nonequilibrium formulation of response, i.e. use the dynamic permittivity for the calculation of the response reaction field. Defaults to false.

Type bool

Default False

static:

Static permittivity outside the cavity. This is characteristic of the solvent used.

Type float

Default 1.0

dynamic:

Dynamic permittivity outside the cavity. This is characteristic of the solvent used and relevant only in response calculations. Defaults to the same value as epsilon_static.

Type float

Default user['PCM']['Solvent']['Permittivity']['epsilon_out']['static']

DebyeHuckelScreening:

Parameters for the Debye-Huckel screening factor

Keywords
ion_strength:

Ionic strength of the electrolyte in mol/L. This represents the concentration of the ions in the bulk solvent.

Type float

Default 1.0

ion_radius:

Amount with which the vdw-radius of the atoms will be increased. The screening factor will have an area of effect that is often going to be larger than the vdw-cavity, but centered in the same atoms.

Type float

Default 0.0

ion_width:

Width of the transition between the solute and the ion accessible part.

Type float

Default 0.2

formulation:

formulation of the debye-huckel screening factor. Currently only the variable factor is implemented. variable: implement the screening functions as k = (1-C_ion)k_out

Type str

Default variable

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

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. This quantity has dimensions of length. The default value is in atomic units.

Type float

Default 0.2

GeometryOptimizer:

Includes parameters related to the internal geometry optimization using the SQNM (Stabilized Quasi-Newton Method) for noisy PES. Geometry optimizations require accurate forces. Consider setting world_prec to 1e-5 to 1e-7. Convergence issues can usually be solved by increasing the precision of the SCF calculation. If that does not work, try setting the initial step size manually.

Keywords
run:

Run optimizer. Otherwise single point energy/properties are computed.

Type bool

Default False

use_previous_guess:

Start each SCF from the converged orbitals from the previous geometry step. The guess_type will change to “mw” after the first iteration, and the intermediate orbitals will be stored in the “orbitals” directory. If toggled off, start over using the same initial guess method as in the first iteration.

Type bool

Default False

init_step_size:

Initial step size. For systems with hard bonds (e.g. C-C) use a value between and 1.0 and 2.5. If a system only contains weaker bonds a value up to 5.0 may speed up the convergence. Use a small negative number (should be between -0.1 and -0.5) for an automatic guess. The optimal step size is the inverse of the largest eigenvalue of the hessian matrix.

Type float

Default -0.5

minimal_step_size:

Minimal step size. It rarely makes sense to change it.

Type float

Default 0.01

max_history_length:

Maximum length of history list. Energies and forces from the previous n geometry optimization iterations are used to estimate the hessian matrix. Use a value between 2 and 20. A lower value makes the SQNM algorithm behave more like steepest descent and slows down convergence. But it can handle more noise in the energies and forces. It rarely makes sense to change it.

Type int

Default 10

subspace_tolerance:

Lower limit on linear dependencies of basis vectors in history listSubspace tolerance. Use a number between 1e-9 and 1e-1. A high subspace tolerance slows down convergence but improves numerical stability when the energies and forces contain a lot of noise. It rarely makes sense to change it.

Type float

Default 0.001

max_iter:

Maximum number of geometry optimization iterations.

Type int

Default 100

max_force_component:

The geometry optimization stopps when the absolute value of all force components is smaller than this keyword. A value between 1e-3 and 1e-4 is tight enough for most applications.

Type float

Default 0.005

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

boltzmann_constant:
Boltzmann constant in (unit: J K^-1). Affected code: Value of the Debye-Huckel screening parameter in the Poisson-Boltzmann equation.

Type float

Default 1.380649e-23

elementary_charge:
Elementary charge in (unit: C). Affected code: Value of the Debye-Huckel screening parameter in the Poisson-Boltzmann equation.

Type float

Default 1.602176634e-19

e0:
Permittivity of free space (unit: F m^-1). Affected code: Value of the Debye-Huckel screening parameter in the Poisson-Boltzmann equation.

Type float

Default 8.8541878128e-12

N_a:
Avogadro constant (unit: mol^-1). Affected code: Value of the Debye-Huckel screening parameter in the Poisson-Boltzmann equation.

Type float

Default 6.02214076e+23

meter2bohr:
conversion factor from meter to Bohr radius (unit: m^-1). Affected code: Value of the Debye-Huckel screening parameter in the Poisson-Boltzmann equation.

Type float

Default 18897261246.2577

Elements:

list of elements with data

Sections
h:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.2

covalent:

covalent value element

Type float

Default 0.32

Z:

z-value of element

Type int

Default 1

mass:

mass of element

Type float

Default 1.00794

symbol:

symbol of element

Type str

Default H

bpt:

bpt of element

Type float

Default 20.268

mpt:

mpt of element

Type float

Default 14.025

density:

density of element

Type float

Default 0.0899

volume:

volume of element

Type float

Default 14.4

name:

name of element

Type str

Default Hydrogen

debye:

debye of element

Type float

Default 110.0

a:

a of element

Type float

Default 3.75

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.731

conf:

conf of element

Type str

Default 1s1

r_rms:

r_rms of element

Type float

Default 2.6569547399e-05

he:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.4

covalent:

covalent value element

Type float

Default 0.93

Z:

z-value of element

Type int

Default 2

mass:

mass of element

Type float

Default 4.002602

symbol:

symbol of element

Type str

Default He

bpt:

bpt of element

Type float

Default 4.215

mpt:

mpt of element

Type float

Default 0.95

density:

density of element

Type float

Default 0.1787

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Helium

debye:

debye of element

Type float

Default -26.0

a:

a of element

Type float

Default 3.57

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.633

conf:

conf of element

Type str

Default 1s2

r_rms:

r_rms of element

Type float

Default 3.5849373401e-05

li:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.81

covalent:

covalent value element

Type float

Default 1.23

Z:

z-value of element

Type int

Default 3

mass:

mass of element

Type float

Default 6.941

symbol:

symbol of element

Type str

Default Li

bpt:

bpt of element

Type float

Default 1615.0

mpt:

mpt of element

Type float

Default 453.7

density:

density of element

Type float

Default 0.53

volume:

volume of element

Type float

Default 13.1

name:

name of element

Type str

Default Lithium

debye:

debye of element

Type float

Default 400.0

a:

a of element

Type float

Default 3.49

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default 1s2_2s1

r_rms:

r_rms of element

Type float

Default 4.0992133976e-05

be:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.53

covalent:

covalent value element

Type float

Default 0.9

Z:

z-value of element

Type int

Default 4

mass:

mass of element

Type float

Default 9.012182

symbol:

symbol of element

Type str

Default Be

bpt:

bpt of element

Type float

Default 2745.0

mpt:

mpt of element

Type float

Default 1560.0

density:

density of element

Type float

Default 1.85

volume:

volume of element

Type float

Default 5.0

name:

name of element

Type str

Default Beryllium

debye:

debye of element

Type float

Default 1000.0

a:

a of element

Type float

Default 2.29

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.567

conf:

conf of element

Type str

Default 1s2_2s2

r_rms:

r_rms of element

Type float

Default 4.3632829651e-05

b:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.92

covalent:

covalent value element

Type float

Default 0.82

Z:

z-value of element

Type int

Default 5

mass:

mass of element

Type float

Default 10.811

symbol:

symbol of element

Type str

Default B

bpt:

bpt of element

Type float

Default 4275.0

mpt:

mpt of element

Type float

Default 2300.0

density:

density of element

Type float

Default 2.34

volume:

volume of element

Type float

Default 4.6

name:

name of element

Type str

Default Boron

debye:

debye of element

Type float

Default 1250.0

a:

a of element

Type float

Default 8.73

crystal:

crystal of element

Type str

Default TET

cpera:

cpera of element

Type float

Default 0.576

conf:

conf of element

Type str

Default 1s2_2s2_2p1

r_rms:

r_rms of element

Type float

Default 4.5906118608e-05

c:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.7

covalent:

covalent value element

Type float

Default 0.77

Z:

z-value of element

Type int

Default 6

mass:

mass of element

Type float

Default 12.011

symbol:

symbol of element

Type str

Default C

bpt:

bpt of element

Type float

Default 4470.0

mpt:

mpt of element

Type float

Default 4100.0

density:

density of element

Type float

Default 2.62

volume:

volume of element

Type float

Default 4.58

name:

name of element

Type str

Default Carbon

debye:

debye of element

Type float

Default 1860.0

a:

a of element

Type float

Default 3.57

crystal:

crystal of element

Type str

Default DIA

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default 1s2_2s2_2p2

r_rms:

r_rms of element

Type float

Default 4.6940079496e-05

n:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.55

covalent:

covalent value element

Type float

Default 0.75

Z:

z-value of element

Type int

Default 7

mass:

mass of element

Type float

Default 14.00674

symbol:

symbol of element

Type str

Default N

bpt:

bpt of element

Type float

Default 77.35

mpt:

mpt of element

Type float

Default 63.14

density:

density of element

Type float

Default 1.251

volume:

volume of element

Type float

Default 17.3

name:

name of element

Type str

Default Nitrogen

debye:

debye of element

Type float

Default -79.0

a:

a of element

Type float

Default 4.039

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.651

conf:

conf of element

Type str

Default 1s2_2s2_2p3

r_rms:

r_rms of element

Type float

Default 4.8847128967e-05

o:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.52

covalent:

covalent value element

Type float

Default 0.73

Z:

z-value of element

Type int

Default 8

mass:

mass of element

Type float

Default 15.9994

symbol:

symbol of element

Type str

Default O

bpt:

bpt of element

Type float

Default 90.18

mpt:

mpt of element

Type float

Default 50.35

density:

density of element

Type float

Default 1.429

volume:

volume of element

Type float

Default 14.0

name:

name of element

Type str

Default Oxygen

debye:

debye of element

Type float

Default -46.0

a:

a of element

Type float

Default 6.83

crystal:

crystal of element

Type str

Default CUB

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default 1s2_2s2_2p4

r_rms:

r_rms of element

Type float

Default 5.0580178957e-05

f:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.47

covalent:

covalent value element

Type float

Default 0.72

Z:

z-value of element

Type int

Default 9

mass:

mass of element

Type float

Default 18.9984032

symbol:

symbol of element

Type str

Default F

bpt:

bpt of element

Type float

Default 84.95

mpt:

mpt of element

Type float

Default 53.48

density:

density of element

Type float

Default 1.696

volume:

volume of element

Type float

Default 17.1

name:

name of element

Type str

Default Fluorine

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default MCL

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default 1s2_2s2_2p5

r_rms:

r_rms of element

Type float

Default 5.2927138943e-05

ne:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.54

covalent:

covalent value element

Type float

Default 0.71

Z:

z-value of element

Type int

Default 10

mass:

mass of element

Type float

Default 20.1797

symbol:

symbol of element

Type str

Default Ne

bpt:

bpt of element

Type float

Default 27.096

mpt:

mpt of element

Type float

Default 24.553

density:

density of element

Type float

Default 0.901

volume:

volume of element

Type float

Default 16.7

name:

name of element

Type str

Default Neon

debye:

debye of element

Type float

Default 63.0

a:

a of element

Type float

Default 4.43

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default 1s2_2s2_2p6

r_rms:

r_rms of element

Type float

Default 5.3654104231e-05

na:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.27

covalent:

covalent value element

Type float

Default 1.54

Z:

z-value of element

Type int

Default 11

mass:

mass of element

Type float

Default 22.989768

symbol:

symbol of element

Type str

Default Na

bpt:

bpt of element

Type float

Default 1156.0

mpt:

mpt of element

Type float

Default 371.0

density:

density of element

Type float

Default 0.97

volume:

volume of element

Type float

Default 23.7

name:

name of element

Type str

Default Sodium

debye:

debye of element

Type float

Default 150.0

a:

a of element

Type float

Default 4.23

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ne]3s1

r_rms:

r_rms of element

Type float

Default 5.5699159416e-05

mg:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.73

covalent:

covalent value element

Type float

Default 1.36

Z:

z-value of element

Type int

Default 12

mass:

mass of element

Type float

Default 24.305

symbol:

symbol of element

Type str

Default Mg

bpt:

bpt of element

Type float

Default 1363.0

mpt:

mpt of element

Type float

Default 922.0

density:

density of element

Type float

Default 1.74

volume:

volume of element

Type float

Default 13.97

name:

name of element

Type str

Default Magnesium

debye:

debye of element

Type float

Default 318.0

a:

a of element

Type float

Default 3.21

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.624

conf:

conf of element

Type str

Default [Ne]3s2

r_rms:

r_rms of element

Type float

Default 5.6341070732e-05

al:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.84

covalent:

covalent value element

Type float

Default 1.18

Z:

z-value of element

Type int

Default 13

mass:

mass of element

Type float

Default 26.981539

symbol:

symbol of element

Type str

Default Al

bpt:

bpt of element

Type float

Default 2793.0

mpt:

mpt of element

Type float

Default 933.25

density:

density of element

Type float

Default 2.7

volume:

volume of element

Type float

Default 10.0

name:

name of element

Type str

Default Aluminum

debye:

debye of element

Type float

Default 394.0

a:

a of element

Type float

Default 4.05

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ne]3s2_3p1

r_rms:

r_rms of element

Type float

Default 5.8165765928e-05

si:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.1

covalent:

covalent value element

Type float

Default 1.11

Z:

z-value of element

Type int

Default 14

mass:

mass of element

Type float

Default 28.0855

symbol:

symbol of element

Type str

Default Si

bpt:

bpt of element

Type float

Default 3540.0

mpt:

mpt of element

Type float

Default 1685.0

density:

density of element

Type float

Default 2.33

volume:

volume of element

Type float

Default 12.1

name:

name of element

Type str

Default Silicon

debye:

debye of element

Type float

Default 625.0

a:

a of element

Type float

Default 5.43

crystal:

crystal of element

Type str

Default DIA

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ne]3s2_3p2

r_rms:

r_rms of element

Type float

Default 5.8743802504e-05

p:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.8

covalent:

covalent value element

Type float

Default 1.06

Z:

z-value of element

Type int

Default 15

mass:

mass of element

Type float

Default 30.97362

symbol:

symbol of element

Type str

Default P

bpt:

bpt of element

Type float

Default 550.0

mpt:

mpt of element

Type float

Default 317.3

density:

density of element

Type float

Default 1.82

volume:

volume of element

Type float

Default 17.0

name:

name of element

Type str

Default Phosphorus

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 7.17

crystal:

crystal of element

Type str

Default CUB

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ne]3s2_3p3

r_rms:

r_rms of element

Type float

Default 6.0399312923e-05

s:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.8

covalent:

covalent value element

Type float

Default 1.02

Z:

z-value of element

Type int

Default 16

mass:

mass of element

Type float

Default 32.066

symbol:

symbol of element

Type str

Default S

bpt:

bpt of element

Type float

Default 717.75

mpt:

mpt of element

Type float

Default 388.36

density:

density of element

Type float

Default 2.07

volume:

volume of element

Type float

Default 15.5

name:

name of element

Type str

Default Sulfur

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 10.47

crystal:

crystal of element

Type str

Default ORC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ne]3s2_3p4

r_rms:

r_rms of element

Type float

Default 6.0927308666e-05

cl:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.75

covalent:

covalent value element

Type float

Default 0.99

Z:

z-value of element

Type int

Default 17

mass:

mass of element

Type float

Default 35.4527

symbol:

symbol of element

Type str

Default Cl

bpt:

bpt of element

Type float

Default 239.1

mpt:

mpt of element

Type float

Default 172.16

density:

density of element

Type float

Default 3.17

volume:

volume of element

Type float

Default 22.7

name:

name of element

Type str

Default Chlorine

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 6.24

crystal:

crystal of element

Type str

Default ORC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ne]3s2_3p5

r_rms:

r_rms of element

Type float

Default 6.2448101115e-05

ar:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.88

covalent:

covalent value element

Type float

Default 0.98

Z:

z-value of element

Type int

Default 18

mass:

mass of element

Type float

Default 39.948

symbol:

symbol of element

Type str

Default Ar

bpt:

bpt of element

Type float

Default 87.3

mpt:

mpt of element

Type float

Default 83.81

density:

density of element

Type float

Default 1.784

volume:

volume of element

Type float

Default 28.5

name:

name of element

Type str

Default Argon

debye:

debye of element

Type float

Default 85.0

a:

a of element

Type float

Default 5.26

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ne]3s2_3p6

r_rms:

r_rms of element

Type float

Default 6.4800211825e-05

k:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.75

covalent:

covalent value element

Type float

Default 2.03

Z:

z-value of element

Type int

Default 19

mass:

mass of element

Type float

Default 39.0983

symbol:

symbol of element

Type str

Default K

bpt:

bpt of element

Type float

Default 1032.0

mpt:

mpt of element

Type float

Default 336.35

density:

density of element

Type float

Default 0.86

volume:

volume of element

Type float

Default 45.46

name:

name of element

Type str

Default Potassium

debye:

debye of element

Type float

Default 100.0

a:

a of element

Type float

Default 5.23

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]4s1

r_rms:

r_rms of element

Type float

Default 6.4346167051e-05

ca:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.31

covalent:

covalent value element

Type float

Default 1.91

Z:

z-value of element

Type int

Default 20

mass:

mass of element

Type float

Default 40.078

symbol:

symbol of element

Type str

Default Ca

bpt:

bpt of element

Type float

Default 1757.0

mpt:

mpt of element

Type float

Default 1112.0

density:

density of element

Type float

Default 1.55

volume:

volume of element

Type float

Default 29.9

name:

name of element

Type str

Default Calcium

debye:

debye of element

Type float

Default 230.0

a:

a of element

Type float

Default 5.58

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]4s2

r_rms:

r_rms of element

Type float

Default 6.4800211825e-05

sc:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.62

Z:

z-value of element

Type int

Default 21

mass:

mass of element

Type float

Default 44.95591

symbol:

symbol of element

Type str

Default Sc

bpt:

bpt of element

Type float

Default 3104.0

mpt:

mpt of element

Type float

Default 1812.0

density:

density of element

Type float

Default 3.0

volume:

volume of element

Type float

Default 15.0

name:

name of element

Type str

Default Scandium

debye:

debye of element

Type float

Default -359.0

a:

a of element

Type float

Default 3.31

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.594

conf:

conf of element

Type str

Default [Ar]3d1_4s2

r_rms:

r_rms of element

Type float

Default 6.6963627201e-05

ti:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.45

Z:

z-value of element

Type int

Default 22

mass:

mass of element

Type float

Default 47.88

symbol:

symbol of element

Type str

Default Ti

bpt:

bpt of element

Type float

Default 3562.0

mpt:

mpt of element

Type float

Default 1943.0

density:

density of element

Type float

Default 4.5

volume:

volume of element

Type float

Default 10.64

name:

name of element

Type str

Default Titanium

debye:

debye of element

Type float

Default 380.0

a:

a of element

Type float

Default 2.95

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.588

conf:

conf of element

Type str

Default [Ar]3d2_4s2

r_rms:

r_rms of element

Type float

Default 6.818557748e-05

v:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.34

Z:

z-value of element

Type int

Default 23

mass:

mass of element

Type float

Default 50.9415

symbol:

symbol of element

Type str

Default V

bpt:

bpt of element

Type float

Default 3682.0

mpt:

mpt of element

Type float

Default 2175.0

density:

density of element

Type float

Default 5.8

volume:

volume of element

Type float

Default 8.78

name:

name of element

Type str

Default Vanadium

debye:

debye of element

Type float

Default 390.0

a:

a of element

Type float

Default 3.02

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]3d3_4s2

r_rms:

r_rms of element

Type float

Default 6.935761683e-05

cr:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.18

Z:

z-value of element

Type int

Default 24

mass:

mass of element

Type float

Default 51.9961

symbol:

symbol of element

Type str

Default Cr

bpt:

bpt of element

Type float

Default 2945.0

mpt:

mpt of element

Type float

Default 2130.0

density:

density of element

Type float

Default 7.19

volume:

volume of element

Type float

Default 7.23

name:

name of element

Type str

Default Chromium

debye:

debye of element

Type float

Default 460.0

a:

a of element

Type float

Default 2.88

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]3d5_4s1

r_rms:

r_rms of element

Type float

Default 6.9738057221e-05

mn:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.17

Z:

z-value of element

Type int

Default 25

mass:

mass of element

Type float

Default 54.93085

symbol:

symbol of element

Type str

Default Mn

bpt:

bpt of element

Type float

Default 2335.0

mpt:

mpt of element

Type float

Default 1517.0

density:

density of element

Type float

Default 7.43

volume:

volume of element

Type float

Default 1.39

name:

name of element

Type str

Default Manganese

debye:

debye of element

Type float

Default 400.0

a:

a of element

Type float

Default 8.89

crystal:

crystal of element

Type str

Default CUB

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]3d5_4s2

r_rms:

r_rms of element

Type float

Default 7.0850896638e-05

fe:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.17

Z:

z-value of element

Type int

Default 26

mass:

mass of element

Type float

Default 55.847

symbol:

symbol of element

Type str

Default Fe

bpt:

bpt of element

Type float

Default 3135.0

mpt:

mpt of element

Type float

Default 1809.0

density:

density of element

Type float

Default 7.86

volume:

volume of element

Type float

Default 7.1

name:

name of element

Type str

Default Iron

debye:

debye of element

Type float

Default 460.0

a:

a of element

Type float

Default 2.87

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]3d6_4s2

r_rms:

r_rms of element

Type float

Default 7.1212829817e-05

co:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.16

Z:

z-value of element

Type int

Default 27

mass:

mass of element

Type float

Default 58.9332

symbol:

symbol of element

Type str

Default Co

bpt:

bpt of element

Type float

Default 3201.0

mpt:

mpt of element

Type float

Default 1768.0

density:

density of element

Type float

Default 8.9

volume:

volume of element

Type float

Default 6.7

name:

name of element

Type str

Default Cobalt

debye:

debye of element

Type float

Default 385.0

a:

a of element

Type float

Default 2.51

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]3d7_4s2

r_rms:

r_rms of element

Type float

Default 7.2273420879e-05

ni:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.15

Z:

z-value of element

Type int

Default 28

mass:

mass of element

Type float

Default 58.69

symbol:

symbol of element

Type str

Default Ni

bpt:

bpt of element

Type float

Default 3187.0

mpt:

mpt of element

Type float

Default 1726.0

density:

density of element

Type float

Default 8.9

volume:

volume of element

Type float

Default 6.59

name:

name of element

Type str

Default Nickel

debye:

debye of element

Type float

Default 375.0

a:

a of element

Type float

Default 3.52

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]3d8_4s2

r_rms:

r_rms of element

Type float

Default 7.1923970253e-05

cu:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.17

Z:

z-value of element

Type int

Default 29

mass:

mass of element

Type float

Default 63.546

symbol:

symbol of element

Type str

Default Cu

bpt:

bpt of element

Type float

Default 2836.0

mpt:

mpt of element

Type float

Default 1357.6

density:

density of element

Type float

Default 8.96

volume:

volume of element

Type float

Default 7.1

name:

name of element

Type str

Default Copper

debye:

debye of element

Type float

Default 315.0

a:

a of element

Type float

Default 3.61

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]3d10_4s1

r_rms:

r_rms of element

Type float

Default 7.3633018675e-05

zn:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.25

Z:

z-value of element

Type int

Default 30

mass:

mass of element

Type float

Default 65.39

symbol:

symbol of element

Type str

Default Zn

bpt:

bpt of element

Type float

Default 1180.0

mpt:

mpt of element

Type float

Default 692.73

density:

density of element

Type float

Default 7.14

volume:

volume of element

Type float

Default 9.2

name:

name of element

Type str

Default Zinc

debye:

debye of element

Type float

Default 234.0

a:

a of element

Type float

Default 2.66

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]3d10_4s2

r_rms:

r_rms of element

Type float

Default 7.3963875193e-05

ga:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.87

covalent:

covalent value element

Type float

Default 1.26

Z:

z-value of element

Type int

Default 31

mass:

mass of element

Type float

Default 69.723

symbol:

symbol of element

Type str

Default Ga

bpt:

bpt of element

Type float

Default 2478.0

mpt:

mpt of element

Type float

Default 302.9

density:

density of element

Type float

Default 5.91

volume:

volume of element

Type float

Default 11.8

name:

name of element

Type str

Default Gallium

debye:

debye of element

Type float

Default 240.0

a:

a of element

Type float

Default 4.51

crystal:

crystal of element

Type str

Default ORC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]3d10_4s2_4p1

r_rms:

r_rms of element

Type float

Default 7.5568424848e-05

ge:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.11

covalent:

covalent value element

Type float

Default 1.22

Z:

z-value of element

Type int

Default 32

mass:

mass of element

Type float

Default 72.61

symbol:

symbol of element

Type str

Default Ge

bpt:

bpt of element

Type float

Default 3107.0

mpt:

mpt of element

Type float

Default 1210.4

density:

density of element

Type float

Default 5.32

volume:

volume of element

Type float

Default 13.6

name:

name of element

Type str

Default Germanium

debye:

debye of element

Type float

Default 360.0

a:

a of element

Type float

Default 5.66

crystal:

crystal of element

Type str

Default DIA

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]3d10_4s2_4p2

r_rms:

r_rms of element

Type float

Default 7.7097216161e-05

as:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.85

covalent:

covalent value element

Type float

Default 1.2

Z:

z-value of element

Type int

Default 33

mass:

mass of element

Type float

Default 74.92159

symbol:

symbol of element

Type str

Default As

bpt:

bpt of element

Type float

Default 876.0

mpt:

mpt of element

Type float

Default 1081.0

density:

density of element

Type float

Default 5.72

volume:

volume of element

Type float

Default 13.1

name:

name of element

Type str

Default Arsenic

debye:

debye of element

Type float

Default 285.0

a:

a of element

Type float

Default 4.13

crystal:

crystal of element

Type str

Default RHL

cpera:

cpera of element

Type float

Default 54.16

conf:

conf of element

Type str

Default [Ar]3d10_4s2_4p3

r_rms:

r_rms of element

Type float

Default 7.7394645153e-05

se:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.9

covalent:

covalent value element

Type float

Default 1.16

Z:

z-value of element

Type int

Default 34

mass:

mass of element

Type float

Default 78.96

symbol:

symbol of element

Type str

Default Se

bpt:

bpt of element

Type float

Default 958.0

mpt:

mpt of element

Type float

Default 494.0

density:

density of element

Type float

Default 4.8

volume:

volume of element

Type float

Default 16.45

name:

name of element

Type str

Default Selenium

debye:

debye of element

Type float

Default -150.0

a:

a of element

Type float

Default 4.36

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]3d10_4s2_4p4

r_rms:

r_rms of element

Type float

Default 7.8843427408e-05

br:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.83

covalent:

covalent value element

Type float

Default 1.14

Z:

z-value of element

Type int

Default 35

mass:

mass of element

Type float

Default 79.904

symbol:

symbol of element

Type str

Default Br

bpt:

bpt of element

Type float

Default 332.25

mpt:

mpt of element

Type float

Default 265.9

density:

density of element

Type float

Default 3.12

volume:

volume of element

Type float

Default 23.5

name:

name of element

Type str

Default Bromine

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 6.67

crystal:

crystal of element

Type str

Default ORC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]3d10_4s2_4p5

r_rms:

r_rms of element

Type float

Default 7.8558604038e-05

kr:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.02

covalent:

covalent value element

Type float

Default 1.12

Z:

z-value of element

Type int

Default 36

mass:

mass of element

Type float

Default 83.8

symbol:

symbol of element

Type str

Default Kr

bpt:

bpt of element

Type float

Default 119.8

mpt:

mpt of element

Type float

Default 115.78

density:

density of element

Type float

Default 3.74

volume:

volume of element

Type float

Default 38.9

name:

name of element

Type str

Default Krypton

debye:

debye of element

Type float

Default -73.0

a:

a of element

Type float

Default 5.72

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Ar]3d10_4s2_4p6

r_rms:

r_rms of element

Type float

Default 7.9959560033e-05

rb:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 3.03

covalent:

covalent value element

Type float

Default 2.16

Z:

z-value of element

Type int

Default 37

mass:

mass of element

Type float

Default 85.4678

symbol:

symbol of element

Type str

Default Rb

bpt:

bpt of element

Type float

Default 961.0

mpt:

mpt of element

Type float

Default 312.64

density:

density of element

Type float

Default 1.53

volume:

volume of element

Type float

Default 55.9

name:

name of element

Type str

Default Rubidium

debye:

debye of element

Type float

Default -56.0

a:

a of element

Type float

Default 5.59

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Kr]5s1

r_rms:

r_rms of element

Type float

Default 8.0233033713e-05

sr:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.49

covalent:

covalent value element

Type float

Default 1.91

Z:

z-value of element

Type int

Default 38

mass:

mass of element

Type float

Default 87.62

symbol:

symbol of element

Type str

Default Sr

bpt:

bpt of element

Type float

Default 1650.0

mpt:

mpt of element

Type float

Default 1041.0

density:

density of element

Type float

Default 2.6

volume:

volume of element

Type float

Default 33.7

name:

name of element

Type str

Default Strontium

debye:

debye of element

Type float

Default -147.0

a:

a of element

Type float

Default 6.08

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Kr]5s2

r_rms:

r_rms of element

Type float

Default 8.1040799081e-05

y:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.62

Z:

z-value of element

Type int

Default 39

mass:

mass of element

Type float

Default 88.90585

symbol:

symbol of element

Type str

Default Y

bpt:

bpt of element

Type float

Default 3611.0

mpt:

mpt of element

Type float

Default 1799.0

density:

density of element

Type float

Default 4.5

volume:

volume of element

Type float

Default 19.8

name:

name of element

Type str

Default Yttrium

debye:

debye of element

Type float

Default -256.0

a:

a of element

Type float

Default 3.65

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.571

conf:

conf of element

Type str

Default [Kr]4d1_5s2

r_rms:

r_rms of element

Type float

Default 8.1305968993e-05

zr:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.45

Z:

z-value of element

Type int

Default 40

mass:

mass of element

Type float

Default 91.224

symbol:

symbol of element

Type str

Default Zr

bpt:

bpt of element

Type float

Default 4682.0

mpt:

mpt of element

Type float

Default 2125.0

density:

density of element

Type float

Default 6.49

volume:

volume of element

Type float

Default 14.1

name:

name of element

Type str

Default Zirconium

debye:

debye of element

Type float

Default 250.0

a:

a of element

Type float

Default 3.23

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.593

conf:

conf of element

Type str

Default [Kr]4d2_5s2

r_rms:

r_rms of element

Type float

Default 8.156915998e-05

nb:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.34

Z:

z-value of element

Type int

Default 41

mass:

mass of element

Type float

Default 92.90638

symbol:

symbol of element

Type str

Default Nb

bpt:

bpt of element

Type float

Default 5017.0

mpt:

mpt of element

Type float

Default 2740.0

density:

density of element

Type float

Default 8.55

volume:

volume of element

Type float

Default 10.87

name:

name of element

Type str

Default Niobium

debye:

debye of element

Type float

Default 275.0

a:

a of element

Type float

Default 3.3

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Kr]4d4_5s1

r_rms:

r_rms of element

Type float

Default 8.2347219223e-05

mo:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.3

Z:

z-value of element

Type int

Default 42

mass:

mass of element

Type float

Default 95.94

symbol:

symbol of element

Type str

Default Mo

bpt:

bpt of element

Type float

Default 4912.0

mpt:

mpt of element

Type float

Default 2890.0

density:

density of element

Type float

Default 10.2

volume:

volume of element

Type float

Default 9.4

name:

name of element

Type str

Default Molybdenum

debye:

debye of element

Type float

Default 380.0

a:

a of element

Type float

Default 3.15

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Kr]4d5_5s1

r_rms:

r_rms of element

Type float

Default 8.3607614434e-05

tc:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.27

Z:

z-value of element

Type int

Default 43

mass:

mass of element

Type float

Default -98.0

symbol:

symbol of element

Type str

Default Tc

bpt:

bpt of element

Type float

Default 4538.0

mpt:

mpt of element

Type float

Default 2473.0

density:

density of element

Type float

Default 11.5

volume:

volume of element

Type float

Default 8.5

name:

name of element

Type str

Default Technetium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 2.74

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.604

conf:

conf of element

Type str

Default [Kr]4d5_5s2

r_rms:

r_rms of element

Type float

Default 8.3607614434e-05

ru:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.25

Z:

z-value of element

Type int

Default 44

mass:

mass of element

Type float

Default 101.07

symbol:

symbol of element

Type str

Default Ru

bpt:

bpt of element

Type float

Default 4423.0

mpt:

mpt of element

Type float

Default 2523.0

density:

density of element

Type float

Default 12.2

volume:

volume of element

Type float

Default 8.3

name:

name of element

Type str

Default Ruthenium

debye:

debye of element

Type float

Default -382.0

a:

a of element

Type float

Default 2.7

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.584

conf:

conf of element

Type str

Default [Kr]4d7_5s1

r_rms:

r_rms of element

Type float

Default 8.4585397905e-05

rh:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.25

Z:

z-value of element

Type int

Default 45

mass:

mass of element

Type float

Default 102.9055

symbol:

symbol of element

Type str

Default Rh

bpt:

bpt of element

Type float

Default 3970.0

mpt:

mpt of element

Type float

Default 2236.0

density:

density of element

Type float

Default 12.4

volume:

volume of element

Type float

Default 8.3

name:

name of element

Type str

Default Rhodium

debye:

debye of element

Type float

Default -350.0

a:

a of element

Type float

Default 3.8

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Kr]4d8_5s1

r_rms:

r_rms of element

Type float

Default 8.4825835954e-05

pd:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.28

Z:

z-value of element

Type int

Default 46

mass:

mass of element

Type float

Default 106.42

symbol:

symbol of element

Type str

Default Pd

bpt:

bpt of element

Type float

Default 3237.0

mpt:

mpt of element

Type float

Default 1825.0

density:

density of element

Type float

Default 12.0

volume:

volume of element

Type float

Default 8.9

name:

name of element

Type str

Default Palladium

debye:

debye of element

Type float

Default 275.0

a:

a of element

Type float

Default 3.89

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Kr]4d10_5s0

r_rms:

r_rms of element

Type float

Default 8.5537941156e-05

ag:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.34

Z:

z-value of element

Type int

Default 47

mass:

mass of element

Type float

Default 107.8682

symbol:

symbol of element

Type str

Default Ag

bpt:

bpt of element

Type float

Default 2436.0

mpt:

mpt of element

Type float

Default 1234.0

density:

density of element

Type float

Default 10.5

volume:

volume of element

Type float

Default 10.3

name:

name of element

Type str

Default Silver

debye:

debye of element

Type float

Default 215.0

a:

a of element

Type float

Default 4.09

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Kr]4d10_5s1

r_rms:

r_rms of element

Type float

Default 8.5772320442e-05

cd:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.48

Z:

z-value of element

Type int

Default 48

mass:

mass of element

Type float

Default 112.411

symbol:

symbol of element

Type str

Default Cd

bpt:

bpt of element

Type float

Default 1040.0

mpt:

mpt of element

Type float

Default 594.18

density:

density of element

Type float

Default 8.65

volume:

volume of element

Type float

Default 13.1

name:

name of element

Type str

Default Cadmium

debye:

debye of element

Type float

Default 120.0

a:

a of element

Type float

Default 2.98

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.886

conf:

conf of element

Type str

Default [Kr]4d10_5s2

r_rms:

r_rms of element

Type float

Default 8.7373430179e-05

in:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.93

covalent:

covalent value element

Type float

Default 1.44

Z:

z-value of element

Type int

Default 49

mass:

mass of element

Type float

Default 114.82

symbol:

symbol of element

Type str

Default In

bpt:

bpt of element

Type float

Default 2346.0

mpt:

mpt of element

Type float

Default 429.76

density:

density of element

Type float

Default 7.31

volume:

volume of element

Type float

Default 15.7

name:

name of element

Type str

Default Indium

debye:

debye of element

Type float

Default 129.0

a:

a of element

Type float

Default 4.59

crystal:

crystal of element

Type str

Default TET

cpera:

cpera of element

Type float

Default 1.076

conf:

conf of element

Type str

Default [Kr]4d10_5s2_5p1

r_rms:

r_rms of element

Type float

Default 8.7596760865e-05

sn:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.17

covalent:

covalent value element

Type float

Default 1.41

Z:

z-value of element

Type int

Default 50

mass:

mass of element

Type float

Default 118.71

symbol:

symbol of element

Type str

Default Sn

bpt:

bpt of element

Type float

Default 2876.0

mpt:

mpt of element

Type float

Default 505.06

density:

density of element

Type float

Default 7.3

volume:

volume of element

Type float

Default 16.3

name:

name of element

Type str

Default Tin

debye:

debye of element

Type float

Default 170.0

a:

a of element

Type float

Default 5.82

crystal:

crystal of element

Type str

Default TET

cpera:

cpera of element

Type float

Default 0.546

conf:

conf of element

Type str

Default [Kr]4d10_5s2_5p2

r_rms:

r_rms of element

Type float

Default 8.8694413774e-05

sb:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.06

covalent:

covalent value element

Type float

Default 1.4

Z:

z-value of element

Type int

Default 51

mass:

mass of element

Type float

Default 121.75

symbol:

symbol of element

Type str

Default Sb

bpt:

bpt of element

Type float

Default 1860.0

mpt:

mpt of element

Type float

Default 904.0

density:

density of element

Type float

Default 6.68

volume:

volume of element

Type float

Default 18.23

name:

name of element

Type str

Default Antimony

debye:

debye of element

Type float

Default 200.0

a:

a of element

Type float

Default 4.51

crystal:

crystal of element

Type str

Default RHL

cpera:

cpera of element

Type float

Default 57.1

conf:

conf of element

Type str

Default [Kr]4d10_5s2_5p3

r_rms:

r_rms of element

Type float

Default 8.8910267995e-05

te:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.06

covalent:

covalent value element

Type float

Default 1.36

Z:

z-value of element

Type int

Default 52

mass:

mass of element

Type float

Default 127.6

symbol:

symbol of element

Type str

Default Te

bpt:

bpt of element

Type float

Default 1261.0

mpt:

mpt of element

Type float

Default 722.65

density:

density of element

Type float

Default 6.24

volume:

volume of element

Type float

Default 20.5

name:

name of element

Type str

Default Tellurium

debye:

debye of element

Type float

Default -139.0

a:

a of element

Type float

Default 4.45

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.33

conf:

conf of element

Type str

Default [Kr]4d10_5s2_5p4

r_rms:

r_rms of element

Type float

Default 9.0801452955e-05

i:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.98

covalent:

covalent value element

Type float

Default 1.33

Z:

z-value of element

Type int

Default 53

mass:

mass of element

Type float

Default 126.90447

symbol:

symbol of element

Type str

Default I

bpt:

bpt of element

Type float

Default 458.4

mpt:

mpt of element

Type float

Default 386.7

density:

density of element

Type float

Default 4.92

volume:

volume of element

Type float

Default 25.74

name:

name of element

Type str

Default Iodine

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 7.27

crystal:

crystal of element

Type str

Default ORC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Kr]4d10_5s2_5p5

r_rms:

r_rms of element

Type float

Default 9.018104029e-05

xe:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.16

covalent:

covalent value element

Type float

Default 1.31

Z:

z-value of element

Type int

Default 54

mass:

mass of element

Type float

Default 131.29

symbol:

symbol of element

Type str

Default Xe

bpt:

bpt of element

Type float

Default 165.03

mpt:

mpt of element

Type float

Default 161.36

density:

density of element

Type float

Default 5.89

volume:

volume of element

Type float

Default 37.3

name:

name of element

Type str

Default Xenon

debye:

debye of element

Type float

Default -55.0

a:

a of element

Type float

Default 6.2

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Kr]4d10_5s2_5p6

r_rms:

r_rms of element

Type float

Default 9.1209776425e-05

cs:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 3.43

covalent:

covalent value element

Type float

Default 2.35

Z:

z-value of element

Type int

Default 55

mass:

mass of element

Type float

Default 132.90543

symbol:

symbol of element

Type str

Default Cs

bpt:

bpt of element

Type float

Default 944.0

mpt:

mpt of element

Type float

Default 301.55

density:

density of element

Type float

Default 1.87

volume:

volume of element

Type float

Default 71.07

name:

name of element

Type str

Default Cesium

debye:

debye of element

Type float

Default -40.0

a:

a of element

Type float

Default 6.05

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]6s1

r_rms:

r_rms of element

Type float

Default 9.1412392742e-05

ba:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.68

covalent:

covalent value element

Type float

Default 1.98

Z:

z-value of element

Type int

Default 56

mass:

mass of element

Type float

Default 137.327

symbol:

symbol of element

Type str

Default Ba

bpt:

bpt of element

Type float

Default 2171.0

mpt:

mpt of element

Type float

Default 1002.0

density:

density of element

Type float

Default 3.5

volume:

volume of element

Type float

Default 39.24

name:

name of element

Type str

Default Barium

debye:

debye of element

Type float

Default -110.0

a:

a of element

Type float

Default 5.02

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]6s2

r_rms:

r_rms of element

Type float

Default 9.2410525664e-05

la:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.69

Z:

z-value of element

Type int

Default 57

mass:

mass of element

Type float

Default 138.9055

symbol:

symbol of element

Type str

Default La

bpt:

bpt of element

Type float

Default 3730.0

mpt:

mpt of element

Type float

Default 1193.0

density:

density of element

Type float

Default 6.7

volume:

volume of element

Type float

Default 20.73

name:

name of element

Type str

Default Lanthanum

debye:

debye of element

Type float

Default 132.0

a:

a of element

Type float

Default 3.75

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.619

conf:

conf of element

Type str

Default [Xe]5d1_6s2

r_rms:

r_rms of element

Type float

Default 9.2607247118e-05

hf:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.44

Z:

z-value of element

Type int

Default 72

mass:

mass of element

Type float

Default 178.49

symbol:

symbol of element

Type str

Default Hf

bpt:

bpt of element

Type float

Default 4876.0

mpt:

mpt of element

Type float

Default 2500.0

density:

density of element

Type float

Default 13.1

volume:

volume of element

Type float

Default 13.6

name:

name of element

Type str

Default Hafnium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 3.2

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.582

conf:

conf of element

Type str

Default [Xe]4f14_5d2_6s2

r_rms:

r_rms of element

Type float

Default 9.9970978172e-05

ta:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.34

Z:

z-value of element

Type int

Default 73

mass:

mass of element

Type float

Default 180.9479

symbol:

symbol of element

Type str

Default Ta

bpt:

bpt of element

Type float

Default 5731.0

mpt:

mpt of element

Type float

Default 3287.0

density:

density of element

Type float

Default 16.6

volume:

volume of element

Type float

Default 10.9

name:

name of element

Type str

Default Tantalum

debye:

debye of element

Type float

Default 225.0

a:

a of element

Type float

Default 3.31

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]4f14_5d3_6s2

r_rms:

r_rms of element

Type float

Default 0.00010013585755

w:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.3

Z:

z-value of element

Type int

Default 74

mass:

mass of element

Type float

Default 183.85

symbol:

symbol of element

Type str

Default W

bpt:

bpt of element

Type float

Default 5828.0

mpt:

mpt of element

Type float

Default 3680.0

density:

density of element

Type float

Default 19.3

volume:

volume of element

Type float

Default 9.53

name:

name of element

Type str

Default Tungsten

debye:

debye of element

Type float

Default 310.0

a:

a of element

Type float

Default 3.16

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]4f14_5d4_6s2

r_rms:

r_rms of element

Type float

Default 0.0001006268807

re:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.28

Z:

z-value of element

Type int

Default 75

mass:

mass of element

Type float

Default 186.207

symbol:

symbol of element

Type str

Default Re

bpt:

bpt of element

Type float

Default 5869.0

mpt:

mpt of element

Type float

Default 3453.0

density:

density of element

Type float

Default 21.0

volume:

volume of element

Type float

Default 8.85

name:

name of element

Type str

Default Rhenium

debye:

debye of element

Type float

Default 416.0

a:

a of element

Type float

Default 2.76

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.615

conf:

conf of element

Type str

Default [Xe]4f14_5d5_6s2

r_rms:

r_rms of element

Type float

Default 0.00010111259523

os:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.26

Z:

z-value of element

Type int

Default 76

mass:

mass of element

Type float

Default 190.2

symbol:

symbol of element

Type str

Default Os

bpt:

bpt of element

Type float

Default 5285.0

mpt:

mpt of element

Type float

Default 3300.0

density:

density of element

Type float

Default 22.4

volume:

volume of element

Type float

Default 8.49

name:

name of element

Type str

Default Osmium

debye:

debye of element

Type float

Default -400.0

a:

a of element

Type float

Default 2.74

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.579

conf:

conf of element

Type str

Default [Xe]4f14_5d6_6s2

r_rms:

r_rms of element

Type float

Default 0.00010191070333

ir:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.27

Z:

z-value of element

Type int

Default 77

mass:

mass of element

Type float

Default 192.22

symbol:

symbol of element

Type str

Default Ir

bpt:

bpt of element

Type float

Default 4701.0

mpt:

mpt of element

Type float

Default 2716.0

density:

density of element

Type float

Default 22.5

volume:

volume of element

Type float

Default 8.54

name:

name of element

Type str

Default Iridium

debye:

debye of element

Type float

Default 430.0

a:

a of element

Type float

Default 3.84

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]4f14_5d7_6s2

r_rms:

r_rms of element

Type float

Default 0.00010206865731

pt:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.3

Z:

z-value of element

Type int

Default 78

mass:

mass of element

Type float

Default 195.08

symbol:

symbol of element

Type str

Default Pt

bpt:

bpt of element

Type float

Default 4100.0

mpt:

mpt of element

Type float

Default 2045.0

density:

density of element

Type float

Default 21.4

volume:

volume of element

Type float

Default 9.1

name:

name of element

Type str

Default Platinum

debye:

debye of element

Type float

Default 230.0

a:

a of element

Type float

Default 3.92

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]4f14_5d10_6s0

r_rms:

r_rms of element

Type float

Default 0.00010238293593

au:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.34

Z:

z-value of element

Type int

Default 79

mass:

mass of element

Type float

Default 196.96654

symbol:

symbol of element

Type str

Default Au

bpt:

bpt of element

Type float

Default 3130.0

mpt:

mpt of element

Type float

Default 1337.58

density:

density of element

Type float

Default 19.3

volume:

volume of element

Type float

Default 10.2

name:

name of element

Type str

Default Gold

debye:

debye of element

Type float

Default 170.0

a:

a of element

Type float

Default 4.08

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]4f14_5d10_6s1

r_rms:

r_rms of element

Type float

Default 0.00010269507292

hg:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.49

Z:

z-value of element

Type int

Default 80

mass:

mass of element

Type float

Default 200.59

symbol:

symbol of element

Type str

Default Hg

bpt:

bpt of element

Type float

Default 630.0

mpt:

mpt of element

Type float

Default 234.28

density:

density of element

Type float

Default 13.53

volume:

volume of element

Type float

Default 14.82

name:

name of element

Type str

Default Mercury

debye:

debye of element

Type float

Default 100.0

a:

a of element

Type float

Default 2.99

crystal:

crystal of element

Type str

Default RHL

cpera:

cpera of element

Type float

Default 70.75

conf:

conf of element

Type str

Default [Xe]4f14_5d10_6s2

r_rms:

r_rms of element

Type float

Default 0.00010346628039

tl:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.96

covalent:

covalent value element

Type float

Default 1.48

Z:

z-value of element

Type int

Default 81

mass:

mass of element

Type float

Default 204.3833

symbol:

symbol of element

Type str

Default Tl

bpt:

bpt of element

Type float

Default 1746.0

mpt:

mpt of element

Type float

Default 577.0

density:

density of element

Type float

Default 11.85

volume:

volume of element

Type float

Default 17.2

name:

name of element

Type str

Default Thallium

debye:

debye of element

Type float

Default 96.0

a:

a of element

Type float

Default 3.46

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.599

conf:

conf of element

Type str

Default [Xe]4f14_5d10_6s2_6p1

r_rms:

r_rms of element

Type float

Default 0.00010392291259

pb:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.02

covalent:

covalent value element

Type float

Default 1.47

Z:

z-value of element

Type int

Default 82

mass:

mass of element

Type float

Default 207.2

symbol:

symbol of element

Type str

Default Pb

bpt:

bpt of element

Type float

Default 2023.0

mpt:

mpt of element

Type float

Default 600.6

density:

density of element

Type float

Default 11.4

volume:

volume of element

Type float

Default 18.17

name:

name of element

Type str

Default Lead

debye:

debye of element

Type float

Default 88.0

a:

a of element

Type float

Default 4.95

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]4f14_5d10_6s2_6p2

r_rms:

r_rms of element

Type float

Default 0.0001043751113

bi:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.07

covalent:

covalent value element

Type float

Default 1.46

Z:

z-value of element

Type int

Default 83

mass:

mass of element

Type float

Default 208.98037

symbol:

symbol of element

Type str

Default Bi

bpt:

bpt of element

Type float

Default 1837.0

mpt:

mpt of element

Type float

Default 544.52

density:

density of element

Type float

Default 9.8

volume:

volume of element

Type float

Default 21.3

name:

name of element

Type str

Default Bismuth

debye:

debye of element

Type float

Default 120.0

a:

a of element

Type float

Default 4.75

crystal:

crystal of element

Type str

Default RHL

cpera:

cpera of element

Type float

Default 57.23

conf:

conf of element

Type str

Default [Xe]4f14_5d10_6s2_6p3

r_rms:

r_rms of element

Type float

Default 0.00010452487744

po:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 1.97

covalent:

covalent value element

Type float

Default 1.46

Z:

z-value of element

Type int

Default 84

mass:

mass of element

Type float

Default -209.0

symbol:

symbol of element

Type str

Default Po

bpt:

bpt of element

Type float

Default 1235.0

mpt:

mpt of element

Type float

Default 527.0

density:

density of element

Type float

Default 9.4

volume:

volume of element

Type float

Default 22.23

name:

name of element

Type str

Default Polonium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 3.35

crystal:

crystal of element

Type str

Default SC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]4f14_5d10_6s2_6p4

r_rms:

r_rms of element

Type float

Default 0.00010452487744

at:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.02

covalent:

covalent value element

Type float

Default 1.45

Z:

z-value of element

Type int

Default 85

mass:

mass of element

Type float

Default 210.0

symbol:

symbol of element

Type str

Default At

bpt:

bpt of element

Type float

Default 610.0

mpt:

mpt of element

Type float

Default 575.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Astatine

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]4f14_5d10_6s2_6p5

r_rms:

r_rms of element

Type float

Default 0.0001046741666

rn:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.2

covalent:

covalent value element

Type float

Default 1.43

Z:

z-value of element

Type int

Default 86

mass:

mass of element

Type float

Default -222.0

symbol:

symbol of element

Type str

Default Rn

bpt:

bpt of element

Type float

Default 211.0

mpt:

mpt of element

Type float

Default 202.0

density:

density of element

Type float

Default 9.91

volume:

volume of element

Type float

Default 50.5

name:

name of element

Type str

Default Radon

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]4f14_5d10_6s2_6p6

r_rms:

r_rms of element

Type float

Default 0.00010642976299

fr:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 3.48

covalent:

covalent value element

Type float

Default 2.5

Z:

z-value of element

Type int

Default 87

mass:

mass of element

Type float

Default -223.0

symbol:

symbol of element

Type str

Default Fr

bpt:

bpt of element

Type float

Default 950.0

mpt:

mpt of element

Type float

Default 300.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Francium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]7s1

r_rms:

r_rms of element

Type float

Default 0.00010657317899

ra:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default 2.83

covalent:

covalent value element

Type float

Default 2.4

Z:

z-value of element

Type int

Default 88

mass:

mass of element

Type float

Default 226.025

symbol:

symbol of element

Type str

Default Ra

bpt:

bpt of element

Type float

Default 1809.0

mpt:

mpt of element

Type float

Default 973.0

density:

density of element

Type float

Default 5.0

volume:

volume of element

Type float

Default 45.2

name:

name of element

Type str

Default Radium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]7s2

r_rms:

r_rms of element

Type float

Default 0.000107000871

ac:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 2.2

Z:

z-value of element

Type int

Default 89

mass:

mass of element

Type float

Default 227.028

symbol:

symbol of element

Type str

Default Ac

bpt:

bpt of element

Type float

Default 3473.0

mpt:

mpt of element

Type float

Default 1323.0

density:

density of element

Type float

Default 10.07

volume:

volume of element

Type float

Default 22.54

name:

name of element

Type str

Default Actinium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 5.31

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]6d1_7s2

r_rms:

r_rms of element

Type float

Default 0.00010714259349

rf:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 104

mass:

mass of element

Type float

Default -257.0

symbol:

symbol of element

Type str

Default Rf

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Rutherfordium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default 4-5s

r_rms:

r_rms of element

Type float

Default 0.0001117320442

db:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 105

mass:

mass of element

Type float

Default -262.0

symbol:

symbol of element

Type str

Default Db

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Dubnium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default 40s

r_rms:

r_rms of element

Type float

Default 0.00011186082063

sg:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 106

mass:

mass of element

Type float

Default -263.0

symbol:

symbol of element

Type str

Default Sg

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Seaborgium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default 0.9s

r_rms:

r_rms of element

Type float

Default 0.00011198926979

bh:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 107

mass:

mass of element

Type float

Default -262.0

symbol:

symbol of element

Type str

Default Bh

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Bohrium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default 2ms

r_rms:

r_rms of element

Type float

Default 0.00011186082063

hs:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 108

mass:

mass of element

Type float

Default -264.0

symbol:

symbol of element

Type str

Default Hs

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Hassium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default ````

r_rms:

r_rms of element

Type float

Default 0.0001122451946

mt:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 109

mass:

mass of element

Type float

Default -266.0

symbol:

symbol of element

Type str

Default Mt

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Meitnerium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default 5ms

r_rms:

r_rms of element

Type float

Default 0.00011237267433

110:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 110

mass:

mass of element

Type float

Default -269.0

symbol:

symbol of element

Type str

Default 110

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default (recent_disc.)

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default ````

r_rms:

r_rms of element

Type float

Default -1.0

111:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 111

mass:

mass of element

Type float

Default -272.0

symbol:

symbol of element

Type str

Default 111

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default (recent_disc.)

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default 4/1000s

r_rms:

r_rms of element

Type float

Default -1.0

112:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 112

mass:

mass of element

Type float

Default -277.0

symbol:

symbol of element

Type str

Default 112

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default (recent_disc.)

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default 280µs

r_rms:

r_rms of element

Type float

Default -1.0

ce:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.65

Z:

z-value of element

Type int

Default 58

mass:

mass of element

Type float

Default 140.115

symbol:

symbol of element

Type str

Default Ce

bpt:

bpt of element

Type float

Default 3699.0

mpt:

mpt of element

Type float

Default 1071.0

density:

density of element

Type float

Default 6.78

volume:

volume of element

Type float

Default 20.67

name:

name of element

Type str

Default Cerium

debye:

debye of element

Type float

Default -139.0

a:

a of element

Type float

Default 5.16

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]4f2_5d0_6s2

r_rms:

r_rms of element

Type float

Default 9.2803027311e-05

pr:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.65

Z:

z-value of element

Type int

Default 59

mass:

mass of element

Type float

Default 140.90765

symbol:

symbol of element

Type str

Default Pr

bpt:

bpt of element

Type float

Default 3785.0

mpt:

mpt of element

Type float

Default 1204.0

density:

density of element

Type float

Default 6.77

volume:

volume of element

Type float

Default 20.8

name:

name of element

Type str

Default Praseodymium

debye:

debye of element

Type float

Default -152.0

a:

a of element

Type float

Default 3.67

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.614

conf:

conf of element

Type str

Default [Xe]4f3_5d0_6s2

r_rms:

r_rms of element

Type float

Default 9.2997877424e-05

nd:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.64

Z:

z-value of element

Type int

Default 60

mass:

mass of element

Type float

Default 144.24

symbol:

symbol of element

Type str

Default Nd

bpt:

bpt of element

Type float

Default 3341.0

mpt:

mpt of element

Type float

Default 1289.0

density:

density of element

Type float

Default 7.0

volume:

volume of element

Type float

Default 20.6

name:

name of element

Type str

Default Neodymium

debye:

debye of element

Type float

Default -157.0

a:

a of element

Type float

Default 3.66

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.614

conf:

conf of element

Type str

Default [Xe]4f4_5d0_6s2

r_rms:

r_rms of element

Type float

Default 9.3576955934e-05

pm:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.63

Z:

z-value of element

Type int

Default 61

mass:

mass of element

Type float

Default -145.0

symbol:

symbol of element

Type str

Default Pm

bpt:

bpt of element

Type float

Default 3785.0

mpt:

mpt of element

Type float

Default 1204.0

density:

density of element

Type float

Default 6.475

volume:

volume of element

Type float

Default 22.39

name:

name of element

Type str

Default Promethium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]4f5_5d0_6s2

r_rms:

r_rms of element

Type float

Default 9.3768193375e-05

sm:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.62

Z:

z-value of element

Type int

Default 62

mass:

mass of element

Type float

Default 150.36

symbol:

symbol of element

Type str

Default Sm

bpt:

bpt of element

Type float

Default 2064.0

mpt:

mpt of element

Type float

Default 1345.0

density:

density of element

Type float

Default 7.54

volume:

volume of element

Type float

Default 19.95

name:

name of element

Type str

Default Samarium

debye:

debye of element

Type float

Default 166.0

a:

a of element

Type float

Default 9.0

crystal:

crystal of element

Type str

Default RHL

cpera:

cpera of element

Type float

Default 23.22

conf:

conf of element

Type str

Default [Xe]4f6_5d0_6s2

r_rms:

r_rms of element

Type float

Default 9.5082839751e-05

eu:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.85

Z:

z-value of element

Type int

Default 63

mass:

mass of element

Type float

Default 151.965

symbol:

symbol of element

Type str

Default Eu

bpt:

bpt of element

Type float

Default 1870.0

mpt:

mpt of element

Type float

Default 1090.0

density:

density of element

Type float

Default 5.26

volume:

volume of element

Type float

Default 28.9

name:

name of element

Type str

Default Europium

debye:

debye of element

Type float

Default -107.0

a:

a of element

Type float

Default 4.61

crystal:

crystal of element

Type str

Default BCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]4f7_5d0_6s2

r_rms:

r_rms of element

Type float

Default 9.5267329183e-05

gd:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.61

Z:

z-value of element

Type int

Default 64

mass:

mass of element

Type float

Default 157.25

symbol:

symbol of element

Type str

Default Gd

bpt:

bpt of element

Type float

Default 3539.0

mpt:

mpt of element

Type float

Default 1585.0

density:

density of element

Type float

Default 7.89

volume:

volume of element

Type float

Default 19.9

name:

name of element

Type str

Default Gadolinium

debye:

debye of element

Type float

Default -176.0

a:

a of element

Type float

Default 3.64

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.588

conf:

conf of element

Type str

Default [Xe]4f7_5d1_6s2

r_rms:

r_rms of element

Type float

Default 9.6177915369e-05

tb:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.59

Z:

z-value of element

Type int

Default 65

mass:

mass of element

Type float

Default 158.92534

symbol:

symbol of element

Type str

Default Tb

bpt:

bpt of element

Type float

Default 3496.0

mpt:

mpt of element

Type float

Default 1630.0

density:

density of element

Type float

Default 8.27

volume:

volume of element

Type float

Default 19.2

name:

name of element

Type str

Default Terbium

debye:

debye of element

Type float

Default -188.0

a:

a of element

Type float

Default 3.6

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.581

conf:

conf of element

Type str

Default [Xe]4f9_5d0_6s2

r_rms:

r_rms of element

Type float

Default 9.6357719009e-05

dy:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.59

Z:

z-value of element

Type int

Default 66

mass:

mass of element

Type float

Default 162.5

symbol:

symbol of element

Type str

Default Dy

bpt:

bpt of element

Type float

Default 2835.0

mpt:

mpt of element

Type float

Default 1682.0

density:

density of element

Type float

Default 8.54

volume:

volume of element

Type float

Default 19.0

name:

name of element

Type str

Default Dysprosium

debye:

debye of element

Type float

Default -186.0

a:

a of element

Type float

Default 3.59

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.573

conf:

conf of element

Type str

Default [Xe]4f10_5d0_6s2

r_rms:

r_rms of element

Type float

Default 9.6892647152e-05

ho:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.58

Z:

z-value of element

Type int

Default 67

mass:

mass of element

Type float

Default 164.93032

symbol:

symbol of element

Type str

Default Ho

bpt:

bpt of element

Type float

Default 2968.0

mpt:

mpt of element

Type float

Default 1743.0

density:

density of element

Type float

Default 8.8

volume:

volume of element

Type float

Default 18.7

name:

name of element

Type str

Default Holmium

debye:

debye of element

Type float

Default -191.0

a:

a of element

Type float

Default 3.58

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.57

conf:

conf of element

Type str

Default [Xe]4f11_5d0_6s2

r_rms:

r_rms of element

Type float

Default 9.6892647152e-05

er:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.57

Z:

z-value of element

Type int

Default 68

mass:

mass of element

Type float

Default 167.26

symbol:

symbol of element

Type str

Default Er

bpt:

bpt of element

Type float

Default 3136.0

mpt:

mpt of element

Type float

Default 1795.0

density:

density of element

Type float

Default 9.05

volume:

volume of element

Type float

Default 18.4

name:

name of element

Type str

Default Erbium

debye:

debye of element

Type float

Default -195.0

a:

a of element

Type float

Default 3.56

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.57

conf:

conf of element

Type str

Default [Xe]4f12_5d0_6s2

r_rms:

r_rms of element

Type float

Default 9.7943009317e-05

tm:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.56

Z:

z-value of element

Type int

Default 69

mass:

mass of element

Type float

Default 168.93421

symbol:

symbol of element

Type str

Default Tm

bpt:

bpt of element

Type float

Default 2220.0

mpt:

mpt of element

Type float

Default 1818.0

density:

density of element

Type float

Default 9.33

volume:

volume of element

Type float

Default 18.1

name:

name of element

Type str

Default Thulium

debye:

debye of element

Type float

Default -200.0

a:

a of element

Type float

Default 3.54

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.57

conf:

conf of element

Type str

Default [Xe]4f13_5d0_6s2

r_rms:

r_rms of element

Type float

Default 9.811562674e-05

yb:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.74

Z:

z-value of element

Type int

Default 70

mass:

mass of element

Type float

Default 173.04

symbol:

symbol of element

Type str

Default Yb

bpt:

bpt of element

Type float

Default 1467.0

mpt:

mpt of element

Type float

Default 1097.0

density:

density of element

Type float

Default 6.98

volume:

volume of element

Type float

Default 24.79

name:

name of element

Type str

Default Ytterbium

debye:

debye of element

Type float

Default -118.0

a:

a of element

Type float

Default 5.49

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Xe]4f14_5d0_6s2

r_rms:

r_rms of element

Type float

Default 9.8968651305e-05

lu:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.56

Z:

z-value of element

Type int

Default 71

mass:

mass of element

Type float

Default 174.967

symbol:

symbol of element

Type str

Default Lu

bpt:

bpt of element

Type float

Default 3668.0

mpt:

mpt of element

Type float

Default 1936.0

density:

density of element

Type float

Default 9.84

volume:

volume of element

Type float

Default 17.78

name:

name of element

Type str

Default Lutetium

debye:

debye of element

Type float

Default -207.0

a:

a of element

Type float

Default 3.51

crystal:

crystal of element

Type str

Default HEX

cpera:

cpera of element

Type float

Default 1.585

conf:

conf of element

Type str

Default [Xe]4f14_5d1_6s2

r_rms:

r_rms of element

Type float

Default 9.9137288835e-05

th:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.65

Z:

z-value of element

Type int

Default 90

mass:

mass of element

Type float

Default 232.0381

symbol:

symbol of element

Type str

Default Th

bpt:

bpt of element

Type float

Default 5061.0

mpt:

mpt of element

Type float

Default 2028.0

density:

density of element

Type float

Default 11.7

volume:

volume of element

Type float

Default 19.9

name:

name of element

Type str

Default Thorium

debye:

debye of element

Type float

Default 100.0

a:

a of element

Type float

Default 5.08

crystal:

crystal of element

Type str

Default FCC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]6d2_7s2

r_rms:

r_rms of element

Type float

Default 0.00010784503195

pa:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 91

mass:

mass of element

Type float

Default 231.03588

symbol:

symbol of element

Type str

Default Pa

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 15.4

volume:

volume of element

Type float

Default 15.0

name:

name of element

Type str

Default Protactinium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 3.92

crystal:

crystal of element

Type str

Default TET

cpera:

cpera of element

Type float

Default 0.825

conf:

conf of element

Type str

Default [Rn]5f2_6d1_7s2

r_rms:

r_rms of element

Type float

Default 0.00010770535752

u:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 1.42

Z:

z-value of element

Type int

Default 92

mass:

mass of element

Type float

Default 238.0289

symbol:

symbol of element

Type str

Default U

bpt:

bpt of element

Type float

Default 4407.0

mpt:

mpt of element

Type float

Default 1405.0

density:

density of element

Type float

Default 18.9

volume:

volume of element

Type float

Default 12.59

name:

name of element

Type str

Default Uranium

debye:

debye of element

Type float

Default -210.0

a:

a of element

Type float

Default 2.85

crystal:

crystal of element

Type str

Default ORC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]5f3_6d1_7s2

r_rms:

r_rms of element

Type float

Default 0.00010867476102

np:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 93

mass:

mass of element

Type float

Default 237.048

symbol:

symbol of element

Type str

Default Np

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 910.0

density:

density of element

Type float

Default 20.4

volume:

volume of element

Type float

Default 11.62

name:

name of element

Type str

Default Neptunium

debye:

debye of element

Type float

Default -188.0

a:

a of element

Type float

Default 4.72

crystal:

crystal of element

Type str

Default ORC

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]5f4_6d1_7s2

r_rms:

r_rms of element

Type float

Default 0.00010853744903

pu:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 94

mass:

mass of element

Type float

Default -244.0

symbol:

symbol of element

Type str

Default Pu

bpt:

bpt of element

Type float

Default 3503.0

mpt:

mpt of element

Type float

Default 913.0

density:

density of element

Type float

Default 19.8

volume:

volume of element

Type float

Default 12.32

name:

name of element

Type str

Default Plutonium

debye:

debye of element

Type float

Default -150.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default MCL

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]5f6_6d0_7s2

r_rms:

r_rms of element

Type float

Default 0.00010949065967

am:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 95

mass:

mass of element

Type float

Default -243.0

symbol:

symbol of element

Type str

Default Am

bpt:

bpt of element

Type float

Default 2880.0

mpt:

mpt of element

Type float

Default 1268.0

density:

density of element

Type float

Default 13.6

volume:

volume of element

Type float

Default 17.86

name:

name of element

Type str

Default Americium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]5f7_6d0_7s2

r_rms:

r_rms of element

Type float

Default 0.00010935561268

cm:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 96

mass:

mass of element

Type float

Default -247.0

symbol:

symbol of element

Type str

Default Cm

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 1340.0

density:

density of element

Type float

Default 13.511

volume:

volume of element

Type float

Default 18.28

name:

name of element

Type str

Default Curium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]5f7_6d1_7s2

r_rms:

r_rms of element

Type float

Default 0.00010989359973

bk:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 97

mass:

mass of element

Type float

Default -247.0

symbol:

symbol of element

Type str

Default Bk

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Berkelium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]5f8_6d1_7s2

r_rms:

r_rms of element

Type float

Default 0.00010989359973

cf:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 98

mass:

mass of element

Type float

Default -251.0

symbol:

symbol of element

Type str

Default Cf

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 900.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Californium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]5f10_6d0_7s2

r_rms:

r_rms of element

Type float

Default 0.00011042580946

es:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 99

mass:

mass of element

Type float

Default -252.0

symbol:

symbol of element

Type str

Default Es

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Einsteinium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]5f11_6d0_7s2

r_rms:

r_rms of element

Type float

Default 0.00011055797721

fm:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 100

mass:

mass of element

Type float

Default -257.0

symbol:

symbol of element

Type str

Default Fm

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Fermium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]5f12_6d0_7s2

r_rms:

r_rms of element

Type float

Default 0.00011121362374

md:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 101

mass:

mass of element

Type float

Default -258.0

symbol:

symbol of element

Type str

Default Md

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Mendelevium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]5f13_6d0_7s2

r_rms:

r_rms of element

Type float

Default 0.00011134373034

“no”:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 102

mass:

mass of element

Type float

Default -259.0

symbol:

symbol of element

Type str

Default "No"

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Nobelium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]5f14_6d0_7s2

r_rms:

r_rms of element

Type float

Default 0.00011147350119

lr:

data of element

Keywords
vdw-radius:

radius of element

Type float

Default -1.0

covalent:

covalent value element

Type float

Default 0.0

Z:

z-value of element

Type int

Default 103

mass:

mass of element

Type float

Default -260.0

symbol:

symbol of element

Type str

Default Lr

bpt:

bpt of element

Type float

Default 0.0

mpt:

mpt of element

Type float

Default 0.0

density:

density of element

Type float

Default 0.0

volume:

volume of element

Type float

Default 0.0

name:

name of element

Type str

Default Lawrencium

debye:

debye of element

Type float

Default 0.0

a:

a of element

Type float

Default 0.0

crystal:

crystal of element

Type str

Default ````

cpera:

cpera of element

Type float

Default 0.0

conf:

conf of element

Type str

Default [Rn]5f14_6d1_7s2

r_rms:

r_rms of element

Type float

Default 0.00011186082063

Running MRChem with QCEngine

MRChem >=1.0 can be used as a computational engine with the QCEngine program executor. QCEngine can be useful for running calculations on large sets of molecules and input parameters. The results are collected in standardised QCSchema format, which makes it easy to build post-processing pipelines and store data according to Findability, Accessibility, Interoperability, and Reuse (FAIR) of digital assets principles. Furthermore, QCEngine provides different geometry optimization drivers that can use the molecular gradient computed by MRChem for structural optimization.

Installation

The easiest way is to install both QCEngine and MRChem in a Conda environment using the precompiled version:

conda create -n mrchem-qcng mrchem qcengine qcelemental geometric optking pip -c conda-forge
conda activate mrchem-qcng
python -m pip install -U pyberny

It is also possible to use your own installation of MRChem: just make sure that the installation folder is in your PATH.

Note

If you want to use the precompiled, MPI-parallel version of MRChem with OpenMPI, install mrchem=*=*openmpi* insted of just mrchem. A binary package compiled against MPICH is also available: mrchem=*=*mpich*.

Single compute

Calculations in QCEngine are defined in Python scripts. For example, the following runs MRChem to obtain the energy of water:

import qcelemental as qcel
import qcengine as qcng


mol = qcel.models.Molecule(geometry=[[0, 0, 0], [0, 1.5, 0], [0, 0, 1.5]],
                           symbols=["O", "H", "H"],
                           connectivity=[[0, 1, 1], [0, 2, 1]])
print(mol)

computation = {
    "molecule": mol,
    "driver": "energy",
    "model": {"method": "HF"},
    "keywords": {"world_prec": 1.0e-3},
}
ret = qcng.compute(computation, "mrchem")

print(f"E_HF = {ret.return_result} Hartree")

You can save this sample as mrchem-run-hf.py and execute it with:

python mrchem-run-hf.py

Which will print to screen:

Molecule(name='H2O', formula='H2O', hash='b41d0c5')
E_HF = -75.9789291596064 Hartree

Note that:

  1. The molecule is specified, in Angstrom, using a QCElemental object.

  2. The computation is described using a Python dictionary.

  3. The driver selects the kind of calculation you want to run with MRChem. Available drivers are: - energy, for single-point energy calculations. - gradient, for evaluation of the molecular gradient at a given geometry. - properties, for the calculation of molecular properties.

  4. The model selects the wavefunction: HF for Hartree-Fock and any of the DFT functionals known to MRChem for a corresponding DFT calculation.

  5. The keywords key in the dictionary accepts a dictionary of MRChem options. Any of the options in the usual input file are recognized.

Once you have a dictionary defining your computation, you can run it with:

ret = qcng.compute(computation, "mrchem")

You can reuse the same dictionary with multiple computational engine, e.g. other quantum chemistry programs that are recognized as executors by QCEngine. The return value from the compute function contains all data produced during the calculation in QCSchema format including, for example, the execution time elapsed. The full JSON output produced by MRChem is also available and can be inspected in Python as:

mrchem_json_out = ret.extras["raw_output"]["output"]

The full, human-readable input is saved as the stdout property of the object returned by compute.

Parallelism

QCEngine allows you to exploit available parallel hardware. For example, to use 20 OpenMP threads in your MRChem calculation you would provide an additional task configuration dictionary as a task_config argument to compute:

ret = qcng.compute(
        computation,
        "mrchem",
        task_config={"ncores": 20})

You can inspect how the job was launched by printing out the provenance dictionary:

print(ret.extras["raw_output"]["output"]["provenance"])
{
 "creator": "MRChem",
 "mpi_processes": 1,
 "routine": "/home/roberto/miniconda3/envs/mrchem-qcng/bin/mrchem.x",
 "total_cores": 1,
 "version": "1.1.0",
 "ncores": 12,
 "nnodes": 1,
 "ranks_per_node": 1,
 "cores_per_rank": 12,
 "total_ranks": 1
}

It is also possible to run MPI-parallel and hybrid MPI+OpenMP jobs. Assuming that you installed the MPICH version of the MRChem MPI-parallel Conda package, the basic task_config argument to compute would look like:

task = {
  "nnodes": 1,  # number of nodes
  "ncores": 12,  # number of cores per task on each node
  "cores_per_rank": 6,  # number of cores per MPI rank
  "use_mpiexec": True,  # launch with MPI
  "mpiexec_command": "mpiexec -n {total_ranks}",  # the invocation of MPI
}

This task configuration will launch a MPI job with 2 ranks on a single node. Each rank has access to 6 cores for OpenMP parallelization. The provenance dictionary now shows:

{
 "creator": "MRChem",
 "mpi_processes": 2,
 "routine": "mpiexec -n 2 /home/roberto/miniconda3/envs/mrchem-qcng/bin/mrchem.x",
 "total_cores": 12,
 "version": "1.1.0",
 "ncores": 12,
 "nnodes": 1,
 "ranks_per_node": 2,
 "cores_per_rank": 6,
 "total_ranks": 2
}

The mpiexec_command is a string that will be interpolated to provide the exact invocation. In the above example, MRChem will be run with:

mpiexec -n 2 /home/roberto/miniconda3/envs/mrchem-qcng/bin/mrchem.x

The following interpolation parameters are understood by QCEngine when creating the MPI invocation:

  • {nnodes}: number of nodes.

  • {cores_per_rank}: number of cores to use for each MPI rank.

  • {ranks_per_node}: number of MPI ranks per node. Computed as ncores // cores_per_rank.

  • {total_ranks}: total number of MPI ranks. Computed as nnodes * ranks_per_node.

More complex MPI invocations are possible by setting the appropriate mpiexec_command in the task configuration. For usage with a scheduler, such as SLURM, you should refer to the documentation of your computing cluster and the documentation of QCEngine.

Geometry optimizations

Running geometry optimizations is just as easy as single compute. The following example optimizes the structure of water using the SVWN5 functional with MW4. The geomeTRIC package is used as optimization driver, but pyberny or optking would also work.

Warning

The computation of the molecular gradient can be affected by significant numerical noise for MW3 and MW4, to the point that it can be impossible to converge a geometry optimization. Using a tighter precision might help, but the cost of the calculation might be prohibitively large.

import qcelemental as qcel
import qcengine as qcng

mol =  qcel.models.Molecule(
    geometry=[
        [ 0.29127930, 3.00875625, 0.20308515],
        [-1.21253048, 1.95820900, 0.10303324],
        [ 0.10002049, 4.24958115,-1.10222079]
    ],
    symbols=["O", "H", "H"],
    fix_com=True,
    fix_orientation=True,
    fix_symmetry="c1")

opt_input =  {
    "keywords": {
        "program": "mrchem",
        "maxiter": 70
    },
    "input_specification": {
        "driver": "gradient",
        "model": {
            "method": "SVWN5",
        },
        "keywords": {
            "world_prec": 1.0e-4,
            "SCF": {
                "guess_type": "core_dz",
            }
        }
    },
    "initial_molecule": mol,
}

opt = qcng.compute_procedure(
        opt_input,
        "geometric",
        task_config={"ncores": 20})

print(opt.stdout)

print("==> Optimized geometry <==")
print(opt.final_molecule.pretty_print())

print("==> Optimized geometric parameters <==")
for m in [[0, 1], [0, 2], [1, 0, 2]]:
    opt_val = opt.final_molecule.measure(m)
    print(f"Internal degree of freedom {m} = {opt_val:.3f}")

Running this script will print all the steps taken during the structural optimization. The final printout contains the optimized geometry:

Geometry (in Angstrom), charge = 0.0, multiplicity = 1:

   Center              X                  Y                   Z
------------   -----------------  -----------------  -----------------
O                -4.146209038013     2.134923126314    -3.559202294678
H                -4.906566693905     1.536801624016    -3.587431156799
H                -4.270830051398     2.773072094238    -4.275607223691

and the optimized values of bond distances and bond angle:

Internal degree of freedom [0, 1] = 1.829
Internal degree of freedom [0, 2] = 1.828
Internal degree of freedom [1, 0, 2] = 106.549

Program input/output file

Input schema
"input": {
  "schema_name": string,                     # Name of the input schema
  "schema_version": int,                     # Version of the input schema
  "molecule": {                              # Section for Molecule specification
    "charge": int,                           # Total molecular charge
    "multiplicity": int,                     # Total spin multiplicity
    "coords": array[                         # Array of atoms
      {                                      # (one entry per atom)
        "atom": string,                      # Atomic symbol
        "xyz": array[float]                  # Nuclear Cartesian coordinate
      }
    ],
    "cavity": {
      "spheres": array[                      # Array of cavity spheres
        {                                    # (one entry per sphere)
          "center": array[float],            # Cartesian coordinate of sphere center
          "radius": float                    # Radius of cavity sphere
          "alpha": float                     # Scaling factor of radius
          "beta": float                      # Scaling factor of width
          "sigma": float                     # Width of cavity boundary
        }
      ],
    }
  },
  "mpi": {                                   # Section for MPI specification
    "bank_size": int,                        # Number of MPI ranks in memory bank
    "omp_threads": int,                      # Number of omp threads
    "numerically_exact": bool,               # Guarantee MPI invariant results
    "shared_memory_size": int                # Size (MB) of MPI shared memory blocks
  },
  "mra": {                                   # Section for MultiResolution Analysis
    "basis_type": string,                    # Basis type (interpolating/legendre)
    "basis_order": int,                      # Polynomial order of basis
    "max_scale": int,                        # Maximum level of refinement
    "min_scale": int,                        # Minimum level of refinement (root scale)
    "boxes": array[int],                     # Number of root boxes
    "corner": array[int]                     # Translation of first root box
  },
  "printer": {                               # Section for printed output
    "file_name": string,                     # Name of output file
    "print_level": int,                      # Amount of printed output
    "print_mpi": bool,                       # Use separate output file for each MPI
    "print_prec": int,                       # Number of digits for printed output
    "print_width": int                       # Line width of printed output
  },
  "scf_calculation": {                       # Section for SCF specification
    "fock_operator": {                       # Contributions to Fock operator
      "kinetic_operator": {                  # Add Kinetic operator to Fock
        "derivative": string                 # Type of derivative operator
      },
      "nuclear_operator": {                  # Add Nuclear operator to Fock
        "proj_prec": float,                  # Projection prec for potential
        "smooth_prec": float,                # Smoothing parameter for potential
        "shared_memory": bool                # Use shared memory for potential
      },
      "coulomb_operator": {                  # Add Coulomb operator to Fock
        "poisson_prec": float,               # Build prec for Poisson operator
        "shared_memory": bool                # Use shared memory for potential
      },
      "exchange_operator": {                 # Add Exchange operator to Fock
        "poisson_prec": float,               # Build prec for Poisson operator
        "screen": bool                       # Use screening in Exchange operator
      },
      "reaction_operator": {                 # Add Reaction operator to Fock
        "poisson_prec": float,               # Precision for Poisson operator
        "kain": int,                         # Length of KAIN history in nested SCRF procedure
        "max_iter": int,                     # Maximum number of iterations in nested SCRF procedure
        "optimizer": string,                 # Use density or potential in KAIN solver
        "dynamic_thrs": bool,                # Use static or dynamic convergence threshold
        "density_type": string,              # Type of charge density [total, nuclear, electronic]
        "epsilon_in": float,                 # Permittivity inside the cavity
        "epsilon_out": float,                # Permittivity outside the cavity
        "formulation": string                # Formulation of the permittivity function
      },
      "xc_operator": {                       # Add XC operator to Fock
        "shared_memory": bool,               # Use shared memory for potential
        "xc_functional": {                   # XC functional specification
          "spin": bool,                      # Use spin separated functional
          "cutoff": float,                   # Cutoff value for small densities
          "functionals": array[              # Array of density functionals
            {
              "coef": float,                 # Numerical coefficient
              "name": string                 # Functional name
            }
          ]
        }
      },
     "zora_operator": {
        "include_nuclear": bool,             # Include V_nuc in ZORA potential
        "include_coulomb": bool,             # Include V_coul in ZORA potential
        "include_xc": bool                   # Include V_xc in ZORA potential
      },
      "external_operator": {                 # Add external field operator to Fock
        "electric_field": array[float],      # Electric field vector
        "r_O": array[float]                  # Gauge orgigin for electric field
      }
    },
    "initial_guess": {                       # Initial guess specification
      "type": string,                        # Type of initial guess
      "prec": float,                         # Precision for initial guess
      "zeta": int,                           # Zeta quality for AO basis
      "method": string,                      # Name of method for initial energy
      "localize": bool,                      # Use localized orbitals
      "restricted": bool,                    # Use spin restricted orbitals
      "relativity": string,                  # Name of relativistic method
      "screen": float,                       # Screening used in GTO evaluations
      "file_chk": string,                    # Path to checkpoint file
      "file_basis": string,                  # Path to GTO basis file
      "file_gto_a": string,                  # Path to GTO MO file (alpha)
      "file_gto_b": string,                  # Path to GTO MO file (beta)
      "file_gto_p": string,                  # Path to GTO MO file (paired)
      "file_phi_a": string,                  # Path to MW orbital file (alpha)
      "file_phi_b": string,                  # Path to MW orbital file (beta)
      "file_phi_p": string,                  # Path to MW orbital file (paired)
      "file_CUBE_a": str,                    # Path to CUBE orbital file (alpha)
      "file_CUBE_b": str,                    # Path to CUBE orbital file (beta)
      "file_CUBE_p": str                     # Path to CUBE orbital file (paired)
    },
    "scf_solver": {                          # SCF solver specification
      "kain": int,                           # Length of KAIN history
      "max_iter": int,                       # Maximum number of iterations
      "method": string,                      # Name of electronic structure method
      "relativity": string,                  # Name of relativistic method
      "rotation": int,                       # Iterations between localize/diagonalize
      "localize": bool,                      # Use localized orbitals
      "checkpoint": bool,                    # Save checkpoint file
      "file_chk": string,                    # Name of checkpoint file
      "start_prec": float,                   # Start precision for solver
      "final_prec": float,                   # Final precision for solver
      "helmholtz_prec": float,               # Precision for Helmholtz operators
      "orbital_thrs": float,                 # Convergence threshold orbitals
      "energy_thrs":float                    # Convergence threshold energy
    },
    "properties": {                          # Collection of properties to compute
      "dipole_moment": {                     # Collection of dipole moments
        id (string): {                       # Unique id: 'dip-${number}'
          "precision": float,                # Operator precision
          "operator": string,                # Operator used for property
          "r_O": array[float]                # Operator gauge origin
        }
      },
      "quadrupole_moment": {                 # Collection of quadrupole moments
        id (string): {                       # Unique id: 'quad-${number}'
          "precision": float,                # Operator precision
          "operator": string,                # Operator used for property
          "r_O": array[float]                # Operator gauge origin
        }
      },
      "geometric_derivative": {              # Collection of geometric derivatives
        id (string): {                       # Unique id: 'geom-${number}'
          "precision": float,                # Operator precision
          "operator": string,                # Operator used for property
          "smooth_prec": float               # Smoothing parameter for potential
        }
      }
    },
    "plots": {                               # Collection of plots to perform
      "density": bool,                       # Plot converged densities
      "orbitals": array[int],                # List of orbitals to plot
      "plotter": {                           # Section specifying plotting parameters
        "path": string,                      # Path to output files
        "type": string,                      # Type of plot (line, surf or cube)
        "points": array[int],                # Number of points in each direction
        "O": array[float],                   # Plotting range origin
        "A": array[float],                   # Plotting range A vector
        "B": array[float],                   # Plotting range B vector
        "C": array[float]                    # Plotting range C vector
    }
  },
  "rsp_calculations": {                      # Collection of response calculations
    id (string): {                           # Response id: e.g. 'ext_el-${frequency}'
      "dynamic": bool,                       # Use dynamic response solver
      "frequency": float,                    # Perturbation frequency
      "perturbation": {                      # Perturbation operator
        "operator": string                   # Operator used in response calculation
      },
      "components": array[                   # Array of perturbation components
        {                                    # (one per Cartesian direction)
          "initial_guess": {                 # Initial guess specification
            "type": string,                  # Type of initial guess
            "prec": float,                   # Precision for initial guess
            "file_chk_x": string,            # Path to checkpoint file for X
            "file_chk_y": string,            # Path to checkpoint file for Y
            "file_x_a": string,              # Path to MW file for X (alpha)
            "file_x_b": string,              # Path to MW file for X (beta)
            "file_x_p": string,              # Path to MW file for X (paired)
            "file_y_a": string,              # Path to MW file for Y (alpha)
            "file_y_b": string,              # Path to MW file for Y (beta)
            "file_y_p": string               # Path to MW file for Y (paired)
          },
          "rsp_solver": {                    # Response solver specification
            "kain": int,                     # Length of KAIN history
            "max_iter": int,                 # Maximum number of iterations
            "method": string,                # Name of electronic structure method
            "checkpoint": bool,              # Save checkpoint file
            "file_chk_x": string,            # Name of X checkpoint file
            "file_chk_y": string,            # Name of Y checkpoint file
            "orth_prec": float,              # Precision for orthogonalization
            "start_prec": float,             # Start precision for solver
            "final_prec": float,             # Final precision for solver
            "helmholtz_prec": float,         # Precision for Helmholtz operators
            "orbital_thrs": float,           # Convergence threshold orbitals
            "property_thrs": float           # Convergence threshold property
          }
        }
      ],
      "properties": {                        # Collection of properties to compute
        "polarizability": {                  # Collection of polarizabilities
           id (string): {                    # Unique id: 'pol-${frequency}'
            "precision": float,              # Operator precision
            "operator": string,              # Operator used for property
            "r_O": array[float]              # Operator gauge origin
          }
        },
        "magnetizability": {                 # Collection of magnetizabilities
          id (string): {                     # Unique id: 'mag-${frequency}'
            "frequency": float,              # Perturbation frequency
            "precision": float,              # Operator precision
            "dia_operator": string,          # Operator used for diamagnetic property
            "para_operator": string,         # Operator used for paramagnetic property
            "derivative": string,            # Operator derivative type
            "r_O": array[float]              # Operator gauge origin
          }
        },
        "nmr_shielding": {                   # Collection of NMR shieldings
          id (string): {                     # Unique id: 'nmr-${nuc_idx}${atom_symbol}'
            "precision": float,              # Operator precision
            "dia_operator": string,          # Operator used for diamagnetic property
            "para_operator": string,         # Operator used for paramagnetic property
            "derivative": string,            # Operator derivative type
            "smoothing": float,              # Operator smoothing parameter
            "r_O": array[float],             # Operator gauge origin
            "r_K": array[float]              # Nuclear coordinate
          }
        }
      },
      "fock_operator": {                     # Contributions to perturbed Fock operator
        "coulomb_operator": {                # Add Coulomb operator to Fock
          "poisson_prec": float,             # Build prec for Poisson operator
          "shared_memory": bool              # Use shared memory for potential
        },
        "exchange_operator": {               # Add Exchange operator to Fock
          "poisson_prec": float,             # Build prec for Poisson operator
          "screen": bool                     # Use screening in Exchange operator
        },
        "xc_operator": {                     # Add XC operator to Fock
          "shared_memory": bool,             # Use shared memory for potential
          "xc_functional": {                 # XC functional specification
            "spin": bool,                    # Use spin separated functional
            "cutoff": float,                 # Cutoff value for small densities
            "functionals": array[            # Array of density functionals
              {
                "coef": float,               # Numerical coefficient
                "name": string               # Functional name
              }
            ]
          }
        }
      },
      "unperturbed": {                       # Section for unperturbed part of response
        "prec": float,                       # Precision used for unperturbed system
        "localize": bool,                    # Use localized unperturbed orbitals
        "fock_operator": {                   # Contributions to unperturbed Fock operator
          "kinetic_operator": {              # Add Kinetic operator to Fock
            "derivative": string             # Type of derivative operator
          },
          "nuclear_operator": {              # Add Nuclear operator to Fock
            "proj_prec": float,              # Projection prec for potential
            "smooth_prec": float,            # Smoothing parameter for potential
            "shared_memory": bool            # Use shared memory for potential
          },
          "coulomb_operator": {              # Add Coulomb operator to Fock
            "poisson_prec": float,           # Build prec for Poisson operator
            "shared_memory": bool            # Use shared memory for potential
          },
          "exchange_operator": {             # Add Exchange operator to Fock
            "poisson_prec": float,           # Build prec for Poisson operator
            "screen": bool                   # Use screening in Exchange operator
          },
          "xc_operator": {                   # Add XC operator to Fock
            "shared_memory": bool,           # Use shared memory for potential
            "xc_functional": {               # XC functional specification
              "spin": bool,                  # Use spin separated functional
              "cutoff": float,               # Cutoff value for small densities
              "functionals": array[          # Array of density functionals
                {
                  "coef": float,             # Numerical coefficient
                  "name": string             # Functional name
                }
              ]
            }
          },
          "external_operator": {             # Add external field operator to Fock
            "electric_field": array[float],  # Electric field vector
            "r_O": array[float]              # Gauge orgigin for electric field
          }
        }
      }
    }
  },
  "constants": {                             # Physical constants used throughout MRChem
    "angstrom2bohrs": float,                 # Conversion factor from Angstrom to Bohr
    "dipmom_au2debye": float,                # Conversion factor from atomic units to Debye
    "electron_g_factor": float,              # Electron g factor in atomic units
    "fine_structure_constant": float,        # Fine-structure constant in atomic units
    "hartree2ev": float,                     # Conversion factor from Hartree to eV
    "hartree2kcalmol": float,                # Conversion factor from Hartree to kcal/mol
    "hartree2kjmol": float,                  # Conversion factor from Hartree to kJ/mol
    "hartree2simagnetizability": float,      # Conversion factor from Hartree to J T^-2
    "hartree2wavenumbers": float,            # Conversion factor from Hartree to cm^-1
    "light_speed": float                     # Speed of light in vacuo in atomic units
  }
}
Output schema
"output": {
  "success": bool,                           # Whether all requested calculations succeeded
  "schema_name": string,                     # Name of the output schema
  "schema_version": int,                     # Version of the output schema
  "provenance": {                            # Information on how the results were obtained
    "creator": string,                       # Program name
    "version": string,                       # Program version
    "nthreads": int,                         # Number of OpenMP threads used
    "mpi_processes": int,                    # Number of MPI processes used
    "total_cores": int,                      # Total number of cores used
    "routine": string                        # The function that generated the output
  },
  "properties": {                            # Collection of final properties
    "charge": int,                           # Total molecular charge
    "multiplicity": int,                     # Total spin multiplicity
    "center_of_mass": array[float],          # Center of mass coordinate
    "geometry": array[                       # Array of atoms
      {                                      # (one entry per atom)
        "symbol": string,                    # Atomic symbol
        "xyz": array[float]                  # Cartesian coordinate
      }
    ],
    "orbital_energies": {                    # Collection of orbital energies
      "spin": array[string],                 # Array of spins ('p', 'a' or 'b')
      "energy": array[float],                # Array of energies
      "occupation": array[int],              # Array of orbital occupations
      "sum_occupied": float                  # \sum_i occupation[i]*energy[i]
    },
    "scf_energy": {                          # Collection of energy contributions
      "E_kin": float,                        # Kinetic energy
      "E_nn": float,                         # Classical nuclear-nuclear interaction
      "E_en": float,                         # Classical electron-nuclear interaction
      "E_ee": float,                         # Classical electron-electron interaction
      "E_next": float,                       # Classical nuclear-external field interaction
      "E_eext": float,                       # Classical electron-external field interaction
      "E_x": float,                          # Hartree-Fock exact exchange energy
      "E_xc": float,                         # DFT exchange-correlation energy
      "E_el": float,                         # Sum of electronic contributions
      "E_nuc": float,                        # Sum of nuclear contributions
      "E_tot": float,                        # Sum of all contributions
      "Er_el": float,                        # Electronic reaction energy
      "Er_nuc": float,                       # Nuclear reaction energy
      "Er_tot": float                        # Sum of all reaction energy contributions
    },
    "dipole_moment": {                       # Collection of electric dipole moments
      id (string): {                         # Unique id: 'dip-${number}'
        "r_O": array[float],                 # Gauge origin vector
        "vector": array[float],              # Total dipole vector
        "vector_el": array[float],           # Electronic dipole vector
        "vector_nuc": array[float],          # Nuclear dipole vector
        "magnitude": float                   # Magnitude of total vector
      }
    },
    "quadrupole_moment": {                   # Collection of electric quadrupole moments
      id (string): {                         # Unique id: 'quad-${number}'
        "r_O": array[float],                 # Gauge origin vector
        "tensor": array[float],              # Total quadrupole tensor
        "tensor_el": array[float],           # Electronic quadrupole tensor
        "tensor_nuc": array[float]           # Nuclear quadrupole tensor
      }
    },
    "polarizability": {                      # Collection of polarizabilities
      id (string): {                         # Unique id: 'pol-${frequency}'
        "frequency": float,                  # Perturbation frequency
        "r_O": array[float],                 # Gauge origin vector
        "tensor": array[float],              # Full polarizability tensor
        "isotropic_average": float           # Diagonal average
      }
    },
    "magnetizability": {                     # Collection of magnetizability
      id (string): {                         # Unique id: 'mag-${frequency}'
        "frequency": float,                  # Perturbation frequency
        "r_O": array[float],                 # Gauge origin vector
        "tensor": array[float],              # Full magnetizability tensor
        "tensor_dia": array[float],          # Diamagnetic tensor
        "tensor_para": array[float],         # Paramagnetic tensor
        "isotropic_average": float           # Diagonal average
      }
    },
    "nmr_shielding": {                       # Collection of NMR shielding tensors
      id (string): {                         # Unique id: 'nmr-${nuc_idx}+${atom_symbol}'
        "r_O": array[float],                 # Gauge origin vector
        "r_K": array[float],                 # Nuclear coordinate vector
        "tensor": array[float],              # Full NMR shielding tensor
        "tensor_dia": array[float],          # Diamagnetic tensor
        "tensor_para": array[float],         # Paramagnetic tensor
        "diagonalized_tensor": array[float], # Diagonalized tensor used for (an)isotropy
        "isotropic_average": float,          # Diagonal average
        "anisotropy": float                  # Anisotropy of tensor
      }
    },
    "geometric_derivative": {                # Collection of geometric derivatives
      id (string): {                         # Unique id: 'geom-${number}'
        "electronic": array[float],          # Electronic component of the geometric derivative
        "electronic_norm": float,            # Norm of the electronic component of the geoemtric derivative
        "nuclear": array[float],             # Nuclear component of the geometric derivative
        "nuclear_norm": float,               # Norm of the nuclear component of the geometric derivative
        "total": array[float],               # Geometric derivative
        "total_norm": float                  # Norm of the geometric derivative
      }
    }
  },
  "scf_calculation": {                       # Ground state SCF calculation
    "success": bool,                         # SCF finished successfully
    "initial_energy": {                      # Energy computed from initial orbitals
      "E_kin": float,                        # Kinetic energy
      "E_nn": float,                         # Classical nuclear-nuclear interaction
      "E_en": float,                         # Classical electron-nuclear interaction
      "E_ee": float,                         # Classical electron-electron interaction
      "E_next": float,                       # Classical nuclear-external field interaction
      "E_eext": float,                       # Classical electron-external field interaction
      "E_x": float,                          # Hartree-Fock exact exchange energy
      "E_xc": float,                         # DFT exchange-correlation energy
      "E_el": float,                         # Sum of electronic contributions
      "E_nuc": float,                        # Sum of nuclear contributions
      "E_tot": float,                        # Sum of all contributions
      "Er_el": float,                        # Electronic reaction energy
      "Er_nuc": float,                       # Nuclear reaction energy
      "Er_tot": float                        # Sum of all reaction energy contributions
    },
    "scf_solver": {                          # Details from SCF optimization
      "converged": bool,                     # Optimization converged
      "wall_time": float,                    # Wall time (sec) for SCF optimization 
      "cycles": array[                       # Array of SCF cycles
        {                                    # (one entry per cycle)
          "energy_total": float,             # Current total energy
          "energy_update": float,            # Current energy update
          "mo_residual": float,              # Current orbital residual
          "wall_time": float,                # Wall time (sec) for SCF cycle
          "energy_terms": {                  # Energy contributions
            "E_kin": float,                  # Kinetic energy
            "E_nn": float,                   # Classical nuclear-nuclear interaction
            "E_en": float,                   # Classical electron-nuclear interaction
            "E_ee": float,                   # Classical electron-electron interaction
            "E_next": float,                 # Classical nuclear-external field interaction
            "E_eext": float,                 # Classical electron-external field interaction
            "E_x": float,                    # Hartree-Fock exact exchange energy
            "E_xc": float,                   # DFT exchange-correlation energy
            "E_el": float,                   # Sum of electronic contributions
            "E_nuc": float,                  # Sum of nuclear contributions
            "E_tot": float,                  # Sum of all contributions
            "Er_el": float,                  # Electronic reaction energy
            "Er_nuc": float,                 # Nuclear reaction energy
            "Er_tot": float                  # Sum of all reaction energy contributions
          }
        }
      ]
    }
  },
  "rsp_calculations": {                      # Collection of response calculations
    id (string): {                           # Response id: e.g. 'ext_el-${frequency}'
      "success": bool,                       # Response finished successfully
      "frequency": float,                    # Frequency of perturbation
      "perturbation": string,                # Name of perturbation operator
      "components": array[                   # Array of operator components
        {                                    # (one entry per Cartesian direction)
          "rsp_solver": {                    # Details from response optimization
            "wall_time": float,              # Wall time (sec) for response calculation
            "converged": bool,               # Optimization converged
            "cycles": array[                 # Array of response cycles
              {                              # (one entry per cycle)
                "symmetric_property": float, # Property computed from perturbation operator
                "property_update": float,    # Current symmetric property update
                "mo_residual": float,        # Current orbital residual
                "wall_time": float           # Wall time (sec) for response cycle
              }
            ]
          }
        }
      ]
    }
  }
}

Running a geometry optimization

In the following we will assume to have a valid user input file for the water molecule called h2o.inp, e.g. like this

world_prec = 1.0e-6
world_unit = angstrom

WaveFunction {
  method = lda
}

Molecule {
$coords
O          0.00000        0.00000        0.11779
H          0.00000        0.75545       -0.47116
H          0.00000       -0.75545       -0.47116
$end
}

A geometry optimization can be run by adding GeometryOptimizer section to any normal .inp file and setting the run keyword to true:

    GeometryOptimizer{
        run = true
    }

This will start a geometry optimization with the default settings.

Obtaining accurate forces

In the above H_2O input example the world_prec parameter is chosen really small. This is necessary to get accurate forces. If a looser precision it is chosen, the geometry optimization may not converge. Pay attention to the warning:

WARNING: Noise in force is larger than 0.2 times the larges force component!!!

Geometry optimization onvergence cannot be guaranteed!!!

This is printed when the noise level is too high. Usually, geometry optimizations will not converge when this warning is printed. In that case, either tighten the world_prec, orb_thrs (or both) _or_ loosen the convergence criterion of the geometry optimization.

Pre-relax input geometries

Running high precision multi resolution wavelet calculations is computationally expensive. It is therefore not advisable to use an input geometry with high forces, a small world_prec and start the simulation. An optimized workflow would look something like this:

  1. Optimize the geometry with a gaussian basis set. This can be done with a number of gaussian basis set codes

  2. Use inaccurate forces (world_prec ~ 1e-4) and a rather loose convergence criterion (max_force_component ~ 1e-2) for the geometry optimization for a pre-relaxation with MRChem.

  3. Do a tight geometry optimization (max_force_component ~ 5e-4) and with an accurate MRChem calculation (world_prec ~ 1e-6)

Reuse orbitals

For tight geometry optimizations where the input structure is already close to the local minimum (using cheaper pre-relaxations), it makes sense to use the orbitals from the geometry optimization iteration i for the start of iteration i+1. This feature can be enabled by setting:

use_previous_guess = true
Choosing an initial step size

If there are some problems in the first couple of geometry optimization iterations (energy and force norm increasing) the initial step size should be chosen manually. If a conservative choice (init_step_size ~ 0.8 ) does not solve the problem, the problem is usually in the input geometry (wrong units, unphysical, …) or in the potential energy surface (too much noise, error in the DFT input section, …).

Convergence problem can be analyzed by visualizing the optimization trajectory and plots of the energy and force norm versus the geometry optimization iterations.

Programmer’s Manual

Classes and functions reference

Chemistry

Classes for the chemistry overlay

Environment

Classes for the solvent environment overlay

Cavity
class Cavity : public mrcpp::RepresentableFunction<3>

Interlocking spheres cavity centered on the nuclei of the molecule.

The Cavity class represents the following function Fosso-Tande2013

\[\begin{split} C(\mathbf{r}) = 1 - \prod^N_{i=1} (1-C_i(\mathbf{r})) \\ C_i(\mathbf{r}) = 1 - \frac{1}{2}\left( 1 + \textrm{erf}\left(\frac{|\mathbf{r} - \mathbf{r}_i| - R_i}{\sigma_i}\right) \right) \end{split}\]

where \(\mathbf{r}\) is the coordinate of a point in 3D space, \(\mathbf{r}_i\) is the coordinate of the i-th nucleus, \(R_i\) is the radius of the i-th sphere, and \(\sigma_i\) is the width of the transition between the inside and outside of the cavity. The transition has a sigmoidal shape, such that the boundary is a smooth function instead of sharp boundaries often seen in other continuum models. This function is \(1\) inside and \(0\) outside the cavity.

The radii are computed as:

\[ R_{i} = \alpha_{i} R_{0,i} + \beta_{i}\sigma_{i} \]

where:

  • \(R_{0,i}\) is the atomic radius. By default, the van der Waals radius.

  • \(\alpha_{i}\) is a scaling factor. By default, 1.1

  • \(\beta_{i}\) is a width scaling factor. By default, 0.5

  • \(\sigma_{i}\) is the width. By default, 0.2 bohr

Public Functions

Cavity(const std::vector<mrcpp::Coord<3>> &coords, const std::vector<double> &R, const std::vector<double> &alphas, const std::vector<double> &betas, const std::vector<double> &sigmas)

Initializes the members of the class and constructs the analytical gradient vector of the Cavity.

inline Cavity(const std::vector<mrcpp::Coord<3>> &coords, const std::vector<double> &R, double sigma)

Initializes the members of the class and constructs the analytical gradient vector of the Cavity.

This CTOR applies a single width factor to the cavity and does not modify the radii. That is, in the formula:

\[ R_{i} = \alpha_{i} R_{0,i} + \beta_{i}\sigma_{i} \]

for every atom \(i\), \(\alpha_{i} = 1.0\) and \(\beta_{i} = 0.0\).

double evalf(const mrcpp::Coord<3> &r) const override

Evaluates the value of the cavity at a 3D point \(\mathbf{r}\).

Parameters:

r – coordinate of 3D point at which the Cavity is to be evaluated at.

Returns:

double value of the Cavity at point \(\mathbf{r}\)

inline std::vector<mrcpp::Coord<3>> getCoordinates() const

Returns centers.

inline std::vector<double> getOriginalRadii() const

Returns radii_0.

inline std::vector<double> getRadii() const

Returns radii.

inline std::vector<double> getRadiiScalings() const

Returns alphas.

inline std::vector<double> getWidths() const

Returns sigmas.

inline std::vector<double> getWidthScalings() const

Returns betas.

void printParameters() const

Print parameters.

Protected Attributes

std::vector<double> radii_0

Contains the unscaled radius of each sphere in #Center.

std::vector<double> alphas

The radius scaling factor for each sphere.

std::vector<double> betas

The width scaling factor for each sphere.

std::vector<double> sigmas

The width for each sphere.

std::vector<double> radii

Contains the radius of each sphere in #Center. \(R_i = \alpha_{i} R_{0,i} + \beta_{i}\sigma_{i}\).

std::vector<mrcpp::Coord<3>> centers

Contains each of the spheres centered on the nuclei of the Molecule.

auto gradCavity(const mrcpp::Coord<3> &r, int index, const std::vector<mrcpp::Coord<3>> &centers, const std::vector<double> &radii, const std::vector<double> &widths) -> double

Constructs a single element of the gradient of the Cavity.

This constructs the analytical partial derivative of the Cavity \(C\) with respect to \(x\), \(y\) or \(z\) coordinates and evaluates it at a point \(\mathbf{r}\). This is given for \(x\) by

\[ \frac{\partial C\left(\mathbf{r}\right)}{\partial x} = \left(1 - C{\left(\mathbf{r} \right)}\right) \sum_{i=1}^{N} - \frac{\left(x-{x}_{i}\right)e^{- \frac{\operatorname{s_{i}}^{2}{\left(\mathbf{r} \right)}}{\sigma^{2}}}} {\sqrt{\pi}\sigma\left(0.5 \operatorname{erf}{\left(\frac{\operatorname{s_{i}}{\left(\mathbf{r} \right)}}{\sigma} \right)} + 0.5\right) \left| \mathbf{r} - \mathbf{r}_{i} \right|} \]
where the subscript \(i\) is the index related to each sphere in the cavity, and \(\operatorname{s}\) is the signed normal distance from the surface of each sphere.

Parameters:
  • r – The coordinates of a test point in 3D space.

  • index – An integer that defines the variable of differentiation (0->x, 1->y and 2->z).

  • centers – A vector containing the coordinates of the centers of the spheres in the cavity.

  • radii – A vector containing the radii of the spheres.

  • width – A double value describing the width of the transition at the boundary of the spheres.

Returns:

A double number which represents the value of the differential (w.r.t. x, y or z) at point r.

Permittivity
class Permittivity : public mrchem::StepFunction

Permittivity function related to a substrate molecule and a solvent continuum. The Permittivity class represents the following function Fosso-Tande2013.

\[ \epsilon(\mathbf{r}) = \epsilon_{in}\exp\left(\left(\log\frac{\epsilon_{out}}{\epsilon_{in}} \right) \left(1 - C(\mathbf{r})\right)\right) \]
where \(\mathbf{r}\) is the coordinate of a point in 3D space, \( C \) is the #cavity function of the substrate, and \(\epsilon_{in}\) and \( \epsilon_{out} \) are the dielectric constants describing, respectively, the permittivity inside and outside the #cavity of the substrate.

Public Functions

Permittivity(std::shared_ptr<Cavity> cavity, double epsilon_in, double epsilon_out, std::string formulation)

Standard constructor. Initializes the #cavity, #epsilon_in and #epsilon_out with the input parameters.

Parameters:
  • cavity – interlocking spheres of Cavity class.

  • epsilon_in – permittivity inside the #cavity.

  • epsilon_out – permittivity outside the #cavity.

  • formulation – Decides which formulation of the Permittivity function to implement, only exponential available as of now.

double evalf(const mrcpp::Coord<3> &r) const override

Evaluates Permittivity at a point in 3D space with respect to the state of #inverse.

Parameters:

r – coordinates of a 3D point in space.

Returns:

\(\frac{1}{\epsilon(\mathbf{r})}\) if #inverse is true, and \( \epsilon(\mathbf{r})\) if #inverse is false.

DHScreening
class DHScreening : public mrchem::StepFunction

Square of the Debye-Huckel Screening parameter.

This is used for the Poisson-Boltzmann solver. The DHScreening function is defined as

\[\begin{split} \kappa^2(\mathbf{r}) = \begin{cases} \kappa^2_{out} & \text{if } \mathbf{r} \notin \Omega_{ion} \\ 0.0 & \text{if } \mathbf{r} \in \Omega_{ion} \end{cases} \end{split}\]
This can be parametrized a number of ways. The one used here is
\[ \kappa^2(\mathbf{r}) = (1 - C_{ion}(\mathbf{r})) \kappa^2_{out} \]
Where \(C_{ion}(\mathbf{r})\) is the ion accessible Cavity function.

Public Functions

DHScreening(std::shared_ptr<Cavity> cavity_ion, double kappa_out, const std::string &formulation)

Standard constructor. Initializes the #cavity_ion and #kappa_out with the input parameters.

#kappa_out is given by

\[ \kappa = \sqrt{\frac{2000 I_{0} e^2 N_a I_0}{\epsilon_{out} \epsilon_{in} k_B T}} \]
where \(N_a\) is the Avogadro constant, e is the elementary charge, \(I_0\) is the concentration of the ions, \(k_B\) is the Boltzmann constant, \(T\) is the temperature, \(\epsilon_{out}\) is the permittivity of the solvent and \(\epsilon_{in}\) is the permittivity of free space.

Parameters:
  • cavity_ion – interlocking spheres of Cavity class.

  • kappa_out – value of the screening function outside the #cavity_ion.

  • formulation – Decides which formulation of the DHScreening function to implement, only continuous screening function available.

double evalf(const mrcpp::Coord<3> &r) const override

Evaluates DHScreening at a point in 3D space.

Parameters:

r – coordinates of a 3D point in space.

Returns:

Value at point r.

Private Members

std::string formulation = {"Continuous Screening Function"}

Formulation of the DHScreening function. Only linear variable is used now.

GPESolver
class GPESolver

Solves the Generalized Poisson equation iteratively.

The Generalized Poisson equation is given by

\[ \nabla \cdot \left( \epsilon(\mathbf{r}) \nabla V(\mathbf{r}) \right) = -4\pi \rho(\mathbf{r}) \]
where \(\epsilon(\mathbf{r})\) is the permittivity, \(V(\mathbf{r})\) is the total electrostatic potential and \(\rho(\mathbf{r})\) is the molecular charge density defined as:
\[ \rho(\mathbf{r}) = \rho_{el}(\mathbf{r}) + \rho_{nuc}(\mathbf{r}) \]
where \(\rho_{el}\) is the electronic charge density and \(\rho_{nuc}\) is the nuclear charge density. The Generalized Poisson equation is solved iteratively through a set of micro-iteration on each SCF-iteration by appliation of the Poisson operator \(\mathcal{P}\) :cite:Fosso-Tande2013
\[ V_R(\mathbf{r}) = \mathcal{P} \star \left[ \rho_{eff}(\mathbf{r}) - \rho(\mathbf{r}) + \gamma_s(\mathbf{r}) \right] \]
where \(\gamma_s(\mathbf{r})\) is the surface charge distribution describing the polarization at the surface, \(\rho_{eff}(\mathbf{r})\) is the effective charge density given by \(\frac{\rho(\mathbf{r})}{\epsilon(\mathbf{r})}\) and \(V_R(\mathbf{r})\) is the reaction potential.

We utilize a so-called dynamic threshold to more easily converge the reaction potential. This is done by setting the convergence threshold of the micro-iterations to the MO update of the previous SCF iteration, unless the MO update is small enough (once the quality of the MOs is good enough, we use the default convergence threshold). Another optimization used is that we utilize the previous SCF converged Reaction potential as an initial guess for the next micro-iterations. These procedures are investigated and explained in :cite:gerez2023

Subclassed by mrchem::PBESolver

Public Functions

double setConvergenceThreshold(double prec)

Sets the convergence threshold for the micro-iterations, used with dynamic thresholding.

will check if the MO update is small enough (ten times as big) wrt. to the scf convergence threshold, if so, it will use the default convergence threshold. If not, it will use the MO update as the convergence threshold.

Parameters:

prec – value to set the convergence threshold to

Returns:

the current convergence threshold.

auto computeEnergies(const Density &rho_el) -> std::tuple<double, double>

Computes the energy contributions from the reaction potential.

We compute the reaction energy through the following integral:

\[ E_{R} = \frac{1}{2}\int \rho_{el}(\mathbf{r}) V_R(\mathbf{r}) d\mathbf{r} + \frac{1}{2} \int \rho_{nuc}(\mathbf{r}) V_R(\mathbf{r}) d\mathbf{r} \]
Each term represents the electronic and nuclear contributions to the reaction energy, respectively. We compute each term separately, and return a tuple containing both.

Parameters:

rho_el – the electronic charge density

Returns:

a tuple containing the electronic and nuclear energy contributions

Protected Functions

void computeDensities(const Density &rho_el, Density &rho_out)

computes density wrt. the density_type variable

The total charge density is given by the sum of the electronic and nuclear charge densities:

\[ \rho(\mathbf{r}) = \rho_{el}(\mathbf{r}) + \rho_{nuc}(\mathbf{r}) \]
where \(\rho_{el}\) is the electronic charge density and \(\rho_{nuc}\) is the nuclear charge density. The nuclear charge density is stored in the class variable rho_nuc, while we compute the electronic charge density from the molecular orbitals. The class variable density_type decides the density which will be computed in rho_out, options are total, electronic and nuclear.

Parameters:
  • Phi – the molecular orbitals

  • rho_out – Density function in which the density will be computed.

virtual void computeGamma(mrcpp::ComplexFunction &potential, mrcpp::ComplexFunction &out_gamma)

Computes the surface charge distibution due to polarization at the solute-solvent boundary.

The surface charge distribution is given by

\[ \gamma_s(\mathbf{r}) = \frac{\log \frac{\epsilon_{in}}{\epsilon_{out}}}{4 \pi } \left( \nabla C(\mathbf{r}) \cdot \nabla V(\mathbf{r})\right) \]
where \(\epsilon_{in}\) is the permittivity inside the cavity and \(\epsilon_{out}\) is the permittivity outside the cavity.

Parameters:
  • potential – Potential used to compute \(\nabla V(\mathbf{r})\)

  • out_gamma – ComplexFunction in which the surface charge distribution will be computed.

mrcpp::ComplexFunction solvePoissonEquation(const mrcpp::ComplexFunction &ingamma, const Density &rho_el)

Iterates once through the Generalized Poisson equation to compute the reaction potential.

Constructs the effective charge density \(\rho_{eff}(\mathbf{r})\) and the Poisson operator \(\mathcal{P}\) as:

\[ V_R(\mathbf{r}) = \mathcal{P} \star \left[ \rho_{eff}(\mathbf{r}) - \rho(\mathbf{r}) + \gamma_s(\mathbf{r}) \right] \]
where \(\gamma_s(\mathbf{r})\) is the surface charge distribution describing the polarization at the surface, \(\rho_{eff}(\mathbf{r})\) is the effective charge density given by \(\frac{\rho(\mathbf{r})}{\epsilon(\mathbf{r})}\) and \(V_R(\mathbf{r})\) is the reaction potential.

Parameters:
  • ingamma – the surface charge distribution

  • Phi – the molecular orbitals

Returns:

the reaction potential

void accelerateConvergence(mrcpp::ComplexFunction &dfunc, mrcpp::ComplexFunction &func, KAIN &kain)

Uses KAIN to accelerate convergece of the reaction potential.

Parameters:
  • dfunc – the current update of the reaction potential

  • func – the current reaction potential

  • kain – the KAIN object

void runMicroIterations(const mrcpp::ComplexFunction &V_vac, const Density &rho_el)

Iterates through the application of the Poisson operator to Solve the Generalized Poisson equation.

Iterating through the application of the Poisson operator is done through a set of micro-iterations, where the convergence threshold is set to the MO update of the previous SCF iteration. The micro-iterations are done through the following steps:

  1. Compute the total potential as \(V(\mathbf{r}) = V_{vac}(\mathbf{r}) + V_R(\mathbf{r})\)

  2. Compute the surface charge distribution \(\gamma_s(\mathbf{r})\) with computeGamma

  3. Compute a new reaction potential \(V_R(\mathbf{r})\) by application of the Poisson operator with solvePoissonEquation

  4. Calculate the update of the reaction potential as \(\Delta V_R(\mathbf{r}) = V_R(\mathbf{r}) - V_R^{old}(\mathbf{r})\)

  5. Accelerate convergence of the reaction potential through KAIN

  6. Update the reaction potential as \(V_R(\mathbf{r}) = V_R^{old}(\mathbf{r}) + \Delta V_R(\mathbf{r})\)

  7. Check if the reaction potential has converged, if not, repeat from step 1.

Parameters:
  • V_vac – the vacuum potential

  • Phi_p – the molecular orbitals

mrcpp::ComplexFunction &solveEquation(double prec, const Density &rho_el)

Setups and computes the reaction potential through the microiterations.

An initial guess of the reaction potential is computed with the following steps:

  1. Set the total potential as \(V(\mathbf{r}) = V_{vac}(\mathbf{r})\)

  2. Compute the surface charge distribution \(\gamma_s(\mathbf{r})\) from this potential

  3. Iterate once through the application of the Poisson operator to return the initial guess of the reaction potential \(V_R(\mathbf{r})\)

the method then runs the micro-iterations through runMicroIterations and returns the converged reaction potential. If this is not the first SCF iteration, the previous converged reaction potential is used as an initial guess for the micro-iterations.

Parameters:
  • V_vac – the vacuum potential

  • Phi_p – the molecular orbitals

Returns:

The converged reaction potential for the current SCF iteration

void resetComplexFunction(mrcpp::ComplexFunction &function)

Frees the memory used by the FunctionTrees of the input Complexfunction and reallocates them.

This is done to avoid memory leaks when the ComplexFunction is used in the micro-iterations.

Parameters:

function – the ComplexFunction to reset

Protected Attributes

SCRFDensityType density_type

Decides which density we will use for computing the reaction potential, options are total, electronic and nuclear.

PBESolver
class PBESolver : public mrchem::GPESolver

Solves the Poisson-Boltzmann equation iteratively.

The Poisson-Boltzmann equation is solved iteratively using the SCRF procedure outlined in GPESolver. The Poisson-Boltzmann equation models the electrostatic potential in a solvent with electrolytes. The general equation for electrolyte solutions is given by

\[ \nabla \cdot \epsilon \nabla V_{tot} = -4\pi\left(\rho_{el} + \rho_{nuc} + \rho_{ext}\right) \]
where \( V_{tot} \) is the total electrostatic potential, \( \epsilon\) is the permittivity function of the solvent, \(\rho_{el}\) is the electronic charge density, \(\rho_{nuc}\) is the nuclear charge density and \(\rho_{ext}\) is the external charge density. In the general form for the Poisson-Boltzmann equation, the external charge density is approximated by assuming a boltzmann distribution of the ions.
\[ \rho_{ext} = \sum_{i}^{N_{ion}} q_i e I_{0, i}\exp\left(-\frac{q_i e V_{tot}}{k_B T}\right) \]
where \(I_{0, i}\) is the concentration of the i-th ion species, \(q_i\) is the charge of the i-th ion species, \(k_B\) is the Boltzmann constant and \(T\) is the temperature. In this implementation we assume a 1:1 ( \(I_{0, 0} = I_{0, 1}\)) electrolyte soluttion of ions of same opposite charges ( \(z_i = +1, -1\)). This simplifies the external density to
\[ \rho_{ext} = -2 e I_{0} \sinh\left(\frac{e V_{tot}}{2 k_B T}\right) \]
where \(I_{0}\) is the concentration of the ions. We can plug this into the first equation (and massage terms a bit) to arrive at the Poisson-Boltzmann equation for 1:1 electrolyte solution
\[ \nabla^2 V_{R} = -4\pi\frac{1-\epsilon}{\epsilon}\left(\rho_{el} + \rho_{nuc}\right) + \gamma_s - \kappa^2 \sinh\left(V_{tot}\right) \]
where \(\gamma_s\) is the surface charge density, \(\kappa\) is obtained from the DHScreening class and \(V_{R}\) is the reaction potential.

Subclassed by mrchem::LPBESolver

Protected Functions

virtual void computeGamma(mrcpp::ComplexFunction &potential, mrcpp::ComplexFunction &out_gamma) override

constructs the surface chage distribution and adds it to the PB term

Method follows the implementation in GPESolver::computeGamma, but adds the PB term to the surface charge distribution.

Parameters:
  • potential[in] the potential to compute \(\nabla V\) from

  • out_gamma[out] the ComplexFunction in which to store the result

virtual void computePBTerm(mrcpp::ComplexFunction &V_tot, const double salt_factor, mrcpp::ComplexFunction &pb_term)

Computes the PB term.

The PB term is computed as \( \kappa^2 \sinh(V_{tot}) \) and returned.

Parameters:
  • V_tot[in] the total potential

  • salt_factor[in] the salt factor deciding how much of the total concentration to include in the PB term

  • pb_term[out] the ComplexFunction in which to store the result

Protected Attributes

DHScreening kappa

the DHScreening object used to compute the PB term \(\kappa\)

LPBESolver
class LPBESolver : public mrchem::PBESolver

Solves the Linearized Poisson-Boltzmann equation iteratively.

The Linearized Poisson-Boltzmann equation is solved iteratively using the SCRF procedure outlined in GPESolver and PBESolver. The linearized Poisson-Boltzmann equation is a further simplification of the Poisson-Boltzmann equation, outlined in PBESolver, where the PB term is expanded and only the linear term is included. This is a good approximation for low ionic strength solutions. The linearized Poisson-Boltzmann equation is given by

\[ \nabla^2 V_{R} = -4\pi\frac{1-\epsilon}{\epsilon}\left(\rho_{el} + \rho_{nuc}\right) + \gamma_s - \kappa^2 V_{tot} \]
where \(\gamma_s\) is the surface charge density, \(\kappa\) is obtained from the DHScreening class and \(V_{R}\) is the reaction potential.

Protected Functions

virtual void computePBTerm(mrcpp::ComplexFunction &V_tot, const double salt_factor, mrcpp::ComplexFunction &pb_term) override

Computes the PB term.

The PB term is computed as \( \kappa^2 V_{tot} \) and returned.

Parameters:
  • V_tot[in] the total potential

  • salt_factor[in] the salt factor deciding how much of the total concentration to include in the PB term

  • pb_term[out] the ComplexFunction in which to store the result

Initial Guess

Classes providing the initial guess of the orbitals

Properties

Classes for the calculation of molecular properties

Quantum Mechanical Functions

Classes to handle quantum mechanical functions such as electronic density, molecular orbitals.

QMOperators

The classes that implement quantum mechanical operators

QMPotential
class QMPotential

Operator defining a multiplicative potential.

Inherits the general features of a complex function from mrcpp::ComplexFunction and implements the multiplication of this function with an Orbital. The actual function representing the operator needs to be implemented in the derived classes, where the *re and *im FunctionTree pointers should be assigned in the setup() function and deallocated in the clear() function.

XCOperator
class XCOperator

DFT Exchange-Correlation operator containing a single XCPotential.

This class is a simple TensorOperator realization of

XCPotential
class XCPotential

Exchange-Correlation potential defined by a particular (spin) density.

The XC potential is computed by mapping of the density through a XC functional, provided by the XCFun library. There are two ways of defining the density:

1) Use getDensity() prior to setup() and build the density as you like. 2) Provide a default set of orbitals in the constructor that is used to compute the density on-the-fly in setup().

If a set of orbitals has NOT been given in the constructor, the density MUST be explicitly computed prior to setup(). The density will be computed on-the-fly in setup() ONLY if it is not already available. After setup() the operator will be fixed until clear(), which deletes both the density and the potential.

LDA and GGA functionals are supported as well as two different ways to compute the XC potentials: either with explicit derivatives or gamma-type derivatives.

ReactionPotential
class ReactionPotential : public mrchem::QMPotential

class containing the solvent-substrate interaction reaction potential obtained by solving

\[ \Delta V_{R} = -4\pi\left( \rho\frac{1-\epsilon}{\epsilon} + \gamma_s \right) \]
where \(\rho\) is the total molecular density of a solute molecule, \(\epsilon\) is the Permittivity function of the continuum and \(\gamma_s\) is the surface charge distribution.

Subclassed by mrchem::ReactionPotentialD1, mrchem::ReactionPotentialD2

Public Functions

explicit ReactionPotential(std::unique_ptr<GPESolver> scrf, std::shared_ptr<mrchem::OrbitalVector> Phi = nullptr, bool mpi_share = false)

Initializes the ReactionPotential class.

Parameters:
  • scrf – A GPESolver instance which contains the parameters needed to compute the ReactionPotential.

  • Phi – A pointer to a vector which contains the orbitals optimized in the SCF procedure.

inline void updateMOResidual(double const err_t)

Updates the solver.mo_residual member variable. This variable is used to set the convergence criterion in the dynamic convergence method.

Protected Attributes

std::unique_ptr<GPESolver> solver

A GPESolver instance used to compute the ReactionPotential.

std::shared_ptr<OrbitalVector> orbitals

Unperturbed orbitals defining the ground-state electron density for the SCRF procedure.

SCF Solver

Classes for the resolution of the SCF equations of HF and DFT