NMR Shielding Tensor Tutorial

Performing a parallel relativistic NMR shielding tensor calculation in ReSpect requires the following sequence of steps

SCF(4c) → NMR

where the initial SCF(4c) step represents the self-consistent field (SCF) procedure. The actual NMR shielding tensors are evaluated in the second step (NMR), starting from the relativistic molecular orbitals obtained in the previous SCF(4c).

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

respect --scf --inp=my-input-file --nt=4  --scratch=/path/to/scratch/directory

where arguments mandatory to respect mean

  • --scf
    starts the SCF procedure;

  • --inp
    specifies a name of the input file;

  • --nt
    specifies the number of physical cores required for parallel execution;

  • --scratch
    specifies a path to the scratch directory.

The input file my-input-file.inp should contain an input block scf: with some SCF-specific keywords and an input block cs: with some CS-specific keywords. A comprehensive list of all SCF keywords can be found here. A simple example of my-input-file.inp looks like

#4c SCF Dirac-Kohn-Sham DFT calculation of HBr 
#molecule with the Dirac--Coulomb Hamiltonian

       H      1.41400    0.00000    0.00000
       Br     0.00000    0.00000    0.00000

    method: mdks/pbe0
            H:  upcS-1
            Br: dyall-vdz

    charge:        0
    multiplicity:  1
    maxiterations: 30
    nc-model:      gauss
    convergence:   1.0e-6

#NMR shielding tensor calculation with RMB-GIAO 

    maxiterations: 30
    gauge:         giao
    convergence:   1.0e-5

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

respect --cs --inp=my-input-file --nt=4 --scratch=/path/to/scratch/directory

where the input block cs: takes control of the setup for the NMR shielding tensor calculation. A comprehensive list of all NMR shielding tensor 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  
          keyword3: value3
          keyword4: value4
               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.


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 CS 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 CS 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: I want to run a multiple cs 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 cs calculation with command

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

where the cs-input.inp file contains only the cs: input block


    maxiterations: 30
    gauge:         giao
    convergence:   1.0e-5

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

Latest Posts

Useful Links

Our Contacts

Hylleraas Centre
Department of Chemistry
UiT The Arctic University of Norway
Tromsø, NO-9037 Norway
Email: info@respectprogram.eu