Octopus
|
Go to the source code of this file.
Modules | |
module | minimizer_oct_m |
Data Types | |
interface | minimizer_oct_m::minimizer_function_i |
interface | minimizer_oct_m::minimizer_with_grad_i |
interface | minimizer_oct_m::info_i |
interface | minimizer_oct_m::info_no_grad_i |
interface | minimizer_oct_m::loct_1dminimize |
interface | minimizer_oct_m::loct_1dminimize::loct_minimize |
interface | minimizer_oct_m::loct_1dminimize::loct_minimize_direct |
interface | nlo_set_min_objective |
Functions/Subroutines | |
subroutine | minimize_multidim (method, dim, x, step, line_tol, tolgrad, toldr, maxiter, f, write_iter_info, minimum, ierr) |
subroutine | minimize_sd (dim, x, step, maxiter, f, write_iter_info, minimum, ierr) |
subroutine | minimize_fire (dim, space_dim, x, step, tolgrad, maxiter, f, write_iter_info, en, ierr, mass, integrator) |
Implementation of the Fast Inertial Relaxation Engine (FIRE) More... | |
Variables | |
integer | minimizer_oct_m::minmethod_steepest_descent = 1 |
integer | minimizer_oct_m::minmethod_fr_cg = 2 |
integer | minimizer_oct_m::minmethod_pr_cg = 3 |
integer | minimizer_oct_m::minmethod_bfgs = 4 |
integer | minimizer_oct_m::minmethod_bfgs2 = 5 |
integer | minimizer_oct_m::minmethod_nmsimplex = 6 |
integer | minimizer_oct_m::minmethod_sd_native = -1 |
integer | minimizer_oct_m::minmethod_nlopt_bobyqa = 7 |
integer | minimizer_oct_m::minmethod_fire = 8 |
integer | minimizer_oct_m::minmethod_nlopt_lbfgs = 9 |
|
private |
Definition at line 402 of file minimizer.F90.
|
private |
Definition at line 435 of file minimizer.F90.
|
private |
Implementation of the Fast Inertial Relaxation Engine (FIRE)
The algorithm is defined in Erik Bitzek, et al., Phys. Rev. Lett. 97, 170201 (2006).
As other minimizers, this is based on two external functions, f that computes the new positions and gradients, and write_iter_info that returns control to the calling code to write information for each iteration.
Following the original paper, any molecular dynamics integrator can be used, defined by integrator
Importantly, the code assumes the dim is a multiple of 3. This is used for internal dot products.
[in] | dim | Number of degrees of freedom. Assumed to be space_dim * N |
[in] | space_dim | Spatial dimensions |
[in,out] | x | Degrees of freedom to minimize |
[in] | step | Time-step of the algorithm |
[in] | tolgrad | Tolerance for the gradient |
[in] | maxiter | Maximum number of iterations |
f | Get the new gradients given a new x | |
write_iter_info | Output for each iteration step | |
[in] | mass | Effective masses for the relaxation |
[in] | integrator | Molecular dynamics integrator for the velocity, see GOFireIntegrator |
Definition at line 481 of file minimizer.F90.