Spin-orbit coupling


Inclusion of spin-orbit (SO) coupling with Lumen is trivial.
It is sufficient you include it in your DFT calculation and Lumen will automatically read it and use during the calculations. Notice that SO coupling is present the total number of bands double, one band for each spinor, and therefore calculations become more computational expensive (see also SO implementation in QuantumEspresso or Abinit). Here we present a simple example for the MoS2.
This tutorial is similar to the linear response one.

You follow the steps from 1 to 6 of the linear response tutorial using the MoS2 input files that contain the spin-orbit coupling.

7) Real-time dynamics
You generate the input file with the command lumen -u -F input_lr.in

nlinear                      # [R NL] Non-linear optics
% NLBands
 25 | 28 |                   # [NL] Bands
%
NLstep=   0.0100       fs    # [NL] Real Time step length
NLtime= 75.00000       fs    # [NL] Simulation Time
NLverbosity= "high"           # [NL] Verbosity level (low | high)
NLintegrator= "INVINT"       # [NL] Integrator ("EULEREXP/RK4/RK2EXP/HEUN/INVINT/CRANKNIC")
NLCorrelation= "IPA"         # [NL] Correlation ("IPA/HARTREE/TDDFT/LRC/JGM/LHF/LSEX")
NLLrcAlpha= 0.000000         # [NL] Long Range Correction
% NLEnRange
 0.200000 | 8.000000 | eV    # [NL] Energy range
%
NLEnSteps= 1                 # [NL] Energy steps
NLDamping= 0.05000    eV    # [NL] Damping
NLGOscll= 1            RL    # [NL] Number of G in the oscillators
NLGvecs= 1011          RL    # [NL] Number of G vectors in NL dynamics for Hartree/TDDFT
NLInSteps= 1                 # [NL] Intensity steps for Richardson extrap. (1-3)
% ExtF_Dir
 0.000000 | 1.000000 | 0.000000 |        # [NL ExtF] Versor
%
ExtF_Int= 1000.        kWLm2 # [NL ExtF] Intensity
ExtF_Damp= 2.000000    fs    # [NL ExtF] Damping
ExtF_kind= "DELTA"           # [NL ExtF] Kind(SIN|SOFTSIN|RES|ANTIRES|GAUSS|DELTA|PULSE)
ExtF_StartIdx= 2             # [NL ExtF] Electric field starting index (>=2)


In this calculation we use a small damping 0.05 eV and consequently a longer simulation time NLtime=75.00000 fs, we use also the integrator INVINT that is faster but less accurate of the CRANKNIC but in the case of independent particle it gives good results. . You run the simulation with the command lumen -F input_lr.in, it will take 30 minutes on a single core.


8) Result Analysis
Results can be analyzed with ypp tool, by doing ypp -u:
nonlinear                    # [R] NonLinear Optics Post-Processing
Xorder= 1                    # Max order of the response functions
% TimeRange
-1.000000 |-1.000000 | fs    # Time-window where processing is done
%
ETStpsRt=  500               # Total Energy steps
% EnRngeRt
 0.000000 | 5.000000 |  eV    # Energy range
%
DampMode= "NONE"             # Damping type ( NONE | LORENTZIAN | GAUSSIAN )
DampFactor=  0.10000   eV    # Damping parameter


Respect to the standard response file, we changed the energy range and the number of points in order to see the spin-orbit splitting in optics:

Results are compared with linear response theory, the plot and the files to generate it are available here.
Notice that spin-orbit coupling can be used in non-linear response SHG or THG and with different approximation for the correlation (HARTREE, TDDFT, TDPFT, RT-BSE etc..).