Tutorial -- Nuclear Spin-Rotation Constant (NSR)
Performing a parallel relativistic calculation of nuclear spin-rotation constant (C-tensor) is a simple two-step process
respect --scf --inp=my-input-file --nt=4 --scratch=/path/to/scratch/directory respect --nsr --inp=my-input-file --nt=4 --scratch=/path/to/scratch/directory
The first call of respect
with the argument --scf performs the self-consistent field (SCF) optimization of ground-state molecular orbitals, which is a necessary prerequisite for the following C-tensor calculation. The second call of respect
with the argument --nsr actually performs the nuclear spin-rotation constant simulation.
The other arguments mandatory to respect
are
--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 the input block scf:
with some SCF-specific keywords, and the input block nsr:
with some C-tensor-specific keywords. A comprehensive list of all keywords can be found for SCF here and for nuclear spin-rotation constant here. A simple example of my-input-file.inp looks like
#SCF input block #4c Dirac-Kohn-Sham DFT (B3LYP) calculation of AsH3 with Dirac--Coulomb Hamiltonian scf: geometry: As H 1 1.5324 H 1 1.5324 2 91.01 H 1 1.5324 2 91.01 3 91.0281 method: mdks/b3lyp basis: dyall-cvdz charge: 0 multiplicity: 1 maxiterations: 30 convergence: 1.0e-6 nc-model: point #nuclear charge model #input block for the nuclear spin-rotation constant nsr: active-atoms: all #eval. C-tensor for all atoms isotope: As: 75 H: 1 maxiterations: 30 convergence: 1.0e-5
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 singleblock:
statement or by a simplekeyword: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 NSR calculations?
Set the cscale:
option in the SCF calculation. The scaling value is then automatically transferred to the NSR calculation.
Q: Is it possible to scale the spin-orbit interaction in NSR calculations?
No. Currently one can only turn off the SO interaction by setting soscale:
option to zero in the SCF calculation. This setting is then automatically transferred to the NSR calculation.
Q: Is there a way to launch SCF and NSR 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 run multiple NSR calculations, which will start from the same four-component molecular orbitals? Is there a way to avoid recalculating the 4c scf job multiple times?
One can run the --nsr calculation with the command
/path/to/ReSpect/respect --nsr --inp=nsr-input --nt=4 --start-data=4c
where the last argument --start-data refers to the file with converged SCF molecular orbitals (in this example to 4c.50). In other words, the above command will take the initial SCF data from 4c.50 file and it will perform the --nsr calculation according to the input nsr-input.inp file. Now, it is sufficient if the nsr-input.inp file contains only the nsr:
input block, for example
nsr: active-atoms: all #eval. C-tensor for all atoms isotope: As: 75 H: 1 maxiterations: 30 convergence: 1.0e-5
After successful end of the NSR job, the final NSR output data will be saved in the file 4c-nsr-input.out_nsr. This step can be repeated multiple times with different NSR input files but always starting from the same SCF molecular orbitals.
Latest Publications
Book chapter on relativistic real-time electron dynamics
Book chapter on relativistic theory of EPR and (p)NMR
Useful Links
Our Contacts
Department of Chemistry
UiT The Arctic University of Norway
Tromsø, NO-9037 Norway
Email: info@respectprogram.eu