Basin hopping¶
Basin hopping is a Monte Carlo method in which the energy of each configuration is taken to be the energy of a local minimum [BH_WD97].
The driver stores bh.log and lockfile in the results directory. A second
driver in that directory logs Couldn't get lock and exits. See
Communicator for how the lock is taken. Registering results and
recording a new state both create their directory when that path is already
present.
At each basin hopping step the client will print out:
the current energy (
current),the trial energy (
trial),the lowest energy found (
global min),the number of force calls needed to minimize the structure (
fc),the acceptance ratio (
ar),and the current max displacement (
md).
Acceptance¶
The client minimizes each trial before the test. de is the quenched energy
difference between that minimum and the current minimum. During steps, an
uphill hop is accepted with probability exp(-de/(kB*temperature)) when
temperature and kB are positive. kB is in eV/K, and temperature is in
kelvin. A temperature or kB that is not positive rejects the uphill hop.
Other hops are accepted. quenching_steps reject an uphill hop and skip
the factor.
Notes¶
eOndefaults to letting displacements occur from minimized structures as per the method of White and Mayne [BH_WM98], which is controlled bysiginificant_structureThe occasional jumping variant of Iwamatsu and Okabe [BH_IO04] is also implemented, and is controlled by
jump_max.
Configuration¶
[Basin Hopping]
- pydantic model eon.schema.BasinHoppingConfig[source]¶
- Fields:
steps (int)displacement (float)write_unique (bool)initial_state_pool_size (int)initial_random_structure_probability (float)push_apart_distance (float)adjust_displacement (bool)adjust_fraction (float)adjust_period (int)target_ratio (float)displacement_distribution (Literal['gaussian', 'uniform'])max_displacement_algorithm (str)quenching_steps (int)swap_probability (float)single_atom_displace (bool)jump_max (int)significant_structure (bool)jump_steps (int)
- field write_unique: bool = False¶
The files are named
min_xxxxx.conandenergy_xxxxx.con, where ‘xxxxx’ corresponds to the Monte Carlo step where the structure was first seen. For clusters it is important to seteon.schema.StructureComparisonConfig.check_rotation.If true, the client will write out all the unique geometries and their energies
- field initial_state_pool_size: int = 1¶
A value of 1 ensures simulation always starts from the lowest energy found so far.
Number of lowest energy states in the pool from which the initial structures are drawn.
- field initial_random_structure_probability: float = 0.0¶
Probability that the initial structure is generated randomly.
- field push_apart_distance: float = 0.4¶
This criterion is enforced for both the initial structure and all those generated by random displacement.
Push atoms apart until no atoms are closer than this distance.
- field adjust_displacement: bool = True¶
Flag to automatically adjust the displacement to meet the target acceptance ratio.
- field adjust_fraction: float = 0.05¶
Fraction by which to change the step size in order to meet the target acceptance ratio.
- field target_ratio: float = 0.5¶
Target acceptance ratio used to determine whether to increase or decrease the step size.
- field displacement_distribution: Literal['gaussian', 'uniform'] = 'uniform'¶
eon.schema.BasinHoppingConfig.displacementfor the gaussian will serve as the standard deviation of the normal distribution used to select displacements.uniform will select a random number between the positive and negative values of
eon.schema.BasinHoppingConfig.displacement.Distribution used for the displacement of each atom.
- field swap_probability: float = 0.0¶
The swap step selects two atoms of different elements and swaps their position.
Probability (in range [0,1]) that a swapping step takes place instead of a displacement step.
- field jump_max: int = 0¶
This provides a more global search when the structure is stuck in a certain basin. The number of jump steps is assigned in
eon.schema.BasinHoppingConfig.jump_steps. See Iwamatsu and Okabe [BH_IO04] for more details.Number of consecutive rejected steps after which jump steps should be taken.
References¶
Masao Iwamatsu and Yutaka Okabe. Basin hopping with occasional jumping. Chemical Physics Letters, 399(4):396–400, December 2004. doi:10.1016/j.cplett.2004.10.032.
David J. Wales and Jonathan P. K. Doye. Global Optimization by Basin-Hopping and the Lowest Energy Structures of Lennard-Jones Clusters Containing up to 110 Atoms. The Journal of Physical Chemistry A, 101(28):5111–5116, July 1997. doi:10.1021/jp970984n.
Ronald P White and Howard R Mayne. An investigation of two approaches to basin hopping minimization for atomic and molecular clusters. Chemical Physics Letters, 289(5-6):463–468, June 1998. doi:10.1016/S0009-2614(98)00431-X.