From 8846f97868f24ef75cecf9dd4547640cf8cb06e7 Mon Sep 17 00:00:00 2001 From: Rene Halver Date: Tue, 24 Jul 2018 15:46:28 -0600 Subject: [PATCH] explained differences between absolute and relative tolerance more --- doc/src/kspace_modify.txt | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/doc/src/kspace_modify.txt b/doc/src/kspace_modify.txt index c41e9a9336..f552f9b9b6 100644 --- a/doc/src/kspace_modify.txt +++ b/doc/src/kspace_modify.txt @@ -326,7 +326,16 @@ field_rel = relative accuracy in electric field :ul The values with suffix "_rel" indicate the tolerance is a relative tolerance; the other values impose an absolute tolerance on the given -quantity. +quantity. Absoulte tolerance in this case means, that for a given +quantity q and a given absolute tolerance of t_a the result should +be between q-t_a and q+t_a. For a relative tolerance t_r the relative +error should not be greater than t_r, i.e. abs(1 - (result/q)) < t_r. +As a consequence of this, the tolerance type should be checked, when +performing computations with a high absolute field / energy. E.g. +if the total energy in the system is 1000000.0 an absolute tolerance +of 1e-3 would mean that the result has to be between 999999.999 and +1000000.001, which would be equivalent to a relative tolerance of +1e-9. The energy and energy_rel values, set a tolerance based on the total Coulomic energy of the system. The potential and potential_rel set a @@ -337,13 +346,6 @@ the per-atom electric field, this effectively sets a tolerance on the forces, simimlar to other LAMMPS KSpace styles, as explained on the "kspace_style"_kspace_style.html doc page. -RENE: Can you add some explanation of the difference between relative -and absolute? Something like this (if it's correct). If the total -Coul energy is computed to be -1000.0, then an absolute tolerance of -1.0e-3 means the actual energy is between -999.999 and -1000.001. -Whereas a relative tolerance means it is between -999 and -1001. Thus -an absolute tolerance is generally much more stringent? - RENE: Also, can you explain more what is the difference between energy (total) and potential (per-atom)? Which one is more vs less accurate? Does potential mean that the maximum of any atom's energy error is < @@ -358,10 +360,9 @@ p2nfft = field (1d-,2d-,3d-periodic systems) or potential (0d-periodic) ewald = field direct = has no tolerance tuning :ul -RENE: I think this means that the default tolerance setting -is differnet for different methods. If so, it should -be documented in the above list, i.e. by listing the default -value first. +If the tolerance type is not changed, the default values for the +tolerance type are the first values in the above list, e.g. energy +is the default tolerance type for the fmm solver. RENE: Does the code (LAMMPS or Scafacos) generate an error if an unsupported tolerance is specified for a method?