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_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..).