rt-TDDFT and OCCUP


Just Got Here
Dear all,

I've again a problem with the OCCUP keyword:

I want to do a rt-TDDFT calculation for an excited molecule. Therefore I use the following (shortened) input-file:

title "Cu oxo TD-B3LYP excitation"
echo
scratch_dir /tmp/Nwchem

memory total 2500 mb

start Cu_oxo

geometry "system" units angstroms nocenter noautoz noautosym
 Cu                -1.37626700   -0.00002100   -0.00022800
 [...]
 H                 -2.85367600   -1.70711100    1.06158200
end

basis
 * library cc-pvdz file /pc2work/anlu/nwchem-6.3-src.2013-05-28/src/basis/libraries/
end

charge 2


dplot
   TITLE CU
   vectors "CU_ground.movecs"
   LimitXYZ
   -8.0 8.0 100
   -8.0 8.0 100
   -8.0 8.0 100
   spin total
   gaussian
   output Dichte_ref_groundstate.cube
end


dft
 odft
 xc b3lyp
 mult 1
 maxiter 400
 vectors input atomic output "CU_ground.movecs"
end

## Compute ground state of the system
task dft energy
task dplot

unset dft:*

OCCUP
 72 72
 1.0 1.0 #Orbital 1
 1.0 1.0
 1.0 1.0
 1.0 1.0
 1.0 1.0 #Orbital 5
 [...]
 1.0 1.0 #Orbital 60
 1.0 1.0
 1.0 1.0
 0.070086937 1.0
 1.0 1.0
 1.0 1.0 # 65
 1.0 1.0
 1.0 1.0
 0.940028887 1.0
 1.0 1.0
 1.0 1.0 #Orbital 70
 0.929913062 0.0
 0.062511272 0.0
end

dft
 odft
 xc b3lyp
 mult 1
 maxiter 400
 vectors input "CU_ground.movecs" output "Cu_oxo.movecs"
 noscf
end
task dft energy

unset dplot:*
dplot
   TITLE CU
   LimitXYZ
   -8.0 8.0 100
   -8.0 8.0 100
   -8.0 8.0 100
   spin total
   gaussian
end

rt_tddft
  tmax 300.0
  dt 0.2
  load vectors "Cu_oxo.movecs"

  print *

  visualization
    tstart 0.0        # start visualization at this time
    tend 299.8        # stop visualization at this time
    dplot             # post-process density matrices into cube files after propagation
  end
end
task dft rt_tddft


(The basic idea is to calculate the groundstate and occupy higher orbitals with the OCCUP-keyword afterwards. This is done in a noSCF calculation. The output for the rt-TDDFT calculation is then:

                             Open shell propagation
                              ----------------------
 
 
 Initial state: Imported open shell MO eigenvectors
 --------------------------------------------------
 
   Vector      Occupation     Eigenvalue [au]
 --------------------------------------------
         1        1.00       -3.23392348E+02
         2        1.00       -3.23392345E+02
[...]
        63        0.07       -6.22068371E-01
        64        1.00       -6.06523644E-01
        65        1.00       -6.06305144E-01
        66        1.00       -5.77292864E-01
        67        1.00       -5.76451052E-01
        68        0.94       -5.55072444E-01
        69        1.00       -5.52763761E-01
        70        1.00       -5.23793842E-01
        71        0.93       -4.04032406E-01
        72        0.06       -3.96755861E-01
        73        0.00       -2.56850444E-01
[...]

   Vector      Occupation     Eigenvalue [au]
 --------------------------------------------
         1        1.00       -3.23392348E+02
         2        1.00       -3.23392345E+02
[...]
Integral file          = /tmp/Nwchem/Cu_oxo.aoints.0
 Record size in doubles =  65536        No. of integs per rec  =  32766
 Max. records in memory =      0        Max. records in file   =   2526
 No. of bits per label  =     16        No. of bits per value  =     64


 #quartets = 2.284D+07 #integrals = 5.884D+08 #direct =  1.1% #cached = 98.9%


 Grid_pts file          = /tmp/Nwchem/Cu_oxo.gridpts.0
 Record size in doubles =  12289        No. of grid_pts per rec  =   3070
 Max. records in memory =     39        Max. recs in file   =      2219

<rt_tddft>:      0.00000        ### Propagation started ###
<rt_tddft>:      0.00000        ### Checks passed ###
<rt_tddft>:      0.00000        ### Saved density matrix snapshot ###
<rt_tddft>:      0.00000   2.587733604000E+003     # CPU time
<rt_tddft>:      0.00000   1.597777275029E+003     # Enuc
<rt_tddft>:      0.00000  -8.437766477621E+003     # Ecore
<rt_tddft>:      0.00000   3.233989488196E+003     # Ecoul
<rt_tddft>:      0.00000  -2.062673754170E+002     # Exc(1)
<rt_tddft>:      0.00000   0.000000000000E+000     # Exc(2)
<rt_tddft>:      0.00000  -3.812267089813E+003     # Etot
<rt_tddft>:      0.00000   1.615626388229E-008     # Eadded
<rt_tddft>:      0.00000  -7.000000000000E+001     # Charge [system] (alpha spin)
<rt_tddft>:      0.00000  -7.000000000000E+001     # Charge [system] (beta spin)
<rt_tddft>:      0.00000  -1.400000000000E+002     # Charge [system] (total spin)
<rt_tddft>:      0.00000   [...] all lower Orbitals nearly 1.0, Orbital 70:  9.999999551251E-001 
                                   Orbital 71: 1.603641419205E-007  
     # MO Occupations (alpha spin)
[...]


I'm focusing on the occupation of the 71th orbital: rt-TDDFT seems to read the correct occupation (0.93) from the file. I expect to have nearly the same occupation for the timestep t=0. But as you can see in the output the occupation decreased from 0.93 to 1.603641419205E-007 - why? Furthermore if I subtract the written charge density for the timestep t=0 from the charge density of the groundstate there are NO differences in the cubefiles (not even in the last digit).

Can you tell me what I did wrong? Or is rt-TDDFT not able to work together with the OCCUP-keyword?

Thank you very much for help :-)

Andreas

Just Got Here
Hi Andreas,

RT-TDDFT has not been tested to use occup, but it *might* work.

After doing a noscf occup, and using these vectors to start propagation (with no external electric field), you should see a strange strongly oscillating dipole moment, as you slingshot away from the non-ground state initial condition. If you don't use occup (or alternatively just fill up as in the ground state) you should see no dipole oscillations. This tells you that you are indeed pulling in the manually occup'd movecs. Whether or not the resulting dynamics are what you think is something else.

I suspect that the printed movecs might also be incorrect as they are projected onto the initial condition rather than the true ground state.

Email me and we can do some simple tests: klopata AT lsu DOT edu

Ken

Just Got Here
Dear all,

I'm having the same problem (I'm using NWChem 6.3), that is: after a dft calculation I would like to change the occupation of some molecular orbitals and to start a real-time tddft run from the new density matrix "prepared" by changing the occupations.

Is this problem solved in the latest version of NWChem?

I'm copying below my input file.

Thanks for helping,
Silvio Pipolo


memory total 60000 mb
title "glycine oscillations "
echo
scratch_dir ./scratch
permanent_dir ./perm

start glycine
geometry "system" units angstroms nocenter noautoz noautosym
 N        -1.42928993     0.53588866     0.16209488
C 0.00942352 0.36933896 0.35615339
C 0.63280074 -0.51910412 -0.70437903
O -0.17821196 -1.55581092 -1.03380996
O 1.73878613 -0.37908690 -1.17319014
H 0.30721968 -2.07822587 -1.69971857
H 0.30592455 -0.06898761 1.32949131
H 0.50584431 1.34035573 0.28276602
H -1.88943346 -0.37006702 0.21938048
H -1.80706357 1.10969910 0.91321162
end

set geometry "system"

basis
* library 6-31G*
end

dft
xc b3lyp
vectors output "gly.movecs"
end

task dft energy

OCCUP
21
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
1.0
0.0
1.0
end

dft
xc b3lyp
noscf # do not relax the electron density
vectors input "gly.movecs" output "gly-mod.movecs"
end

task dft energy

rt_tddft
tmax 2000.0
dt 0.2
print dipole field energy convergence moocc
load vectors "gly-mod.movecs"
end

task dft rt_tddft

Forum Regular
Hi Silvio,

This should work. Here's a small closed shell example that works:
echo
start water
geometry "system" units angstroms nocenter noautoz noautosym
O     0.00000000    -0.00001441    -0.34824012
H -0.00000000 0.76001092 -0.93285191
H 0.00000000 -0.75999650 -0.93290797
end
set geometry "system"
basis
 * library 6-31G
end
occup
6 0
2.0
2.0
2.0
2.0
1.0
1.0
end
dft
xc b3lyp
vectors output occup1.mos
end
task dft
dft
xc b3lyp
vectors input occup1.mos
noscf
end
task dft
unset rt_tddft:*
rt_tddft
 load vectors occup1.mos
tmax 200.0
dt 0.2
nrestarts 0
tag "kickx"
print dipole
field "kick"
type delta
polarization x
max 0.001
end
excite "system" with "kick"
end
task dft rt_tddft


Here's an occup example for an open shell:

occup
6 6
1 1
1 1
1 1
1 1
1 0
0 1
end


Let us know or email me directly at niri.govind@pnnl.gov if there are any issues.

Best,
Niri Govind

Forum Regular
Hi Silvio,

I think the problem in your case is in your occup block. See my example.

Best,
-Niri

Clicked A Few Times
Hi,
sorry to interrupt.But I want to ask if your dplot is working in RT_TDDFT?
Mine do not read dplot block for rt_tddft calculation.

Thanks

Clicked A Few Times
Quote:Andreas Nov 20th 5:25 pm
Dear all,


Dear Andreas

I think you can help me for some questions about your discussion,
would I please have your email?

I try to send message here, but that was impossible for me.

I would appreciate if you could help me

Clicked A Few Times
Quote:Niri Mar 17th 5:53 pm
...

dear all,
would you plz explain about this part:

after occup block, we have:

dft
xc b3lyp
vectors output occup1.mos
end
task dft

dft
xc b3lyp
vectors input occup1.mos
noscf
end
task dft

unset rt_tddft:*

and then we have rt-tddft block
1) I don't understand about : vectors output occup1.mos & vectors input occup1.mos
would you kindley explain the purpose?

2) how about "unset" rt_tddft befor rt_tddft block?

3) when I run the code I have some errors, befor rt_tddft block:

argument  1 = vorudi



======================== echo of input deck ========================
echo
start water
geometry "system" units angstroms nocenter noautoz noautosym
O 0.00000000 -0.00001441 -0.34824012

H -0.00000000 0.76001092 -0.93285191

H 0.00000000 -0.75999650 -0.93290797

end
set geometry "system"
basis
* library 6-31G

end
occup
6 0

2.0

2.0

2.0

2.0

1.0

1.0

end
dft
xc b3lyp
vectors output occup1.mos
end
dft
xc b3lyp
vectors input occup1.mos
noscf
end
task dft
====================================================================


                                        



             Northwest Computational Chemistry Package (NWChem) 6.6
------------------------------------------------------


                   Environmental Molecular Sciences Laboratory
Pacific Northwest National Laboratory
Richland, WA 99352

                             Copyright (c) 1994-2015
Pacific Northwest National Laboratory
Battelle Memorial Institute

            NWChem is an open-source computational chemistry package
distributed under the terms of the
Educational Community License (ECL) 2.0
A copy of the license is included with this distribution
in the LICENSE.TXT file

                                 ACKNOWLEDGMENT
--------------

           This software and its documentation were developed at the
EMSL at Pacific Northwest National Laboratory, a multiprogram
national laboratory, operated for the U.S. Department of Energy
by Battelle under Contract Number DE-AC05-76RL01830. Support
for this work was provided by the Department of Energy Office
of Biological and Environmental Research, Office of Basic
Energy Sciences, and the Office of Advanced Scientific Computing.


          Job information
---------------

   hostname        = varesh
program = nwchem
date = Tue Aug 7 17:02:02 2018

   compiled        = Mon_Feb_15_08:24:17_2016
source = /build/nwchem-MF0R1k/nwchem-6.6+r27746
nwchem branch = 6.6
nwchem revision = 27746
ga revision = 10594
input = vorudi
prefix = water.
data base = ./water.db
status = startup
nproc = 1
time left = -1s



          Memory information
------------------

   heap     =   13107198 doubles =    100.0 Mbytes
stack = 13107195 doubles = 100.0 Mbytes
global = 26214400 doubles = 200.0 Mbytes (distinct from heap & stack)
total = 52428793 doubles = 400.0 Mbytes
verify = yes
hardfail = no


          Directory information
---------------------

 0 permanent = .
0 scratch = .




                               NWChem Input Module
-------------------



Scaling coordinates for geometry "system" by  1.889725989
(inverse scale = 0.529177249)



                             Geometry "system" -> ""
-----------------------

Output coordinates in angstroms (scale by  1.889725989 to convert to a.u.)

 No.       Tag          Charge          X              Y              Z
---- ---------------- ---------- -------------- -------------- --------------
1 O 8.0000 0.00000000 -0.00001441 -0.34824012
2 H 1.0000 0.00000000 0.76001092 -0.93285191
3 H 1.0000 0.00000000 -0.75999650 -0.93290797

     Atomic Mass 
-----------

     O                 15.994910
H 1.007825


Effective nuclear repulsion energy (a.u.)       9.1782628739

           Nuclear Dipole moment (a.u.) 
----------------------------
X Y Z
---------------- ---------------- ----------------
0.0000000000 -0.0001905978 -8.7904021739


           XYZ format geometry
-------------------
3
system
O 0.00000000 -0.00001441 -0.34824012
H 0.00000000 0.76001092 -0.93285191
H 0.00000000 -0.75999650 -0.93290797

==============================================================================
                               internuclear distances
------------------------------------------------------------------------------
center one | center two | atomic units | angstroms
------------------------------------------------------------------------------
2 H | 1 O | 1.81198 | 0.95886
3 H | 1 O | 1.81198 | 0.95886
------------------------------------------------------------------------------
number of included internuclear distances: 2
==============================================================================



==============================================================================
                                internuclear angles
------------------------------------------------------------------------------
center 1 | center 2 | center 3 | degrees
------------------------------------------------------------------------------
2 H | 1 O | 3 H | 104.86
------------------------------------------------------------------------------
number of included internuclear angles: 1
==============================================================================





Summary of "ao basis" -> "" (cartesian)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
* 6-31G on all atoms



                                NWChem DFT Module
-----------------


                     Basis "ao basis" -> "ao basis" (cartesian)
-----
O (Oxygen)
----------
Exponent Coefficients
-------------- ---------------------------------------------------------
1 S 5.48467170E+03 0.001831
1 S 8.25234950E+02 0.013950
1 S 1.88046960E+02 0.068445
1 S 5.29645000E+01 0.232714
1 S 1.68975700E+01 0.470193
1 S 5.79963530E+00 0.358521

 2 S  1.55396160E+01 -0.110778
2 S 3.59993360E+00 -0.148026
2 S 1.01376180E+00 1.130767

 3 P  1.55396160E+01  0.070874
3 P 3.59993360E+00 0.339753
3 P 1.01376180E+00 0.727159

 4 S  2.70005800E-01  1.000000

 5 P  2.70005800E-01  1.000000

 H (Hydrogen)
------------
Exponent Coefficients
-------------- ---------------------------------------------------------
1 S 1.87311370E+01 0.033495
1 S 2.82539370E+00 0.234727
1 S 6.40121700E-01 0.813757

 2 S  1.61277800E-01  1.000000



Summary of "ao basis" -> "ao basis" (cartesian)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
O 6-31G 5 9 3s2p
H 6-31G 2 2 2s




Summary of "ao basis" -> "ao basis" (cartesian)
------------------------------------------------------------------------------
Tag Description Shells Functions and Types
---------------- ------------------------------ ------ ---------------------
O 6-31G 5 9 3s2p
H 6-31G 2 2 2s


------------------------------------------------------------------------
movecs_converged: error opening file 0
------------------------------------------------------------------------
------------------------------------------------------------------------
current input line :
50: task dft
------------------------------------------------------------------------
------------------------------------------------------------------------
An error occured while trying to read or write to disk space
------------------------------------------------------------------------
For more information see the NWChem manual at http://nwchemgit.github.io/index.php/NWChem_Documentation


For further details see manual section:                                                                                                                                                                                                                                                                


MPI_ABORT was invoked on rank 0 in communicator MPI COMMUNICATOR 4 DUP FROM 0
with errorcode -1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.


0:0:movecs_converged: error opening file:: -1
(rank:0 hostname:varesh pid:19903):ARMCI DASSERT fail. ../../ga-5-4/armci/src/common/armci.c:ARMCI_Error():208 cond:0

Forum Vet
In order to save time, I changed tmax into 200, and found surely the calculation could finish with the input prepared by Dr. Silvio.pipolo using NWCHEM 6.8 on Ubuntu 17.10, e .g.,
...
<rt_tddft>: 190.00000 4.685526608684E-001 -8.792965220763E+000 -1.304930976592E+001 # Dipole moment [system]
Grid integrated density:      20.000000210894
Requested integration accuracy: 0.10E-05
Grid integrated density: 20.000000210200
Requested integration accuracy: 0.10E-05
...
<rt_tddft>: 190.20000 9.993624499245E-001 9.994081845749E-001 9.990054020206E-001 9.985851174490E-001 9.984522201957E-001 9.124872767608E-001 9.306509657535E-001 8.887214810717E-001 8.617506727172E-001 7.215396190989E-001 7.991670745015E-001 7.667270511842E-001 7.296574573087E-001 8.245064003777E-001 6.902703919876E-001 5.561729852632E-001 5.856462066806E-001 7.241157618979E-001 5.423422602323E-001 3.464949726962E-001 1.379533583290E-001 2.553622996966E-001 2.627312335724E-001 1.529924110596E-001 2.812978426880E-001 9.471734367803E-002 7.248516468705E-002 8.942116558787E-002 5.218889158904E-002 1.575479141555E-001 5.983821032709E-002 1.269395268988E-001 1.099449068983E-001 9.892788277884E-002 2.055072843457E-001 1.297101367768E-001 7.026130555491E-002 1.031315214103E-001 5.462062447562E-002 1.375530980558E-001 8.251724204817E-002 6.451203733198E-002 4.780401790225E-002 6.041824198189E-002 5.231697098799E-002 6.345218512342E-002 7.135222985984E-002 4.119921015193E-002 7.615780234096E-002 4.081856417814E-002 7.022881885275E-002 8.610666068907E-002 4.395549591596E-002 5.231894748590E-002 5.122021402050E-002 6.041350581402E-002 4.145597868083E-002 4.282752778037E-002 3.890703739468E-002 5.109787085925E-002 3.632495991858E-002 1.557546496810E-002 1.003727405984E-001 8.657899896340E-003 1.116789654714E-002 1.080764683430E-002 1.297845613371E-002 1.310236454753E-002 7.303367005528E-003 1.875116844280E-002 1.244670778984E-002 6.374072646304E-003 1.052794652187E-002 7.148581421069E-003 8.940435576026E-003 5.984235327893E-003 5.914335522488E-003 8.969417435934E-003 7.791382708912E-003 4.419131569486E-003 4.090931520379E-003 3.640693958260E-003 5.115504034505E-003 3.572333178682E-003 2.745692365302E-003 # MO Occupations
<rt_tddft>: 190.20000 4.248913257769E-001 -8.903716240706E+000 -1.296232588479E+001 # Dipole moment [system]
...
<rt_tddft>: 199.80000 ### Propagation finished ###
...

I have not tried the original input with the visualization set.

There is also no problem for Dr.Govind's closed-shell example to be successful, e.g.,
...
kickx 198.00000 -1.133347095243E-004 -2.844175674034E-006 6.777161352689E-002 # Dipole moment [system]
...
kickx 199.80000 ### Propagation finished ###
...


Forum >> NWChem's corner >> General Topics