LanczosSaddleSearch¶
- class LanczosSaddleSearch(constraints=None, initial_direction_generator=None, index_selector=None, adaptive_displacement=False, active_sphere=None, min_move_distance=None, max_forces=None, max_steps=None, max_step_length=None, optimizer_method=None, lanczos_relative_error=None, lanczos_maximum_iterations=None, finite_difference=None, finite_difference_method=None, reorthogonalize=None)¶
Class for performing a saddle search using the Lanczos algorithm.
- Parameters:
constraints (list of ints) – The atoms that should be constrained during the process search. Default: []
initial_direction_generator (DirectionGenerator) – The generator for the initial displacements. Default: RandomDirection
index_selector (callable) – A callable to select the indices to displace. Takes as input the current configuration and returns the indices to displace.
adaptive_displacement (bool) – When using adaptive displacement the initial atom displacement magnitude will be set dynamically. The chosen magnitude will be 0.8 multiplied with the average distance between reactant and saddle point. This will overewrite the value set in by the initial_direction_generator.
active_sphere (PhysicalQuantity of type length) – The radius of the sphere that contains all atoms that have moved.
min_move_distance (PhysicalQuantity of type length) – The minimum distance that the selected indices must have moved between reactant and saddle. All saddle configurations that do not meet this criteria will be discarded.
max_forces (PhysicalQuantity of type force) – The maximum forces allowed in the orthogonal optimization. Default: 0.01*eV/Angstrom
max_steps (int) – The maximum number of uphill steps and orthogonal steps. Default: 200
max_step_length (PhysicalQuantity of type length) – The maximum step length for the uphill steps and orthogonal steps. Default: 0.1*Angstrom
optimizer_method (list of
OptimizerMethod
) – The optimizer method to use. Default: LBFGSlanczos_relative_error (float) – The relative error for the Lanczos algorithm. Default: 0.0001
lanczos_maximum_iterations (int) – The maximum number of iterations for the Lanczos algorithm. Default: 20
finite_difference (PhysicalQuantity of type length) – The step size for the finite difference estimation of the second derivatives. Default: 0.01*Angstrom
finite_difference_method (Forward | Central) – The type of finite difference used to estimate the second derivatives. Default: Forward
- reset()¶
Reset the state of the saddle search.
- run(reactant_configuration)¶
Run the saddle search algorithm.
- Parameters:
reactant_configuration (AtomicConfiguration) – The configuration to start the search from.
- Returns:
The data from the saddle search.
- Return type:
SaddleSearchData
- setRandomSeed(seed)¶
Set the random seed for the initial direction generator.
- Parameters:
seed (int) – The random seed.
Notes¶
LanczosSaddleSearch
is one of the three saddle search methods available for use in
AdaptiveKineticMonteCarlo
. The LanczosSaddleSearch
method uses the Lanczos
algorithm to determine the minimum mode towards the saddle point.
LanczosSaddleSearch
requires an initial direction which is used to initiate the saddle
search, controlled by the initial_direction_generator
argument. The direction generator should
be a callable that returns a vector. This callable will be used to generate a configuration from
which the saddle search is started. There are two pre-made direction generators available. The
RandomDirection
generates a random direction, while the HypersphereDirection
generates a radial vector on a hypersphere of given radius. Each time a new saddle search is
initiated, a new initial direction is generated.
In addition to the initial direction, one can specify which atom(s) to displace. This is
done using the index_selector
argument. This argument can be either a list of indices or a
(picklable) callable.
When a saddle point has been found, an object of type SaddleSearchData
. This object, most
importantly, contains the found saddle point as well as the lowest eigenvector, of the Hessian
matrix at the saddle point.