Skip to content

MRSF-TDDFT

Source access and public downloads

Repository paths identify files in the licensed engine source; they are not public downloads. For freely downloadable .oqp inputs and results, see Worked Examples.

Recommended .oqp input

OpenQP 1.3.0 includes the .oqp parser. Start with the physical calculation you want:

mrsf/bhhlyp/6-31g* opt
geom="h2o.xyz"

This optimizes S0. Write opt(S1) for the next singlet or opt(T0) for the lowest triplet. Do not enter a ROHF multiplicity: OpenQP selects the internal MRSF reference automatically. Add controls only when needed:

mrsf(nstate=3)/bhhlyp/6-31g* opt(S1,maxit=100) scf(conv=1e-08)
geom="h2o.xyz"

See the .oqp Quick Start.

MRSF-TDDFT uses input.method=tdhf, tdhf.type=mrsf, and usually a triplet ROHF reference. Although it is configured through the TDHF/TDDFT response section, MRSF-TDDFT is used for multiconfigurational ground-state surfaces as well as excited-state surfaces.

MRSF-TDDFT combines the two high-spin spin-flip reference components into a mixed-reference response problem. This keeps the linear-response workflow close to TDDFT while reducing the spin contamination that can obscure ordinary spin-flip TDDFT roots. See the References page for the original theory, analytic-gradient implementation, and recent accounts.

Energy

The concise form defaults to the singlet manifold:

mrsf(nstate=3)/bhhlyp/6-31g*
geom="h2o.xyz"

This calculates S0--S2. Select another physical manifold through the driver, not through the route:

mrsf(nstate=3)/bhhlyp/6-31g* energy(T0)
geom="h2o.xyz"

This calculates T0--T2. All-electron MRSF also accepts energy(Q0) for a quintet manifold. Route parentheses accept nstate only.

For MRSF-TDHF, use the explicit basis-only route:

mrsf-tdhf(nstate=3)/6-31g*
geom="h2o.xyz"

Related basis-only routes are sf-tdhf(...), umrsf-tdhf(...), and tda-tdhf(...); cis(...) is an accepted alias of tda-tdhf(...).

Python:

from oqp.openqp import OpenQP

job = OpenQP("h2o_mrsf", silent=1)
job.molecule(geometry="water", charge=0)
job.theory.mrsf(functional="bhhlyp", basis="6-31g*", nstate=3)

mol = job.run()
results = mol.get_results()
print("Ground/reference energy:", results["energy"])
print("TD energies:", results["td_energies"])

Canonical .oqp input:

mrsf(nstate=3)/bhhlyp/6-31g* energy(S0)
geom="molecule.xyz"

Runnable .oqp: examples/MRSF-TDDFT/H2O_BHHLYP-MRSFTDDFT_ENERGY.oqp.

For post-run NTOs, attachment/detachment densities, transition densities, cube files, QCSchema export, FCIDUMP export, and external-code comparisons, see MRSF Analysis and Interoperability.

Gradient

In canonical input, select the physical state directly; an omitted state defaults to S0:

mrsf/bhhlyp/6-31g* grad(S2)
geom="h2o.xyz"

Here physical S2 lowers to internal response root 3, matching the traditional and Python examples below.

Python:

from oqp.openqp import OpenQP

job = OpenQP("h2o_mrsf_grad", silent=1)
job.molecule(geometry="water", charge=0)
job.theory.mrsf(functional="bhhlyp", basis="6-31g*", nstate=3)
job.workflow.gradient(state=3)

mol = job.run()
gradient = mol.get_grad()

The same physical derivative in a canonical file is:

mrsf/bhhlyp/6-31g* grad(S2)
geom="molecule.xyz"

Runnable .oqp: examples/MRSF-TDDFT/H2O_BHHLYP-MRSFTDDFT_GRADIENT.oqp.

Notes

  • Logs distinguish the physical target (S0, S1, and so on) from the triplet ROHF reference and internal response-root index. The reference is an implementation requirement, not the spin or identity of the requested target state.
  • MRSF states are zero-based within every physical spin manifold. S0, T0, and Q0 lower to response root 1; S1, T1, and Q1 lower to root 2.
  • In Python, job.theory.mrsf(...) supplies the usual ROHF triplet reference for MRSF-TDDFT, as does the canonical mrsf route. In internal metadata, tdhf.multiplicity=1, 3, or 5 is the physical response multiplicity, not the SCF reference multiplicity.
  • MRSF state numbering follows the spin-flip/MRSF target-state list. state=1 in Python, or grad=1 in properties, means the lowest MRSF target state, which can be the multiconfigurational ground state. This differs from ordinary TDHF/TDDFT, where state 1 means the first excited state.
  • The internal tdhf.nstate must include every state requested by gradients, NACME, SOC, or EKT analysis; .oqp input widens the root count from the driver's state labels automatically, so mrsf/bhhlyp/6-31g* grad(S2) solves three roots without a route nstate.
  • For SOC, mrsf(nstate=3)/... soc requests S0--S2 and T0--T2. Use mrsf/... soc(ns=3,nt=5) for unequal counts; ns and nt must appear together and cannot be combined with route nstate.
  • NAMD uses the same zero-based labels. namd(T0,scheme=Overlap,soc=true) means the first triplet MCH state and lowers to md.init_state=T0; it must not be written as T1 merely because the internal response root is 1.
  • For ordinary TDDFT, see TDDFT and TDHF.
  • For spin-flip TDDFT without mixed-reference correction, use SF-TDDFT.
  • UMRSF-TDDFT uses tdhf.type=umrsf with a UHF triplet reference. Besides energies it provides analytic nuclear gradients (runtype=grad) and the gradient-driven optimize, meci, mecp and tci workflows for HF, LDA/GGA and global-hybrid functionals; job.theory.umrsf(...) is the compact-API counterpart of job.theory.mrsf(...). Range-separated, meta-GGA and double-hybrid functionals and custom spin-pair-coupling scales are energy-only, and Hessians, NACME and SOC are not available for UMRSF. Gradient-driven UMRSF runs accept singlet and triplet response states (tdhf.multiplicity=1 or 3; roots are numbered from 1 within that manifold, so grad=1 with multiplicity=1 is S0). In Python, the multiplicity argument of job.theory.umrsf(...) sets the UHF reference; select a triplet response with a following job.tdhf(multiplicity=3). UMRSF gradients also accept effective core potentials, and the input checker rejects properties.td_prop=True, tdhf.ixcore and QM/MM (qmmm_flag=True) for them because the relaxed density and ESPF charges those paths consume are not produced. See examples/UMRSF-TDDFT/H2CO_BHHLYP_UMRSFTDDFT_GRAD.oqp and, with an ECP, examples/ECP/HBr_BHHLYP-UMRSFTDDFT_GRAD.oqp.

Scientific references

MRSF-TDDFT.