V5.4 - TDDFT triggered without being called for vacuum and pcm freq calcs

Hi, in v5.4 during simple freq calcs in vacuum and pcm, TDDFT is being called to compute analytical hessian. Ive also noticed xc_grid tag triggers the call but if not used, the calcs run into convergence issues. Ive tested freq calc for vac, pcm, smd and cosmo ,and have noticed TDDFT trigger only for vac and pcm. Moreover, for GGA (BP86) basis, im running into memory issues regardless of how large MEM_TOTAL is set to because TDDFT is called. For hybrid (-xd) I dont run into memory issue even though here also TDDFT is called for vac and pcm. This seems to be a bug?

Here is a sample input script that triggers TDDFT for me with a call of “Full subspace dimension requested for CIS/TDDFT”

$molecule
0 1
H 0 0 0
H 0 0 1
$end

$rem
job_type = freq
basis = def2-svpd
max_scf_cycles = 100
xc_grid = 3
gen_scfman = true
method = wb97x-d
geom_opt_max_cycles = 200
$end

Hi Hetal,
I just ran your input with a pre-release version of Q-Chem 6.1 (latest trunk), and I do not see the behavior you are referring to. Can you copy specific section the output? It’s possible that this behavior was fixed, but it seems weird to me that I have never seen it before because your input file is not very exotic.

Hi, thanks for your reply. This seems to be happening for v5.4, at the moment I am restricted to using this version until the HPC upgrades to qchem 6. For that exact input file, here is the section of the output with TDDFT call.


                Cartesian Multipole Moments

Charge (ESU x 10^10)
             0.0000
Dipole Moment (Debye)
     X       0.0000      Y       0.0000      Z      -0.0000
   Tot       0.0000
Quadrupole Moments (Debye-Ang)
    XX      -2.3457     XY       0.0000     YY      -2.3457
    XZ       0.0000     YZ      -0.0000     ZZ      -1.4380
Octopole Moments (Debye-Ang^2)
   XXX       0.0000    XXY       0.0000    XYY       0.0000
   YYY       0.0000    XXZ      -0.0000    XYZ       0.0000
   YYZ      -0.0000    XZZ       0.0000    YZZ       0.0000
   ZZZ      -0.0000
Hexadecapole Moments (Debye-Ang^3)
  XXXX      -2.5090   XXXY       0.0000   XXYY      -0.8363
  XYYY       0.0000   YYYY      -2.5090   XXXZ       0.0000
  XXYZ      -0.0000   XYYZ       0.0000   YYYZ      -0.0000
  XXZZ      -1.1667   XYZZ       0.0000   YYZZ      -1.1667
  XZZZ       0.0000   YZZZ      -0.0000   ZZZZ      -4.1977

Calculating MO derivatives via CPSCF
Full subspace dimension requested for CIS/TDDFT
MAX_CIS_SUBSPACE fits in available memory
1 0 9 0.1022744
2 6 3 0.0089006
3 8 1 0.0003430
4 9 0 0.0000000 Converged
Time for AOints: 0.0 s (CPU) 0.0 s (wall)

For me, this problem remain unnoticed until i was computing larger molecules for which the MAX_CIS_SUBSPACE did not fit in the available memory.

Thanks,
Hetal

Current structure of the source code definitely bypasses that for frequency jobs. A look at the comments and commits suggests I may have fixed this in Sept. 2021, which would have showed up in 5.4.2 bug-fix release (however, I’m not 100% certain… I fix a lot of bugs). Because I don’t routinely keep older versions of Q-Chem compiled, I suggest that you send email to Q-Chem support, perhaps there is a workaround.

By the way, the reason that you perhaps don’t seem this for COSMO or SMD is that I don’t think analytic frequencies (Hessians) are available for those methods. Assuming I’m correct, there should be a warning near the top of the Q-Chem output file about finite-difference derivatives. We do have analytic Hessians for gas-phase (TD)DFT and for (TD)DFT with C-PCM, which is the default PCM.

Hi, you are correct, that is definitely what i have noticed as well. It tries calling TDDFT whenever analytical Hessians are possible which happens to be for vacuum and PCM. I did run it on both 5.4 and 5.4.2, and 5.4.2 gave a warning at the top that analytical Hessian is not possible and will use a numerical approach. Currently, i am using ideriv=1 for all my calcs but do you know if it’s possible to use analytical Hessian for 5.4 in vac and pcm while avoiding TDDFT, ideriv =2 calls TDDFT. I will email Q-Chem support otherwise. Thank you so much for your help, greatly appreciated!

In principle there is not reason to call TDDFT, so this looks like a bug (which appears to be fixed in most recent version). Please contact Q-Chem support to ask about a workaround.