USER-INTEL precision mode

Hi!

When using 'intel' styles from the USER-INTEL package, the default 'mode', is
'mixed', meaning that:

calculations between pairs or triplets of atoms are performed in single
precision, intended to be within the inherent error of MD simulations. All
accumulation is performed in double precision to prevent the error from
growing with the number of atoms in the simulation.

(https://lammps.sandia.gov/doc/Speed_intel.html)

How does one decide when it is okay to use the default, and when to use
'double'?

I assume that in cases where an energy minimisation occurs, it would make
sense to calculate forces at a higher precision.

What other situations is this advisible for?

Thanks!
Vishnu

Hi!

When using ‘intel’ styles from the USER-INTEL package, the default ‘mode’, is
‘mixed’, meaning that:

calculations between pairs or triplets of atoms are performed in single
precision, intended to be within the inherent error of MD simulations. All
accumulation is performed in double precision to prevent the error from
growing with the number of atoms in the simulation.

(https://lammps.sandia.gov/doc/Speed_intel.html)

How does one decide when it is okay to use the default, and when to use
‘double’?

I assume that in cases where an energy minimisation occurs, it would make
sense to calculate forces at a higher precision.

no. it has little to do with this.

What other situations is this advisible for?

computing forces in single precision is acceptable, when sufficient error cancellation happens, e.g. when you compute forces in a homogeneous system and when the system is small enough, that the loss of precision when representing atoms far away from the origin does not matter much. also for computing pressure, since stress converges less well than forces with respect to the correctness of the potential function and particularly variable cell calculation, using double precision is advisable.

there are differing opinions about what accuracy and what degree of error cancellation is acceptable, so don’t expect that what one person recommends will be ok with another.

axel.

computing forces in single precision is acceptable, when sufficient error
cancellation happens, e.g. when you compute forces in a homogeneous system
and when the system is small enough, that the loss of precision when
representing atoms far away from the origin does not matter much.

My systems are fairly homogenous and isotropic in particle density, and have
~100K atoms. Also, the force cut-off is such that each particle has upto about
12 neighbours (this can go upto about 25 for some models I use).

also for
computing pressure, since stress converges less well than forces with
respect to the correctness of the potential function and particularly
variable cell calculation, using double precision is advisable.

I will keep that in mind, if I need to compute stresses and pressures.

there are differing opinions about what accuracy and what degree of error
cancellation is acceptable, so don't expect that what one person recommends
will be ok with another.

Yes, but exactly what measure(s) does one use, to decide?