SEARCH_CONVERGENCE
SEARCH_CONVERGENCE defines a number of parameters controlling the behaviour of the tensor-LEED search. See Ref. Kottcke and Heinz [9] for an explanation of the search algorithm used by TensErLEED.
Most importantly, the SEARCH_CONVERGENCE flag gaussian
(corresponds to RMUT
parameter in TenErLEED code) controls the step width during the search.
SEARCH_CONVERGENCE also defines partial convergence criteria, at which the
search will be interrupted to re-scale the width of the Gaussian distribution,
and the re-scaling factors applied at that point.
Syntax:
! general case:
SEARCH_CONVERGENCE flag = value [value] ! see specifics for other flags below
! example:
SEARCH_CONVERGENCE gaussian = 0.3 0.2
SEARCH_CONVERGENCE dgen = 1000 1.5
! to turn automatic convergence off:
SEARCH_CONVERGENCE = off
! if automatic convergence is turned off, the gaussian flag should be set manually
SEARCH_CONVERGENCE gaussian = 0.01
! OR:
SEARCH_CONVERGENCE gaussian = 0.01 1
! setting scaling factor 1 turns automatic convergence off implicitly
The specific flags are:
gaussian
The flag gaussian
is a scaling factor applied to the standard deviation of
the probability distribution (a normal distribution) of the step width during
the search (see the TensErLEED paper by Blum and Heinz [6]).
It corresponds to the RMUT
parameter in the TensErLEED code.
A larger value corresponds to a higher probability of taking a large step.
However, the width of the distribution function is not only controlled by the
gaussian
flag, but also has contributions from the number of independent
parameters and a dynamic parameter that is varied during the search. Two real
values are accepted: The value to be used at the beginning of the search,
and a scaling factor applied whenever partial convergence is reached.
Default: 0.1 0.5
Allowed values: (0,∞), (0,1)
Syntax:
! initialize with=0.1, scale factor=0.3 whenever partial convergence is reached
SEARCH_CONVERGENCE gaussian = 0.1 0.3
SEARCH_CONVERGENCE gaussian
is one of the main parameters controlling
convergence, and appropriate values are highly dependent on the system in use.
By default, gaussian
is initialized with a very high value of 0.1, and
downscaled by 50% every time partial convergence is reached (see dgen
flag
below).
For rough (wide scan) searches, a value of 0.1 is appropriate. The finer the
fit, the smaller the steps should be, so gaussian
may be set at 0.01 or
even lower.
dgen
The flag dgen
defines how many generations should pass without any changes
to either the best configuration, or all configurations in the population,
before the search is considered converged for the current value of
gaussian
. Once this condition is met, both gaussian
and the
dgen
values themselves will be scaled by their respective scaling
factors, and the search will be continued. Full convergence of the
search is considered to be reached when partial convergence is reached
twice in a row without any changes in the meantime, i.e. when lowering
gaussian
does not lead to any further improvement. Once full convergence
is reached, the search will be stopped.
Note that an upper limit of generations, independent of convergence, is given
by SEARCH_MAX_GEN.
Note
dgen
also affects the output interval for the raw TenErLEED file
SD.TL. Very values for dgen
(\(\lesssim\) 10) may slow
down the search due to I/O overhead.
Default: partial convergence when best 10% of structures do not change in
200 generations, scaling factor = 0.75/(scaling factor of gaussian
).
Allowed values: one or two values > 1
Syntax:
! best 10% of structures don't change in 1000 generations, then for lowered gausssian flag in 1500 generations, then 2250, etc.
SEARCH_CONVERGENCE dgen dec = 1000 1.5
! same as previous, "dgen" defaults to "dgen dec"
SEARCH_CONVERGENCE dgen = 1000 1.5
! same as previous, but keep default scaling factor
SEARCH_CONVERGENCE dgen = 1000
! best structure doesn't change in 1000 generations, then for lowered gausssian flag in 1500 generations, then 2250, etc.
SEARCH_CONVERGENCE dgen best = 1000 1.5
! the entire population doesn't change in 200 generations, then for lowered gausssian flag in 400 generations, etc.
SEARCH_CONVERGENCE dgen all = 200 2
The additional flags “all”,”dec”, and “best” can be used to specify whether all
configurations in the population, the best 10%, or only the best configuration
should be considered.
If no additional flag is given, SEARCH_CONVERGENCE dgen
will default to
checking the best 10% of the population.
The scaling factor will default to the inverse of the scaling factor used by
gaussian
for any of the three.
Defining values for more than one convergence criterion is allowed; in that case, partial convergence will be considered to have been reached once either condition is met, but full convergence is reached only once all conditions are met.
Changelog
Changed in version 0.12.0: Changed default values for SEARCH_CONVERGENCE gaussian
from 0.5 0.5 to
0.1 0.5.
Change default values for SEARCH_CONVERGENCE dgen
from 100
1/(scaling factor of gaussian
) to 200 0.75/(scaling factor of
gaussian
).