explained differences between absolute and relative tolerance more

This commit is contained in:
Rene Halver
2018-07-24 15:46:28 -06:00
parent 655bd10db6
commit 8846f97868

View File

@ -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?