Write density on grid of my choice

Matthias Krack matthia... at psi.ch
Tue Apr 15 20:46:13 CEST 2014

Well, in this case the task might become more cumbersome.
CP2K usually prints everything in the spherical basis representation. Afaik 
only the MOs can be printed in the Cartesian representation:
If you want to perform everything in a separate code, then you have first 
to transform the density matrix to the Cartesian representation. Take care 
to employ the right contraction coefficients and normalisation factors. 
Finally note the order of the spherical and Cartesian orbitals.

Good luck,


On Tuesday, April 15, 2014 6:06:14 PM UTC+2, Sascha Brück wrote:
> Hi,
> this would be an idea, however, i just noticed that this is not useful for 
> me because i do not want to be bound to cp2k writing out data as i process 
> the density matrix in my own code, so i need the information about how to 
> evaluate the density from the density matrix. I tried the above formula 
> with the norms given in the output file but it seemed not to give sensible 
> results.
> I hope I can get some more information about the basis functions and how 
> to use them to compute the density.
> Kind regards
> Sascha
> Am Dienstag, 15. April 2014 17:12:34 UTC+2 schrieb Matthias Krack:
> Hi Sascha,
>> cp2k calculates the density at the FFT grid points. You may calculate the 
>> density yourself as you describe, but it is possibly easier to use a fine 
>> grid by specifying a relatively large cutoff and then to read the cube file 
>> with an external program which evaluates the density at the points you are 
>> interested in by (trilinear) interpolation.
>> Matthias
>> On Tuesday, April 15, 2014 3:11:44 PM UTC+2, Sascha Brück wrote:
>>> Hi,
>>> in cp2k, i can write out the density into a cube file, but it will be 
>>> evaluated at grid points computed by cp2k. If I like to use my own grid 
>>> with different points where I want to evaluate the density, is there a way 
>>> to read in that information?
>>> If not, it should be easy to evaluate the density by oneself by just 
>>> summing the density matrix and the basis functions
>>> rho(x_grid,y_grid,z_grid)=sum_{i,j} P_{i,j} * phi_i 
>>> (x_grid-x_atom(i),y_grid-y_atom(i),z_grid-z_atom(i)) * phi_j 
>>> (x_grid-x_atom(j),y_grid-y_atom(j),z_grid-z_atom(j))
>>> where phi_i (x,y,z)=norm_i * pow(x,lx_i) * pow(y,ly_i)* pow(z,lz_i) * 
>>> exp( -alpha_i*(x^2+y^2+z^2));
>>> all coordinates are in bohr radius and alpha_i is from the basis file 
>>> and the angular momenta are ordered like 1s 1px 1py 1pz 2s 2px 2py 2pz ...
>>> Is this formula right? Or do I have to transform to spherical basis 
>>> functions (even for s and p)? How do i compute the norm?
>>> Best regards
>>> Sascha 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cp2k.org/archives/cp2k-user/attachments/20140415/f0448104/attachment.html>

More information about the CP2K-user mailing list