Spin-Orbit Coupling¶
OpenQP supports MRSF-TDDFT spin-orbit coupling through runtype=soc.
SOC mixes spin-free electronic states through relativistic one-electron terms
and, when requested, a mean-field treatment of the two-electron SOC operator.
This workflow is useful when intersystem crossing, phosphorescence, or
singlet-triplet mixing is important. See the
References page for OpenQP's
relativistic MRSF-TDDFT SOC method and the mean-field SOC operator background.
Input style:
[input]
runtype=soc
method=tdhf
functional=bhhlyp
basis=6-31G(2df,p)
soc_2e=1
[scf]
type=rohf
multiplicity=3
scal_rel=2
[tdhf]
type=mrsf
nstate=12
Python style:
from oqp.openqp import OpenQP
job = OpenQP("h2o_soc", silent=1)
job.molecule(geometry="water", charge=0)
job.theory.mrsf(functional="bhhlyp", basis="6-31G(2df,p)", nstate=12)
job.workflow.soc(soc_2e=1, scal_rel=2)
mol = job.run()
soc = mol.get_soc()
Runnable inputs:
SOC Terms¶
[input] soc_2e controls the SOC Hamiltonian. The current MRSF-SOC driver forms
one-electron Breit-Pauli SOC matrix elements and can add a mean-field
two-electron SOC contribution:
| Value | Meaning |
|---|---|
0 |
One-electron SOC terms only. |
1 |
One-electron plus mean-field two-electron SOC terms. |
SOC workflows currently require MRSF-TDDFT: a triplet ROHF reference and
[tdhf] type=mrsf.
The SOC driver computes both singlet and triplet response roots internally, so
Python scripts should use job.workflow.soc(...) after
job.theory.mrsf(...) rather than setting
job.tdhf.multiplicity.
The Python helper sets [scf] scal_rel=2 by default for the SOC workflow; pass
scal_rel=0, 1, or 2 to override it.
Scalar Relativistic Correction¶
Scalar relativistic correction is separate from SOC. It changes the spin-free
one-electron core Hamiltonian and does not mix spin states by itself. In the
current OpenQP input surface, the exposed scalar-relativistic keyword is
[scf] scal_rel:
| Value | Meaning |
|---|---|
0 |
No scalar relativistic correction. |
1 |
First-order Douglas-Kroll-Hess correction. |
2 |
First- and second-order Douglas-Kroll-Hess correction. |
Use scal_rel when the spin-free Hamiltonian should include DKH scalar
relativistic effects. Use runtype=soc and soc_2e when the calculation needs
spin-orbit coupling. X2C support is under implementation and should be
documented as a user-facing option only after an OpenQP keyword is exposed.