
SEARCH
TOOLBOX
LANGUAGES
Forum Menu
Access DFT solution coefficients for LCAO from python
From NWChem
Viewed 1000 times, With a total of 9 Posts

Clicked A Few Times
Threads 6
Posts 21


6:30:31 AM PDT  Wed, Aug 24th 2016 

Dear developers,
I would like to get expansion coefficients for orbitals in specified basis (say 321G) for single energy DFT calculation. In other words, i want to access the solution coefficients which are used (together with the basis), for example, to plot orbitals in DPLOT.
My best guess would be that I can get this from RunTimeDataBase via rtdb_get(). The question is where in RTDB the solution coefficients are stored and in what format? Of course, I also need centers of AOs used to form LCAO.
p.s. to avoid the confusion, I am not speaking about coefficients and exponents of Gaussian basis functions used for each atom. That info is easy to get from "libraries" database.
Regards,
Denis.




Edoapra Forum:Admin, Forum:Mod, bureaucrat, sysop


Forum Vet
Threads 9
Posts 1502


1:46:28 PM PDT  Wed, Aug 24th 2016 

Denis, I am guessing what you are looking for are the eigenvalues, eigenvectors and occupation numbers, right?




Clicked A Few Times
Threads 6
Posts 21


2:35:14 PM PDT  Wed, Aug 24th 2016 

Quote:Edoapra Aug 24th 8:46 pmDenis, I am guessing what you are looking for are the eigenvalues, eigenvectors and occupation numbers, right?
I am new to LCAO, i normally do DFT ground state calculation using other approaches.
My understanding is the following: In LCAO one essentially search for unknown wavefunctions as a linear combination of atomic orbitals (thus the name), i.e.
\Psi_j = \sum_i C_{ij} N_i (r_i),
where C_{ij} are expansion coefficients and {N_i} is the basis (atomic orbitals). So what I am interested in are those coefficients C_{ij} with their correspondence to the actual basis used (like 321G).
Plus occupation numbers.




Clicked A Few Times
Threads 6
Posts 21


6:23:12 AM PDT  Mon, Aug 29th 2016 

Quote:Edoapra Aug 24th 8:46 pmDenis, I am guessing what you are looking for are the eigenvalues, eigenvectors and occupation numbers, right?
sorry to bother, but did you have a chance to check RunTimeDataBase (or other DB) for eigenvectors and occupation numbers?

Edited On 7:06:34 AM PDT  Mon, Aug 29th 2016 by Den59




Gets Around
Threads 1
Posts 165


8:56:17 AM PDT  Mon, Aug 29th 2016 

All of that information is stored in the *.movecs file, not in the run time database. If you want access to that information, you would need to either parse the output file (you can modify print options to get all of the eigenvectors, eigenvalues, and occupations numbers to be included in the output file), or you would need to read the *.movecs file (there is a script in the contrib directory of the source code that should be able to convert the *.movecs file from binary to ASCII).




Clicked A Few Times
Threads 6
Posts 21


11:08:50 AM PDT  Mon, Aug 29th 2016 

Quote:Sean Aug 29th 3:56 pmAll of that information is stored in the *.movecs file, not in the run time database. If you want access to that information, you would need to either parse the output file (you can modify print options to get all of the eigenvectors, eigenvalues, and occupations numbers to be included in the output file), or you would need to read the *.movecs file (there is a script in the contrib directory of the source code that should be able to convert the *.movecs file from binary to ASCII).
I had some problems compiling mov2asc`, could be more specific on which print options to add to get all eigenvectors and eigenvalues and occupations number in the terminal output?




Just Got Here
Threads 0
Posts 1


12:09:52 PM PDT  Mon, Aug 29th 2016 

You can print eigenvalues and eigenvectors in outputfile using or
Quote: print "final evals" "final vectors" in DFT block. I suppose that occupation numbers also will be written in this case.
See more information here
But I am not sure that all eigenvalues and eigenvectors are printed and not only the highest ones lying above some energetic threshold. This has to be checked.




Clicked A Few Times
Threads 6
Posts 21





Gets Around
Threads 1
Posts 165


12:28:49 PM PDT  Mon, Aug 29th 2016 

Adding
print "final vectors analysis"
to the dft block will cause all of the eigenvalues, occupation numbers, and eigenvectors to be included in the output file for the molecular orbital analysis section. The default is to only print eigenvectors with an absolute value above 0.15; however, this can be modified through a movecs set directive, e.g.
set movecs:tanalyze 1.e8




Clicked A Few Times
Threads 6
Posts 21


1:34:46 PM PDT  Mon, Aug 29th 2016 

Thanks, Sean. It looks like with this setting and http://cclib.github.io i can parse terminal output to get all eigenvectors and the correspondence between the basis and the coefficients. I assume that the numbering correspond to the order of atoms. So first X coefficients are for all X AOs of 1st atom, then next Y coefficients are for all Y AOs of 2nd atom, while the order of coefficients for a single atom are listed here http://www.nwchemsw.org/index.php/Release66:Basis ,i.e. s px py pz ...

Edited On 1:46:27 PM PDT  Mon, Aug 29th 2016 by Den59



AWC's:
2.5.10 MediaWiki  Stand Alone Forum Extension Forum theme style by: AWC
 