Pseudopotential generation and basis set optimisation

Nicolas Gastellu nicolas.... at
Tue Aug 14 01:23:47 CEST 2018

Hello all,

I've been trying to generate a DZVP basis set for titanium with 4 valence 
electrons for DFT calculations using the PBE functional. From what I 
understand there are two different modules that can be used to achieve 

The ATOM needs a suitable pseudopotential to optimise a pre-existing basis 
set. To this end, I first generated a GTH pseudopotential for titanium 
(with 4 valence electrons) using the 'Goedecker/pseudo/v2.2' code found in 
the ${CP2K_PATH}/potentials directory. I then used this pseudopotential to 
optimise the exponents of the Ti TZV2P-MOLOPT-SR-GTH basis set found in the 
${CP2K_PATH}/cp2k/data/BASIS_MOLOPT_UCL to create an uncontracted basis set 
with ATOM and RUN_TYPE BASIS_OPTIMIZATION. I then used the same module with 
RUN_TYPE ENERGY to generate a set of contraction coefficients. I finally 
optimised the basis set I thus obtained using the OPTIMIZE_BASIS module. I 
attached the relevent inputs and outputs for reference.

Everything calculation ran successfully (i.e. CP2K did not crash) but I am 
unsure of the correctness of my results. I therefore had a few questions 
about the entire process.

*Questions about pseudopotential generation using Goedecker/pseudo/v2.2:*

In the README, it says to aim for a final residue of about 10-6 when 
fitting the pseudo-wavefunctions of the valence orbitals. It also indicates 
that if this criterion is not met, then one must increase the number of 
Gaussians used for the fit and increase the value of rij. In my case, doing 
so does barely affects these residues (I get residue~10-6 for the 4s AO and 
~10-4 for the 3d AO), increasing the number of fitting cycles (up to 200) 
does not change anything either; what other settings should I change in 
order to get an adequately accurate pseudopotential? I am currently using 
30 Gaussians (I have tried using up to 100) and rij = 10.0 (I have tried 
increasing it to 200). I have also tried using a dense Gaussian basis but 
it does not help much. For clarification I followed the example given in 
the README of the ${CP2K_PATH}/potentials/Goedecker/pseudo/v2.2 folder.

*Questions about  basis set optimisation:*

   Which module (i.e. OPTIMIZE_BASIS or ATOM) is more appropriate for 
   optimizing a pre-existing basis?
   For the BASIS_OPTIMIZATION output:
what constitutes an acceptable final residuum value? (all examples I have 
found have a final residuum of ~102). 


Are the values of ‘Rho difference’ and ‘Condition number’ better indicators 
of a successful run? If yes, what final values are acceptable for these 

   Is it better to start by optimising the exponents and then do the 
   coefficients, or the other way around?
   -  In the ATOM module, how does one get a good appreciation of what type 
   atomic confinement is more appropriate and how should one select the 
   numerical parameters for a given confinement potential?
I apologise for this very long post, any and all help/advice would be 
greatly appreciated. Please let me know if further information is needed to 
properly answer my questions.



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Type: application/zip
Size: 12790 bytes
Desc: not available
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Type: application/zip
Size: 1483173 bytes
Desc: not available
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Type: application/zip
Size: 985551 bytes
Desc: not available
URL: <>

More information about the CP2K-user mailing list