Bug with Parrinelo-Rahman and nstpcouple > 1
When implementing multiple time-stepping for Parrinello-Rahman pressure coupling, we (I) forgot to increase the time step for the particle velocity scaling. Thus the coordinates were scaled correctly, but the velocities were scaled by to little by a factor 1/nstpcouple.
Fix Parrinello-Rahman with nstpcouple>1
Restructure leap-frog integrators
There are now 2 template function for MD leap-frog integration
instead of 4 branches in multiple functions.
In addition to invmass, mdatoms now contains invMassPerDim.
invMassPerDim is set to zero for encode frozen dimensions, so LF
update functions no longer need to check the freeze groups.
Also removed the conditionals for vsites and shells in the LF update
functions. Their velocities are now set to zero at startup.
A template function for the most common leap-frog integrator setups
allows for full SIMD acceleration, at least for AVX with gcc5.
Changed dt from double to real in the update, since we need far less
than real precision.
Changed calculation of alpha for VV to real, as it is passed as real.
Fixed multiple time stepping with Parrinello-Rahman and Nose-Hoover.