Octopus
minimizer_oct_m::loct_1dminimize Interface Reference

Detailed Description

Definition at line 185 of file minimizer.F90.

Data Types

interface  loct_minimize
 
interface  loct_minimize_direct
 

Public Member Functions

subroutine minimize_multidim (method, dim, x, step, line_tol, tolgrad, toldr, maxiter, f, write_iter_info, minimum, ierr)
 

Private Member Functions

subroutine oct_1dminimize (a, b, m, f, status)
 
subroutine minimize_multidim_nograd (method, dim, x, step, toldr, maxiter, f, write_iter_info, minimum, ierr)
 
subroutine minimize_multidim_nlopt (ierr, method, dim, x, step, toldr, maxiter, f, minimum, lb, ub)
 
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...
 

Member Function/Subroutine Documentation

◆ oct_1dminimize()

subroutine minimizer_oct_m::loct_1dminimize::oct_1dminimize ( real(real64), intent(inout)  a,
real(real64), intent(inout)  b,
real(real64), intent(inout)  m,
  f,
integer, intent(out)  status 
)
private

Definition at line 186 of file minimizer.F90.

◆ minimize_multidim_nograd()

subroutine minimizer_oct_m::loct_1dminimize::minimize_multidim_nograd ( integer, intent(in)  method,
integer, intent(in)  dim,
real(real64), dimension(:), intent(inout)  x,
real(real64), intent(in)  step,
real(real64), intent(in)  toldr,
integer, intent(in)  maxiter,
procedure(minimizer_function_i f,
procedure(info_no_grad_i write_iter_info,
real(real64), intent(out)  minimum,
integer, intent(out)  ierr 
)
private

Definition at line 240 of file minimizer.F90.

◆ minimize_multidim_nlopt()

subroutine minimizer_oct_m::loct_1dminimize::minimize_multidim_nlopt ( integer, intent(out)  ierr,
integer, intent(in)  method,
integer, intent(in)  dim,
real(real64), dimension(:), intent(inout)  x,
real(real64), intent(in)  step,
real(real64), intent(in)  toldr,
integer, intent(in)  maxiter,
  f,
real(real64), intent(out)  minimum,
real(real64), dimension(:), intent(in), optional  lb,
real(real64), dimension(:), intent(in), optional  ub 
)
private

Definition at line 266 of file minimizer.F90.

◆ minimize_multidim()

subroutine minimizer_oct_m::loct_1dminimize::minimize_multidim ( integer, intent(in)  method,
integer, intent(in)  dim,
real(real64), dimension(:), intent(inout)  x,
real(real64), intent(in)  step,
real(real64), intent(in)  line_tol,
real(real64), intent(in)  tolgrad,
real(real64), intent(in)  toldr,
integer, intent(in)  maxiter,
procedure(minimizer_with_grad_i f,
procedure(info_i write_iter_info,
real(real64), intent(out)  minimum,
integer, intent(out)  ierr 
)

Definition at line 294 of file minimizer.F90.

◆ minimize_sd()

subroutine minimizer_oct_m::loct_1dminimize::minimize_sd ( integer, intent(in)  dim,
real(real64), dimension(:), intent(inout)  x,
real(real64), intent(in)  step,
integer, intent(in)  maxiter,
procedure(minimizer_with_grad_i f,
procedure(info_i write_iter_info,
real(real64), intent(out)  minimum,
integer, intent(out)  ierr 
)
private

Definition at line 327 of file minimizer.F90.

◆ minimize_fire()

subroutine minimizer_oct_m::loct_1dminimize::minimize_fire ( integer, intent(in)  dim,
integer, intent(in)  space_dim,
real(real64), dimension(:), intent(inout)  x,
real(real64), intent(in)  step,
real(real64), intent(in)  tolgrad,
integer, intent(in)  maxiter,
procedure(minimizer_with_grad_i f,
procedure(info_i write_iter_info,
real(real64), intent(out)  en,
integer, intent(out)  ierr,
real(real64), dimension(:), intent(in)  mass,
integer, intent(in)  integrator 
)
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.

Parameters
[in]dimNumber of degrees of freedom. Assumed to be space_dim * N
[in]space_dimSpatial dimensions
[in,out]xDegrees of freedom to minimize
[in]stepTime-step of the algorithm
[in]tolgradTolerance for the gradient
[in]maxiterMaximum number of iterations
fGet the new gradients given a new x
write_iter_infoOutput for each iteration step
[in]massEffective masses for the relaxation
[in]integratorMolecular dynamics integrator for the velocity, see GOFireIntegrator

Definition at line 373 of file minimizer.F90.


The documentation for this interface was generated from the following file: