(git:6344619)
Loading...
Searching...
No Matches
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...

Data Types

type  cp_lbfgs_opt_gopt_type
 info for the optimizer (see the description of this module) More...

Functions/Subroutines

subroutine cp_opt_gopt_setulb (optimizer, spgr, iwunit)
 calls the L-BFGS optimizer
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
subroutine, public cp_opt_gopt_release (optimizer)
 releases the optimizer (see doc/ReferenceCounting.html)
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
subroutine, public cp_opt_gopt_stop (optimizer)
 stops the optimization

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_setulb()

subroutine cp_lbfgs_optimizer_gopt::cp_opt_gopt_setulb ( type(cp_lbfgs_opt_gopt_type), intent(inout) optimizer,
type(spgr_type), optional, pointer spgr,
integer, optional iwunit )

calls the L-BFGS optimizer

Parameters
optimizerthe optimizer state
spgroptional space group information
iwunitoptional output unit

Definition at line 152 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_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 191 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 296 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 659 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 689 of file cp_lbfgs_optimizer_gopt.F.

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