Geometry optimisation converges to nonsense

Florian Schiffmann flosch... at
Sat Feb 22 08:18:03 UTC 2014

Hi Herbert,

just a bit about how CP2K works which shines light on your disappointing 

CP2K still uses a plane wave basis to compue the electrostatic energy 
(because it is easy and cheap in PW). This automatically means make your 
box larger and your cutoff higher will increase the cost of the 
calculation. Hence, vacuum is not for free in CP2K (not quite sure how any 
of your other codes react when you put in such a cell). Nevertheless, using 
Gaussians as a primary basis for the other contributions (localized basis 
sets are cheap for the rest, see QUICKSTEP paper) at least the size 
wavefunction coefficients matrix is independent of the system size.
If you have a look at the timing reports you will see all time is spend in 
the FFT. I can tell you from experience going to real system the FFT 
becomes very soon neglegible. 
The system you use for testing is not really good as a benchmark for speed. 
As I said above every aproach has its ups and downs. Take that system as an 
overall performance benchmark and you will find PW codes (VASP, CPMD, 
CP2K,...) are the worst DFT codes ever while Gaussian based codes are as 
close to heaven as you can get. And indeed, for (smaller) molecular systems 
that is the truth but not if you go to larger periodic systems. 
If you want to get a feeling for the speed of different codes give them a 
chance to perform at what they are good in. Try once the 32/64/... water 
benchmark (better done in parallel but could work in serial as well). That 
gives a bit a feeling for how the code performs on real dense periodic 

Another point you wrote is:
> but some of the systems are sparse, so using a non-PW basis should 
improve things
As written above that doesn't matter too much for CP2K. True, vacuum only 
affects the FFT part and if that is neglegible in the overall timings, 
vacuum is for free. But also dense systems benefit from the mixed basis 
aproach (try the benchmark). 

Another point is that CP2K is meant to be a parallel code. We can't help it 
that systems of a given size become somewhat expensive. What we can do is 
try to make everything as parallel as possible. If you go parallel you can 
'easiliy' go up to systems with 1000 atoms and get your answer by tomorrow 
(or after a coffee break, as always it depends on what you are doing and on 
how much coffee you drink).

That's good about CP2K. Its worst bit you have already said no k-points. 
That means you won't get away with small systems. 
As always which code to use depends on what you are interested in. For 
crystals and surfaces (and other things for sure but I am not an expert) 
VASP is neat, it has heaps of features (properties it can compute,...) and 
in combination with k-points allows for smaller unit cells,... If thats 
what you want, great choice of code.

If you want to study adsorption or interfaces (which can become very big) 
you might want to use different codes (OK, I admit I meant CP2K here) which 
allow you to simulate systems of the necessary size.

Finally the thing I wouldn't do is a mixed use of codes. Yes, it is DFT in 
both cases but every code has its special bits. Basis set dependece of the 
results, pseudos,... you really have to make sure that your results are 
transferable with the settings used in the two codes. And that usually ends 
up doing the same study with two codes, which means twice the ammount of 
work. Don't get me wrong, it is definitely a good idea if you get strange 
or unexpected stuff to check it with a different code/setup. I only say in 
my oppinion it is better to decide in the beginning for a code and stick to 
it so your results are consistent (again there can be exceptions).


PS: Just to make sure, I wrote this to indicate what CP2K is good/meant for 
as it seems there was a bit of a misunderstanding and not to start a this 
code is better han that code war.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the CP2K-user mailing list