Natural Transition Orbitals - TDDFT

I have stumbled upon a problem with generating NTOs (preferably in MOLDEN format, but cubes would also be acceptable) for a relatively simple TDDFT case. The input goes as follows:

$molecule
read
$end

$rem
jobtype sp
method cam-b3lyp
basis gen
purecart 11
PRINT_GENERAL_BASIS true
MAX_SCF_CYCLES 500
SCF_GUESS read
SCF_CONVERGENCE 9
scf_final_print true
MEM_STATIC 2000
MEM_TOTAL 20000
CIS_N_ROOTS 5
CIS_TRIPLETS false
CIS_RELAXED_DENSITY true
RPA 2
IQMOL_FCHK true
MOLDEN_FORMAT true
STATE_ANALYSIS true
NTO_PAIRS 5
MAKE_CUBE_FILES true
PLOTS true
XC_GRID 000250000974
cis_ampl_print 1
print_orbitals 5000
$end

$plots
grid_points 200 200 200
total_density 0-4
transition_density 1-3
attachment_detachment_density 1-3
natural_transition_orbital 1-3
$end

The message printed out at the end of the output file is this:

Plotting NTOs for the following states: 1 2 3

Q-Chem fatal error occurred in module libmdc/newfileman.C, line 376:

FileMan error: End of file reached prematurely reading (2947592) bytes in file FILE_NTO_COEFS_RPA
Path: /net/ascratch/people/plgucandrze/slurm_jobdir/3926400/tmp/savename/401.0

Is this because there is sth wrong in my input, or the environment (memory/disk space etc) causes such problems?

Any pointers are most welcome.
Marcin

This type of question has been answered in previous threads. In any case, I would suggest plotting orbital in one format only for a single job.

If you are interested in Molden format, then leave MOLDEN_FORMAT = true in your input but remove IQMOL_FCHK, MAKE_CUBE_FILES, PLOTS keywords along with the $plots section.

Lastly, I think the error is raised when attempting to plot cube files while using the STATE_ANALYSIS keyword in the same job.

CIS_AMPL_ANAL = TRUE
MAKE_CUBE_FILES = TRUE

should be enough for CIS/TDDFT

From the state_analysis point of view, I think the problem is using RPA=2. It might be safer to run RPA=True.

And, again, I would reduce the number of keywords. If you want Molden output, then remove the CUBE, FCHK and $plots parts.

Thank you for the kind replies. I have somehow managed to overcome the problem by generating the fchk file first, then using Theodore to obtain the MOs.mld file, and eventually by asking Theodore to perform the transition density analysis itself. Otherwise it did not want to do the Omega partitioning for the molecular fragments.
I will now try to simplify the procedure by following the hints from you. So thank you again!
Marcin

Hi Marcin,

There are a couple of ways to visualize with Q-Chem, at least 3 that I know of. It can be somewhat confusing when there are multiple ways to do the same task.

(1) Using the combination of NTO_PAIRS and GUI = 2. The NTOs can be visualized through the fchk file:

$molecule
0 1
  C    0.0000000   -0.0000000   -0.6133791
  O   -0.0000000    0.0000000    0.6060734
  H    0.0000000    0.9391300   -1.1555819
  H    0.0000000   -0.9391300   -1.1555819
$end

$rem
   METHOD           PBE0
   BASIS            6-31+G*
   CIS_N_ROOTS      2   
   CIS_TRIPLETS     false
   RPA              2
   CIS_RELAXED_DENSITY  TRUE
   NTO_PAIRS        4
   GUI              2
$end

(2) Using the new $plots functionalities. The NTOs for each specified state will appear in the “xxx.plots” directory after the job is finished:

$molecule
0 1
  C    0.0000000   -0.0000000   -0.6133791
  O   -0.0000000    0.0000000    0.6060734
  H    0.0000000    0.9391300   -1.1555819
  H    0.0000000   -0.9391300   -1.1555819
$end

$rem
   METHOD           PBE0
   BASIS            6-31+G*
   CIS_N_ROOTS      2   
   CIS_TRIPLETS     false
   RPA              2
   CIS_RELAXED_DENSITY  TRUE
   NTO_PAIRS        4
   PLOTS            TRUE
   MAKE_CUBE_FILES  TRUE
$end

$plots
  grid_points 50 50 50
  natural_transition_orbital 1-2 
$end

The NTO cube files are in the ..., HONTO-1, HONTO, LUNTO, LUNTO+1, ... order.

(3) Using libwfa (with STATE_ANALYSIS = TRUE). Note that WFA_LEVEL = 4 is needed to trigger the generation of NTO cube files, which might be something that should be changed:

$molecule
0 1
  C    0.0000000   -0.0000000   -0.6133791
  O   -0.0000000    0.0000000    0.6060734
  H    0.0000000    0.9391300   -1.1555819
  H    0.0000000   -0.9391300   -1.1555819
$end

$rem
   METHOD           PBE0
   BASIS            6-31+G*
   CIS_N_ROOTS      2   
   CIS_TRIPLETS     false
   RPA              2
   CIS_RELAXED_DENSITY  TRUE
   MAKE_CUBE_FILES  true
   PLOTS            true
   STATE_ANALYSIS   true
   NTO_PAIRS        4
   WFA_LEVEL        4
$end

$plots
   grid_points 50 50 50
$end

With libwfa, you also automatically get cube files for attachment/detachment/difference density and electron/hole/transition density.

Note:

  1. RPA = 2 seems fine
  2. With libwfa, no matter what value I give to NTO_PAIRS, it always only generates one pair. This might be something that can be easily fixed. This is because only significant NTOs are printed by libwfa (controlled by WFA_ORB_THRESH, default is 0.05 for NTO cube files)

If you are interested in TheoDORE, the thing that you will need is the file ctnum_mulliken.om. This is picked up by TheoDORE for the Omega partitioning. At the moment, you can’t specify fragments directly in Q-Chem.