TDDFT: Too small a subspace error?


Clicked A Few Times
I am trying to use the TDDFT module in NWChem 6.8 and after the SCF procedure I am getting an error that I don't quite understand. I looked through the previous posts and I found that someone else had a similar problem using TDDFT in NWChem 6.1. The suggestion was that perhaps the number of roots requested was too high - but from reading the post it was clear if this truly was the problem. Any help would be greatly appreciated.

Kristina

My input file:

memory total 16 Gb

restart tddft_S2exc
dft
xc b3lyp
maxiter 500
direct
end

 tddft
cis
nroots 50
singlet
triplet
civecs
end
task tddft energy


And then the error that I receive at the end of the SCF procedure.


        Spin multiplicity :       1
Number of AO functions : 8558
Use of symmetry is : off
Symmetry adaption is : off
Schwarz screening : 0.10D-07

             XC Information
--------------
B3LYP Method XC Potential
Hartree-Fock (Exact) Exchange 0.20
Slater Exchange Functional 0.80 local
Becke 1988 Exchange Functional 0.72 non-local
Lee-Yang-Parr Correlation Functional 0.81
VWN I RPA Correlation Functional 0.19 local

            TDDFT Information
-----------------
Calculation type : Tamm-Dancoff TDDFT
Wavefunction type : Restricted singlets & triplets
No. of electrons : 3680
Alpha electrons : 1840
Beta electrons : 1840
No. of roots : 50
Max subspacesize : 14000
Max iterations : 100
Target root : 1
Target symmetry : none
Symmetry restriction : off
Algorithm : Optimal
Davidson threshold : 0.10D-03

           Memory Information
------------------
Available GA space size is 4221727932 doubles
Available MA space size is 1072942916 doubles
Length of a trial vector is 12361120
Algorithm : Disk-based single tensor contraction
Max subspace size reduced from 14000 to 33
Too small a subspace 33
------------------------------------------------------------------------
------------------------------------------------------------------------
Too small a subspace 33
------------------------------------------------------------------------
------------------------------------------------------------------------
current input line :
22: task tddft energy
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------

Forum Regular
The problem in your case is that you did not allocate enough memory for the calculation to fit in memory so the code switched to the disk-based algorithm. This algorithm is limited to 10 GB of disk space, so the code reduced the maximum subspace to 33 vectors in order to be able to store the necessary quantities. Since you requested 50 roots, the code crashed because you can't solve for 50 roots with only 33 vectors in your subspace.

You can increase your allocated GA memory and/or decrease the number of roots requested to get the calculation to run. I believe that you need about 5 times the amount of GA memory that is indicated in your input, so you can increase the GA memory by a factor of 5 or decrease the number of roots by the same factor.

Clicked A Few Times
Thank you for the information! This is helpful!

K

Clicked A Few Times
Quote:Sean Nov 14th 2:15 pm
The problem in your case is that you did not allocate enough memory for the calculation to fit in memory so the code switched to the disk-based algorithm. This algorithm is limited to 10 GB of disk space, so the code reduced the maximum subspace to 33 vectors in order to be able to store the necessary quantities. Since you requested 50 roots, the code crashed because you can't solve for 50 roots with only 33 vectors in your subspace.

You can increase your allocated GA memory and/or decrease the number of roots requested to get the calculation to run. I believe that you need about 5 times the amount of GA memory that is indicated in your input, so you can increase the GA memory by a factor of 5 or decrease the number of roots by the same factor.




I have another question on this topic. How can I change the number of roots in the restart file? I did change the value in the input file - but I tried to restart the job and it still reads the number of roots as 50? Is there a particular syntax that I have to use?

Thank you,

Kristina

Forum Regular
I would just not run it as a restart. You can add

vectors input <filename>.movecs

to your DFT block so that you read your already calculated SCF solution. This gives you the benefit of a restart without having to worry about which parameters are being set from the previous calculation.


Forum >> NWChem's corner >> General Topics