Contents
- RESP module for response properties based on HF and DFT
- Some caveats before using this module
- Quick guides by examples
RESP module for response properties based on HF and DFT
Keywords for general information
IPRT
Print level, >1 gives more information, >2 give more information about integral evaluations.
NPRT
CHCK
Check the interface with several external packages.
CTHRD
Keyworks for processing excited-state information
METHOD
=1, ground state gradients; =2, excited-state calculations which will load TD-DFT output.
NFILES
Linked with istore value in TD-DFT input for loading output.
Keyword for geometric derivatives
GEOM: NORDER
GEOM enables geometric derivatives, NORDER=1, gradient and fo-NACMEs; =2, hessian (not implemented yet.)
Keywords for linear response calculations
LINE
Enable linear response
REDUCED
Solve the response equation in its reduced form [(A-B)(A+B)-w2](X+Y)=Rvo+Rov (not preferred).
POLA: AOPER, BOPER, BFREQ
Polarizabiity: <<A;B>>(wB), where the operators A and B can be dipole (DIP), quadruple (QUA), SOC (HSO), EFG.
Keywords for quadratic response calculations
QUAD
Enable quadratic response function (QRF) calculations
HYPE: AOPER, BOPER, BFREQ, COPER, CFREQ
Hyperpolarizability: <<A;B,C>>(wB,wC)
SINGLE:STATES
Single residue of QRF, STATES can be used to specify the number of states followed by a detailed specification via the triple (ifile,isym,istate).
DOUBLE: PAIRS
Double residue of QRF, PAIRS can be used to specify the number of pairs followed by a detailed specification via two triples (ifile,isym,istate,jfile,isym,jstate).
FNAC
First-order nonadiabatic couplings
NORESP
Neglect the response part of transition density matrix in DOUBLE and FNAC calculations (recommended)
Keywords for finite difference calculations
FDIF
Enable finite difference calculations
STEP
followed by a real number for the step size, default 0.001 [unit].
BOHR
The default unit is angstrom, to use bohr. This keyword must be specified.
IGNORE
Ignore the recomputation of excitation energies for check consistency.
Some caveats before using this module
0. Thresholds in dft_prescreen.F90 have set very tight.
1. Convergence
2. xxx
Quick guides by examples
The following examples give the minimal inputs for starting response calculations:
Examples: ground-state geometric derivatives
Ground-state gradients
$resp GEOM norder 1 method 1 $end
Ground-state hessians
Not implemented yet.
Examples: response properties based on response functions
Polarizabilities
Hyperpolarizabilities
Single residues of QRF: spin-free properties
Single residues of QRF: spin-dependent properties
Double residues of QRF: spin-free properties
Double residues of QRF: spin-dependent properties
Examples: excited-state properties based on analytic derivatives
Excited state dipole
Excited state gradient
== Examples: first-order nonadiabatic couplings ===
Analytic derivative approach
Finite-difference approach
$COMPASS Title nh3 Basis sto-3g Geometry C 0.00000000 -1.20809142 -1.14173975 C 0.00000000 -1.20797607 0.25342015 C 0.00000000 0.00000000 0.95085852 C -0.00000000 1.20797607 0.25342015 C -0.00000000 1.20809142 -1.14173975 C 0.00000000 0.00000000 -1.83922155 H 0.00000000 -2.16045397 -1.69142002 H 0.00000000 -2.16044427 0.80300713 H -0.00000000 2.16044427 0.80300713 H -0.00000000 2.16045397 -1.69142002 H 0.00000000 0.00000000 -2.93882555 F 0.00000000 0.00000000 2.30085848 End geometry skeleton group c(1) nosym $END $xuanyuan direct schwarz $end $scf RHF charge 0 spin 1 THRESHCONV 1.d-10 1.d-8 OPTSCR 1 iaufbau 0 $end $tddft imethod 1 isf 0 iexit 2 itda 1 idiag 1 istore 1 crit_e 1.d-10 crit_vec 1.d-8 lefteig AOKXC DirectGrid $end $resp iprt 1 QUAD FNAC single states 1 1 1 2 double pairs 1 1 1 1 1 1 2 norder 1 method 2 nfiles 1 FDIF step 0.001 ignore 1 noresp $end
To use finite-difference, a script fdiff.py should be used as
./fbdiff.py run.sh input.inp > log
After the calculation is done, an output file input.out will present in the current directory. The log file saves the information during the calculations.
Note: If FDIF is omitted, the analytic calculation will be carried out by simply using the run.sh script.