## Indirect Nuclear Spin-Spin Coupling Tensor Tutorial

Performing the relativistic NMR indirect nuclear spin-spin coupling tensor calculations in ReSpect requires the following sequence of steps

SCF(1c) → SCF(4c) → NMR

where the initial SCF(1c) step represents the self-consistent field (SCF) procedure based on a scalar-relativistic, one-component (1c) Hamiltonian and this step is primarily meant to provide a very good guess of initial molecular orbitals for subsequent fully relativistic calculations, where both scalar- and spin-orbit corrections are included variationally. In the second SCF(4c) step, the actual relativistic molecular orbitals are determined by means of a relativistic four-component (4c) SCF involving Dirac—Coulomb Hamiltonian. Finally, NMR indirect nuclear spin-spin coupling tensors are evaluated in the last step (NMR), starting from the relativistic molecular orbitals obtained in the previous SCF(4c).

To perform the SCF(1c) calculation, execute the command

/path/to/ReSpect/respect --scf --inp=1c --scratch=/path/to/scratch/directory

where arguments mandatory to `respect`

mean

**--scf**

starts the SCF procedure;**--inp**

specifies a name of the input file;**--scratch**

specifies a path to the scratch directory.

A simple example of the input file **1c.inp** for a scalar relativistic one-component DFT/PBE0 calculation of HBr with the Douglas–Kroll–Hess Hamiltonian looks like

#scf procedure with 1c scalar DKH2 Hamiltonian scf: geometry: Br 0.00000 0.00000 0.00000 H 1.41400 0.00000 0.00000 method: ks-dkh2/pbe0 basis: H: upcJ-1 Br: dyall-vdz charge: 0 multiplicity: 1 nc-model: point maxiterations: 30 convergence: 1.0e-5

Note that a comprehensive list of all SCF keywords can be found **here**.

Having the initial SCF(1c) step finished, let's move on to the next SCF(4c) step. In order to have the 1c molecular orbitals ready for a restart, we execute the linux command first

ln -sf 1c.50 4c.50

which soft-links the ReSpect checkpoint file **1c.50** generated in the previous SCF(1c) calculation to a new checkpoint file **4c.50**. Now, we can perform the second SCF(4c) step

/path/to/ReSpect/respect --restart --scf --inp=4c --scratch=/path/to/scratch/directory

where the additional argument **--restart** enforces `respect`

to search for the initial molecular orbitals in the checkpoint file **4c.50**. An example of the input file **4c.inp** is

#4c SCF Dirac-Kohn-Sham DFT calculation of HBr #molecule with the Dirac--Coulomb Hamiltonian scf: geometry: Br 0.00000 0.00000 0.00000 H 1.41400 0.00000 0.00000 method: mdks/pbe0 basis: H: upcJ-1 Br: dyall-vdz charge: 0 multiplicity: 1 nc-model: gauss maxiterations: 30 convergence: 1.0e-6 #NMR spin-spin coupling calculations with RMB sscc: print-level: long maxiterations: 30 convergence: 1.0e-5 reference-atom: 2 active-atoms: 1

Here, we replaced the 1c DKH2 Hamiltonian `method:ks-dkh2/dft-functional`

by the 4c Dirac—Coulomb Hamiltonian `method:mdks/dft-functional`

.

Having the SCF(4c) calculation finished successfully, let's perform the final NMR step by running the command

/path/to/ReSpect/respect --sscc --inp=4c --scratch=/path/to/scratch/directory

where the input block `sscc:`

takes control of the setup for the NMR indirect nuclear spin-spin coupling tensor calculation. A comprehensive list of all SSCC keywords can be found **here**.

As a final note, there are several important and worth-to-remember aspects associated with the input syntax, namely

**the input is case-insensitive**

This means that the program does not distinguish between uppercase and lowercase letters.**the input is insensitive to the number of blank lines and/or comment lines**

All comments begin with the number sign (#), can start anywhere on a line and continue until the end of the line.**the input is compliant with the dictionary syntax of the YAML markup language**

This means that each input line is represented either by a single`block:`

statement or by a simple`keyword:value`

pair, such as

block1: keyword1: value1 keyword2: value2 ... block2: keyword3: value3 keyword4: value4 ... block3: keyword5: value5 keyword6: value6 ...

It is essential to remember that all members of one `block:`

are **lines beginning at the same indentation level**. **Whitespace indentation** is used to denote the block structure; however, **tab characters are never allowed as indentation**. The only exception to the YAML-based input syntax is the block `geometry:`

which utilizes a simple xyz format for the molecular geometry specification.

## TIPS & TRICKS

**Q: How to scale the speed of light in NMR calculations?**

Set the cscale option in the SCF calculation. The scaling value is then automatically transferred to the SSCC calculation.

**Q: Is it possible to scale spin-orbit interaction in NMR calculations?**

No. Currently one can only turn off SO interaction by setting soscale option to zero in the SCF calculation. This setting is then automatically transferred to the SSCC calculation.

**Q: Is there a way to launch SCF and NMR calculations without the need to explicitly setup the scratch path by "--scratch=/path/to/scratch/directory"?**

Yes, the argument "--scratch=/path/to/scratch/directory" can be saved to the file **.respectrc** in your home directory. If both the file and the command line argument exist, then ReSpect takes the scratch directory setting from the command line.

**Q: How to set the number of processors for parallel SCF and NMR calculations?**

For OpenMP parallel calculations, the number of processors can be controlled from the command line by the argument **--nt= N**, where

*N*ideally refers to the total number of physical cores of a machine. Thus, the command line for launching an OpenMP parallel SCF or NMR job reads

/path/to/ReSpect/respect --nt=N --scf --inp=my-input-file /path/to/ReSpect/respect --nt=N --sscc --inp=my-input-file

Note, however, we have assumed here that the scratch path is setup through the file **.respectrc** (see the previous discussion).

**Q: What is the best basis set for the SSCC calculations?**

For light elements we recommend to use uncontracted Jensen's basis sets optimized specifically for the indirect nuclear spin-spin calculations, termed upcJ-X, where X = 1, 2, 3 stands for the double, triple, and quadruple zeta quality. For heavy elements the good choice is the uncontracted Dyall's valence X-zeta basis set, termed dyall-vXz, where X = d, t, q stands for the double, triple, and quadruple zeta quality.

**Q: I want to run a multiple sscc calculations starting from the same four-component molecular orbitals. Is there a way to avoid recalculating the 4c scf job multiple times?**

Yes, one can run the sscc calculation with command

/path/to/ReSpect/respect --sscc --inp=sscc-input --start-data=4c

where sscc-input.inp file contains only the `sscc:`

input section

sscc: print-level: long maxiterations: 30 convergence: 1.0e-5 reference-atom: 2 active-atoms: 1

The above command will take the initial data from 4c.50 and performs the sscc calculation according to the input in sscc-input.inp. After successful end of the sscc job, the final output data will be stored in the file 4c-sscc-input.out_sscc. This step can be repeated multiple times with different sscc input files but always starting from the same SCF(4c).

## Latest Publications

### JCP just accepted two our theoretical articles on "Four-component relativistic eigenvalue- and damped-response TDDFT theory on excitations energies, electronic absorption, and natural circular dischroism using a stable noncollinear DFT ansatz"

## Useful Links

## Our Contacts

Department of Chemistry

UiT The Arctic University of Norway

Tromsø, NO-9037 Norway

Email: info@respectprogram.eu