(git:3add494)
cp_lbfgs_optimizer_gopt Module Reference

routines that optimize a functional using the limited memory bfgs quasi-newton method. The process set up so that a master runs the real optimizer and the others help then to calculate the objective function. The arguments for the objective function are physically present in every processor (nedeed in the actual implementation of pao). In the future tha arguments themselves could be distributed. More...

Functions/Subroutines

subroutine, public cp_opt_gopt_create (optimizer, para_env, obj_funct, x0, m, print_every, wanted_relative_f_delta, wanted_projected_gradient, lower_bound, upper_bound, kind_of_bound, master, max_f_per_iter, trust_radius)
 initializes the optimizer More...
 
subroutine, public cp_opt_gopt_release (optimizer)
 releases the optimizer (see doc/ReferenceCounting.html) More...
 
logical function, public cp_opt_gopt_next (optimizer, n_iter, f, last_f, projected_gradient, converged, geo_section, force_env, gopt_param, spgr)
 goes to the next optimal point (after an optimizer iteration) returns true if converged More...
 
subroutine, public cp_opt_gopt_stop (optimizer)
 stops the optimization More...
 

Detailed Description

routines that optimize a functional using the limited memory bfgs quasi-newton method. The process set up so that a master runs the real optimizer and the others help then to calculate the objective function. The arguments for the objective function are physically present in every processor (nedeed in the actual implementation of pao). In the future tha arguments themselves could be distributed.

History
09.2003 globenv->para_env, retain/release, better parallel behaviour 01.2020 Space Group Symmetry introduced by Pierre-André Cazade [pcazade]
Author
Fawzi Mohamed
Version
2.2002

Function/Subroutine Documentation

◆ cp_opt_gopt_create()

subroutine, public cp_lbfgs_optimizer_gopt::cp_opt_gopt_create ( type(cp_lbfgs_opt_gopt_type), intent(out)  optimizer,
type(mp_para_env_type), pointer  para_env,
type(gopt_f_type), pointer  obj_funct,
real(kind=dp), dimension(:), intent(in)  x0,
integer, intent(in), optional  m,
integer, intent(in), optional  print_every,
real(kind=dp), intent(in), optional  wanted_relative_f_delta,
real(kind=dp), intent(in), optional  wanted_projected_gradient,
real(kind=dp), dimension(size(x0)), intent(in), optional  lower_bound,
real(kind=dp), dimension(size(x0)), intent(in), optional  upper_bound,
integer, dimension(size(x0)), intent(in), optional  kind_of_bound,
integer, intent(in), optional  master,
integer, intent(in), optional  max_f_per_iter,
real(kind=dp), intent(in), optional  trust_radius 
)

initializes the optimizer

Parameters
optimizer...
para_env...
obj_funct...
x0...
m...
print_every...
wanted_relative_f_delta...
wanted_projected_gradient...
lower_bound...
upper_bound...
kind_of_bound...
master...
max_f_per_iter...
trust_radius...
History
02.2002 created [fawzi] 09.2003 refactored (retain/release,para_env) [fawzi]
Author
Fawzi Mohamed
Note
redirects the lbfgs output the the default unit

Definition at line 202 of file cp_lbfgs_optimizer_gopt.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cp_opt_gopt_release()

subroutine, public cp_lbfgs_optimizer_gopt::cp_opt_gopt_release ( type(cp_lbfgs_opt_gopt_type), intent(inout)  optimizer)

releases the optimizer (see doc/ReferenceCounting.html)

Parameters
optimizerthe object that should be released
History
02.2002 created [fawzi] 09.2003 dealloc_ref->release [fawzi]
Author
Fawzi Mohamed

Definition at line 303 of file cp_lbfgs_optimizer_gopt.F.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cp_opt_gopt_next()

logical function, public cp_lbfgs_optimizer_gopt::cp_opt_gopt_next ( type(cp_lbfgs_opt_gopt_type), intent(inout)  optimizer,
integer, intent(out), optional  n_iter,
real(kind=dp), intent(out), optional  f,
real(kind=dp), intent(out), optional  last_f,
real(kind=dp), intent(out), optional  projected_gradient,
logical, intent(out)  converged,
type(section_vals_type), pointer  geo_section,
type(force_env_type), pointer  force_env,
type(gopt_param_type), pointer  gopt_param,
type(spgr_type), optional, pointer  spgr 
)

goes to the next optimal point (after an optimizer iteration) returns true if converged

Parameters
optimizerthe optimizer that goes to the next point
n_iter...
f...
last_f...
projected_gradient...
converged...
geo_section...
force_env...
gopt_param...
spgr...
Returns
...
History
01.2020 modified [pcazade]
Author
Fawzi Mohamed
Version
2.2002
Note
if you deactivate convergence control it returns never false

Definition at line 771 of file cp_lbfgs_optimizer_gopt.F.

Here is the caller graph for this function:

◆ cp_opt_gopt_stop()

subroutine, public cp_lbfgs_optimizer_gopt::cp_opt_gopt_stop ( type(cp_lbfgs_opt_gopt_type), intent(inout)  optimizer)

stops the optimization

Parameters
optimizer...
History
none
Author
Fawzi Mohamed
Version
2.2002

Definition at line 801 of file cp_lbfgs_optimizer_gopt.F.

Here is the call graph for this function:
Here is the caller graph for this function: