Skip to content

Spin-Orbit Coupling and g-tensor Calculation

Spin-Orbit Coupling

Spin-Orbit Coupling (SOC) is an important requirement for evaluating a number of molecular magnetic properties.1 In HUMMR, SOC can be treated in the framework of Quasi-Degenerate Perturbation Theory which can be regarded as a molecular equivalent to atomic Russell-Saunders (or LS) coupling. This approach corresponds to the diagonalization of the SOC Hamiltonian in the basis of nonrelativistic multiplets that were obtained as roots of a preceding CASSCF (CISolver FCI) or MCSCF (CISolver HCI) calculation. This type of calculation is invoked by setting the DoSOC keyword to true.

Following are the sample inputs for FCI-SOC and HCI-SOC calculations:

fci-soc.inp
General
  CalcType CASSCF
  Charge 1
  Mult 2
  OrcaJSONName orca.json
  Basis def2-svp
End

CASSCF
  NEl 3
  NOrb 4
  NRoots 2
  CISolver FCI
  MaxIter 30
  OrbStep FNR
  DoSOC true
End

Geom
  Li 0.0 0.0 0.0
  F  0.0 0.0 5.0
End
hci-soc.inp
General
  CalcType CASSCF
  Charge 1
  Mult 2
  Basis def2-svp
  OrcaJSONNAME orca.json
End

CASSCF
  NEl 3
  NOrb 4
  NRoots 2
  CISolver HCI
  MaxIter 35
  DoSOC true
End

CI
  DoCIPSIonHCI True
  EpsilonGen 1e-2
  EpsilonHCI 1e-5
End

Geom
  Li 0.0 0.0 0.0
  F  0.0 0.0 5.0
End

SOC Output

The Results are printed in the "SOC Calculation" section of the HUMMR ouput file. Following are example outputs:

Expand to show SOC output snippets
fci-soc.out
===============
SOC calculation
===============

  Calculating SOMF one-electron integrals...        done 7.40e-03 s
  Calculating SOMF two-electron integrals...        done 7.30e-02 s
  Transforming SOMF Integrals from Cartesian to Spherical basis...

  =================================
  SOC with CASSCF Diagonal Energies
  =================================
  Constructing SOC matrix                        ...done
      Non-zero SOC Matrix elements in cm^-1
      <Mult, Root, Ms  |H|Mult, Root, Ms  > 
      <   2,    0,  0.5|H|   2,    1,  0.5> =    0.000 + i * -125.500    at (  0,  2)
      <   2,    0, -0.5|H|   2,    1, -0.5> =    0.000 + i *  125.500    at (  1,  3)

  Diagonalizing Hamiltonian Matrix               ...done

  Total Hamiltonian Matrix Real:
              0            1            2            3     
    0   -106.51319953  -0.00000000   0.00000000   0.00000000
    1      0.00000000-106.51319953  -0.00000000   0.00000000
    2      0.00000000  -0.00000000-106.51319544  -0.00000000
    3      0.00000000   0.00000000   0.00000000-106.51319544

  Total Hamiltonian Matrix Imaginary:
              0            1            2            3     
    0     -0.00000000   0.00000000  -0.00057182  -0.00000000
    1      0.00000000   0.00000000  -0.00000000   0.00057182
    2      0.00057182   0.00000000   0.00000000   0.00000000
    3      0.00000000  -0.00057182   0.00000000  -0.00000000

  Order of states in above matrices: Mult/Root/Ms
  Spin-Orbit Coupled Eigen-values:
      E(  0) =    -106.513769306090 Eh          0.00 cm-1
      E(  1) =    -106.513769306090 Eh          0.00 cm-1
      E(  2) =    -106.512625662358 Eh        251.00 cm-1
      E(  3) =    -106.512625662358 Eh        251.00 cm-1

  Spin-Orbit Coupled Eigenstates:
  State(  0) =    -106.513769306090 Eh         0.00 cm-1
          Weight          Real           Imag       Mult    Root     Ms
        0.50178900     0.00000000    -0.70837067     2        0      0.5
        0.49821100    -0.70584063    -0.00000000     2        1      0.5

  State(  1) =    -106.513769306090 Eh         0.00 cm-1
          Weight          Real           Imag       Mult    Root     Ms
        0.50178900    -0.00000000    -0.70837067     2        0     -0.5
        0.49821100     0.70584063     0.00000000     2        1     -0.5

  State(  2) =    -106.512625662358 Eh       251.00 cm-1
          Weight          Real           Imag       Mult    Root     Ms
        0.49821100     0.00000000     0.70584063     2        0      0.5
        0.50178900    -0.70837067     0.00000000     2        1      0.5

  State(  3) =    -106.512625662358 Eh       251.00 cm-1
          Weight          Real           Imag       Mult    Root     Ms
        0.49821100    -0.00000000    -0.70584063     2        0     -0.5
        0.50178900    -0.70837067    -0.00000000     2        1     -0.5

  SOC calculation done in       0.0222 seconds.

In the first example, the SOC calculation was done on top of a FCI-CASSCF calculation for a doublet with 2 roots. The Spin-Orbit Coupled Eigenstates are printed at the bottom of this section. For an Eigenstate, it's corresponding Eigenvalue (Real) and Eigenvector (Complex) is printed as follows:

soc.out
   Spin-Orbit Coupled Eigenstates:
   State(  0) =    -106.513769306090 Eh         0.00 cm-1
           Weight          Real           Imag       Mult    Root     Ms
         0.50178900     0.00000000    -0.70837067     2        0      0.5
         0.49821100    -0.70584063    -0.00000000     2        1      0.5

   State(  1) =    -106.513769306090 Eh         0.00 cm-1
           Weight          Real           Imag       Mult    Root     Ms
         0.50178900    -0.00000000    -0.70837067     2        0     -0.5
         0.49821100     0.70584063     0.00000000     2        1     -0.5

   State(  2) =    -106.512625662358 Eh       251.00 cm-1
           Weight          Real           Imag       Mult    Root     Ms
         0.49821100     0.00000000     0.70584063     2        0      0.5
         0.50178900    -0.70837067     0.00000000     2        1      0.5

   State(  3) =    -106.512625662358 Eh       251.00 cm-1
           Weight          Real           Imag       Mult    Root     Ms
         0.49821100    -0.00000000    -0.70584063     2        0     -0.5
         0.50178900    -0.70837067    -0.00000000     2        1     -0.5

   SOC calculation done in       0.0222 seconds.
Getting a more detailed output

To get a more detailed output, set the keyword PRINTLEVEL to greater than or equal to 2 in the General keyword block. This will print how the SOC matrix is calculated in more detail. Following is a sample input for such a calculation

soc.inp
General
  CalcType CASSCF
  Charge 1
  Mult 2
  ORCAJSONName orca.json
  Basis def2-svp
  AuxBasis def2-svp-C
  PRINTLEVEL 2
End

CASSCF
  NEl 3
  NOrb 4
  NRoots 3
  FullCIType FCI
  MaxIter 35
  OrbStep SuperCIPTDIIS
  SwitchOrbStep DIIS
  FullConvergence true
  DOSOC true
End

Geom
  Li 0.0 0.0 0.0
  F  0.0 0.0 5.0
End

RI Approximation for SOMF Integrals

To utilize the RI Approximation for evaluating the SOMF Integrals in a SOC calculation, the DORISOMF keyword has to be set to true in the Integrals Block of the HUMMR input file. In this case, the Coulomb contribution to the two-electron part is computed using a resolution-of-the-identity approach and hence requires definition of an auxiliary basis set in the General keyword block. The exchange contribution to the two-electron part of the SOMF integrals is calculated using a one-center approximation when DORISOMF is set to true. Following is a sample input:

soc_using_risomf.inp
General
  CalcType CASSCF
  Charge 1
  Mult 2
  ORCAJSONName orca.json
  Basis def2-svp
  AuxBasis def2-svp-C
End

CASSCF
  NEl 3
  NOrb 4
  NRoots 3
  FullCIType FCI
  MaxIter 35
  OrbStep SuperCIPTDIIS
  SwitchOrbStep DIIS
  FullConvergence true
  DOSOC true
End

Integrals
  DORISOMF true
End

Geom
  Li 0.0 0.0 0.0
  F  0.0 0.0 5.0
End

Reminder

Do not forget to set the AuxBasis keyword in the General Block


g-tensor Calculation

To calculate the g-tensor in HUMMR, set the DOSOC and GTENSOR calculation keywords to true in the CASSCF block. The g-tensor is calculated using the Gerloch-McMeeking formulation. 1,2

Important Note

The g-tensor calculation requires the DOSOC keyword to be set to true in the CASSCF block.

Info

As implemented in the HUMMR, the g-tensor can only be calculated for Kramers' Systems i.e., half-integer spin systems (for eg. doublets, quartets, sextets and so on). 2

As with the SOC calculation, the g-tensor calculation can be done for the following CISolver:

  • FCI
  • HCI

Following is a sample input:

fci_gtensor.inp
General
  CalcType CASSCF
  Charge 1
  Mult 2
  ORCAGBWName LiF_input.gbw
  Basis sv
end

CASSCF
  NEl 3
  NOrb 4
  NRoots 2
  FINALACTORBS UNCHANGED
  FullCIType FCI
  MaxIter 0
  DOSOC true
  gTensor true
end

Geom
  Li 0.0 0.0 0.0
  F  0.0 0.0 5.0
End

g-tensor Output

The results are printed in the "g-tensor Calculation" section of the HUMMR output file. Following is an example output:

Expand to show soc.out snippet
fci_gtensor.out
  ********************
  g-Tensor Calculation
  ********************

  Setting-up the g-Tensor Calculation for Kramers' system (half-integer spin system)...

  Getting the Ground State Kramers' Partners...

  Ground State Kramers' Partners:
    State(  0) =    -106.513769305973  Eh
              Real           Imag
        0.00000000    -0.70837067
       -0.00000000    -0.00000000
       -0.70584063    -0.00000000
        0.00000000     0.00000000

    State(  1) =    -106.513769305973  Eh
              Real           Imag
        0.00000000    -0.00000000
        0.00000000     0.70837067
        0.00000000    -0.00000000
       -0.70584063    -0.00000000

  Generating the Spin Angular Momentum Matrices...

  Printing the Spin Angular Momentum Matrices in Spin-Orbit Coupled Basis...

  S(x) Real:
              0            1            2            3
    0      0.00000000  -0.00178900   0.00000000   0.49999680
    1     -0.00178900  -0.00000000  -0.49999680   0.00000000
    2      0.00000000  -0.49999680   0.00000000  -0.00178900
    3      0.49999680   0.00000000  -0.00178900  -0.00000000

  S(y) Imag:
              0            1            2            3
    0      0.00000000   0.00178900   0.00000000  -0.49999680
    1     -0.00178900   0.00000000  -0.49999680   0.00000000
    2     -0.00000000   0.49999680   0.00000000   0.00178900
    3      0.49999680  -0.00000000  -0.00178900   0.00000000

  S(z) Real:
              0            1            2            3
    0      0.50000000   0.00000000   0.00000000  -0.00000000
    1      0.00000000  -0.50000000   0.00000000   0.00000000
    2      0.00000000   0.00000000   0.50000000  -0.00000000
    3     -0.00000000   0.00000000  -0.00000000  -0.50000000

  Generating the Orbital Angular Momentum Matrices...

  Evaluating the Orbital Angular Momentum Integrals in AO Basis...

==============================================
Orbital Angular Momentum Integrals Evaluation
==============================================

  Orbital angular momentum integrals evaluation done in       0.0007 sec

  Printing the Orbital Angular Momentum Matrices in Spin-Orbit Coupled Basis...

  L(x) Imag:
              0            1            2            3
    0      0.00000000   0.00000000   0.00000000   0.00000000
    1     -0.00000000   0.00000000   0.00000000   0.00000000
    2     -0.00000000  -0.00000000   0.00000000   0.00000000
    3     -0.00000000   0.00000000  -0.00000000   0.00000000

  L(y) Imag:
              0            1            2            3
    0      0.00000000  -0.00000000  -0.00000000  -0.00000000
    1      0.00000000   0.00000000  -0.00000000   0.00000000
    2      0.00000000   0.00000000   0.00000000  -0.00000000
    3      0.00000000   0.00000000   0.00000000   0.00000000

  L(z) Imag:
              0            1            2            3
    0     -0.00000000   0.00000000   0.00000000   0.00000000
    1     -0.00000000  -0.00000000   0.00000000   0.00000000
    2     -0.00000000  -0.00000000  -0.00000000   0.00000000
    3     -0.00000000   0.00000000  -0.00000000  -0.00000000

  g-Tensor Calculation set-up done...

  Calculating the g-Tensor...

  G-Tensor Matrix:
              0            1            2
    0      0.00005133  -0.00000000   0.00000000
    1     -0.00000000   0.00005133  -0.00000000
    2      0.00000000  -0.00000000  16.01845732

  g-Tensor Matrix:
              0            1            2
    0      0.00716432  -0.00000000   0.00000000
    1     -0.00000000   0.00716432  -0.00000000
    2      0.00000000  -0.00000000   4.00230650

  g-Factors:
    g-1    =       0.007164315685
    g-2    =       0.007164315685
    g-3    =       4.002306500341
    g-iso  =       1.338878377237

  g-Shifts (in ppt):
    Δg-1   =   -1995.154988677331
    Δg-2   =   -1995.154988677331
    Δg-3   =    1999.987195978754
    Δg-iso =    -663.440927125303

  Orientation:
              0            1            2
    0     -1.00000000  -0.00000000  -0.00000000
    1     -0.00000000   1.00000000   0.00000000
    2      0.00000000   0.00000000  -1.00000000

  g-Tensor calculation done in       0.0273 seconds...

Total run time:    0 days   0 hours   0 minutes and  4 seconds

The above output section is printed out after the corresponding SOC calculation is done, since the Kramers' pair from the SOC calculation is required to calculate the g-tensor. The final g-factors and g-shifts are printed out in the end as following:

fci_gtensor.out
   g-Factors:
    g-1    =       0.007164315685
    g-2    =       0.007164315685
    g-3    =       4.002306500341
    g-iso  =       1.338878377237

   g-Shifts (in ppt):
    Δg-1   =   -1995.154988677331
    Δg-2   =   -1995.154988677331
    Δg-3   =    1999.987195978754
    Δg-iso =    -663.440927125303