1Long-range dispersion settings 2============================== 3 4The PPPM method computes interactions by splitting the pair potential 5into two parts, one of which is computed in a normal pairwise fashion, 6the so-called real-space part, and one of which is computed using the 7Fourier transform, the so called reciprocal-space or kspace part. For 8both parts, the potential is not computed exactly but is approximated. 9Thus, there is an error in both parts of the computation, the 10real-space and the kspace error. The just mentioned facts are true 11both for the PPPM for Coulomb as well as dispersion interactions. The 12deciding difference - and also the reason why the parameters for 13pppm/disp have to be selected with more care - is the impact of the 14errors on the results: The kspace error of the PPPM for Coulomb and 15dispersion interaction and the real-space error of the PPPM for 16Coulomb interaction have the character of noise. In contrast, the 17real-space error of the PPPM for dispersion has a clear physical 18interpretation: the underprediction of cohesion. As a consequence, the 19real-space error has a much stronger effect than the kspace error on 20simulation results for pppm/disp. Parameters must thus be chosen in a 21way that this error is much smaller than the kspace error. 22 23When using pppm/disp and not making any specifications on the PPPM 24parameters via the kspace modify command, parameters will be tuned 25such that the real-space error and the kspace error are equal. This 26will result in simulations that are either inaccurate or slow, both of 27which is not desirable. For selecting parameters for the pppm/disp 28that provide fast and accurate simulations, there are two approaches, 29which both have their up- and downsides. 30 31The first approach is to set desired real-space an kspace accuracies 32via the *kspace_modify force/disp/real* and *kspace_modify 33force/disp/kspace* commands. Note that the accuracies have to be 34specified in force units and are thus dependent on the chosen unit 35settings. For real units, 0.0001 and 0.002 seem to provide reasonable 36accurate and efficient computations for the real-space and kspace 37accuracies. 0.002 and 0.05 work well for most systems using lj 38units. PPPM parameters will be generated based on the desired 39accuracies. The upside of this approach is that it usually provides a 40good set of parameters and will work for both the *kspace_modify diff 41ad* and *kspace_modify diff ik* options. The downside of the method 42is that setting the PPPM parameters will take some time during the 43initialization of the simulation. 44 45The second approach is to set the parameters for the pppm/disp 46explicitly using the *kspace_modify mesh/disp*, *kspace_modify 47order/disp*, and *kspace_modify gewald/disp* commands. This approach 48requires a more experienced user who understands well the impact of 49the choice of parameters on the simulation accuracy and 50performance. This approach provides a fast initialization of the 51simulation. However, it is sensitive to errors: A combination of 52parameters that will perform well for one system might result in 53far-from-optimal conditions for other simulations. For example, 54parameters that provide accurate and fast computations for 55all-atomistic force fields can provide insufficient accuracy or 56united-atomistic force fields (which is related to that the latter 57typically have larger dispersion coefficients). 58 59To avoid inaccurate or inefficient simulations, the pppm/disp stops 60simulations with an error message if no action is taken to control the 61PPPM parameters. If the automatic parameter generation is desired and 62real-space and kspace accuracies are desired to be equal, this error 63message can be suppressed using the *kspace_modify disp/auto yes* 64command. 65 66A reasonable approach that combines the upsides of both methods is to 67make the first run using the *kspace_modify force/disp/real* and 68*kspace_modify force/disp/kspace* commands, write down the PPPM 69parameters from the output, and specify these parameters using the 70second approach in subsequent runs (which have the same composition, 71force field, and approximately the same volume). 72 73Concerning the performance of the pppm/disp there are two more things 74to consider. The first is that when using the pppm/disp, the cutoff 75parameter does no longer affect the accuracy of the simulation 76(subject to that gewald/disp is adjusted when changing the cutoff). 77The performance can thus be increased by examining different values 78for the cutoff parameter. A lower bound for the cutoff is only set by 79the truncation error of the repulsive term of pair potentials. 80 81The second is that the mixing rule of the pair style has an impact on 82the computation time when using the pppm/disp. Fastest computations 83are achieved when using the geometric mixing rule. Using the 84arithmetic mixing rule substantially increases the computational cost. 85The computational overhead can be reduced using the *kspace_modify 86mix/disp geom* and *kspace_modify splittol* commands. The first 87command simply enforces geometric mixing of the dispersion 88coefficients in kspace computations. This introduces some error in 89the computations but will also significantly speed-up the 90simulations. The second keyword sets the accuracy with which the 91dispersion coefficients are approximated using a matrix factorization 92approach. This may result in better accuracy then using the first 93command, but will usually also not provide an equally good increase of 94efficiency. 95 96Finally, pppm/disp can also be used when no mixing rules apply. 97This can be achieved using the *kspace_modify mix/disp none* command. 98Note that the code does not check automatically whether any mixing 99rule is fulfilled. If mixing rules do not apply, the user will have 100to specify this command explicitly. 101