Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
Loading...
Searching...
No Matches
optimizer::optimizer_t Type Referenceabstract

Abstract optimizer class. More...

Inheritance diagram for optimizer::optimizer_t:

Public Member Functions

procedure(optimizer_init_from_json), deferred, pass, public init_from_json (this, parameters, problem, design, simulation)
 Initialize the optimizer, associate it with a specific problem.
 
procedure(optimizer_free), deferred, pass, public free (this)
 Free resources.
 
procedure(optimizer_initialize), deferred, pass, public initialize (this, problem, design, simulation)
 Prepare the optimizer before starting the optimization loop.
 
procedure(optimizer_step), deferred, pass, public step (this, iter, problem, design, simulation)
 Perform a single optimization step.
 
procedure(optimizer_validate), deferred, pass, public validate (this, problem, design)
 Validate the solution.
 
procedure(optimizer_write), deferred, pass, public write (this, iter, problem)
 Write the progress of the optimizer to the log file.
 
procedure, pass, public run (this, problem, design, simulation)
 Run the optimization loop.
 
procedure, pass(thisinit_base (this, max_iterations, tolerance, max_runtime)
 The base initializer.
 
procedure, pass(thisfree_base (this)
 Free base resources.
 
procedure, pass(thisprint_status (this, stop_flag, iter)
 Print status message.
 

Public Attributes

integer, public max_iterations = 0
 The maximum number of iterations.
 
real(kind=rp), public tolerance = 0.0_rp
 The tolerance for the optimization loop.
 
real(kind=rp), public max_runtime = -1.0_rp
 Maximum runtime in seconds.
 

Detailed Description

Definition at line 55 of file optimizer.f90.

Member Function/Subroutine Documentation

◆ free()

procedure(optimizer_free), deferred, pass, public optimizer::optimizer_t::free ( class(optimizer_t), intent(inout this)
pure virtual

Definition at line 74 of file optimizer.f90.

◆ free_base()

procedure, pass(this) optimizer::optimizer_t::free_base ( class(optimizer_t), intent(inout this)
Parameters
thisThe optimizer object.

Definition at line 98 of file optimizer.f90.

◆ init_base()

procedure, pass(this) optimizer::optimizer_t::init_base ( class(optimizer_t), intent(inout this,
integer, intent(in max_iterations,
real(kind=rp), intent(in tolerance,
real(kind=rp), intent(in), optional  max_runtime 
)
Parameters
thisThe optimizer object.
max_iterationsThe maximum number of iterations.
toleranceThe tolerance for the optimization loop.
max_runtimeThe maximum runtime in seconds.

Definition at line 96 of file optimizer.f90.

◆ init_from_json()

procedure(optimizer_init_from_json), deferred, pass, public optimizer::optimizer_t::init_from_json ( class(optimizer_t), intent(inout this,
type(json_file), intent(inout parameters,
class(problem_t), intent(inout problem,
class(design_t), intent(in design,
type(simulation_t), intent(in), optional  simulation 
)
pure virtual

Definition at line 71 of file optimizer.f90.

◆ initialize()

procedure(optimizer_initialize), deferred, pass, public optimizer::optimizer_t::initialize ( class(optimizer_t), intent(inout this,
class(problem_t), intent(inout problem,
class(design_t), intent(inout design,
type(simulation_t), intent(inout), optional  simulation 
)
pure virtual

Definition at line 77 of file optimizer.f90.

◆ print_status()

procedure, pass(this) optimizer::optimizer_t::print_status ( class(optimizer_t), intent(in this,
integer, intent(in stop_flag,
integer, intent(in iter 
)
Parameters
thisThe optimizer object.
stop_flagThe stopping flag.
iterThe number of iterations performed.

Definition at line 100 of file optimizer.f90.

◆ run()

procedure, pass, public optimizer::optimizer_t::run ( class(optimizer_t), intent(inout this,
class(problem_t), intent(inout problem,
class(design_t), intent(inout design,
type(simulation_t), intent(inout), optional  simulation 
)

The optimization loop can be terminated based on a maximum runtime. In this case, a cumulative average is used to determine if the next iteration would exceed the maximum runtime.

Parameters
thisThe optimizer object.
problemThe problem object.
designThe design object.
simulationThe simulation object.

Definition at line 90 of file optimizer.f90.

◆ step()

procedure(optimizer_step), deferred, pass, public optimizer::optimizer_t::step ( class(optimizer_t), intent(inout this,
integer, intent(in iter,
class(problem_t), intent(inout problem,
class(design_t), intent(inout design,
type(simulation_t), intent(inout), optional  simulation 
)
pure virtual

Definition at line 79 of file optimizer.f90.

◆ validate()

procedure(optimizer_validate), deferred, pass, public optimizer::optimizer_t::validate ( class(optimizer_t), intent(inout this,
class(problem_t), intent(in problem,
class(design_t), intent(in design 
)
pure virtual

Definition at line 81 of file optimizer.f90.

◆ write()

procedure(optimizer_write), deferred, pass, public optimizer::optimizer_t::write ( class(optimizer_t), intent(inout this,
integer, intent(in iter,
class(problem_t), intent(in problem 
)
pure virtual

Definition at line 84 of file optimizer.f90.

Member Data Documentation

◆ max_iterations

integer, public optimizer::optimizer_t::max_iterations = 0

Definition at line 59 of file optimizer.f90.

◆ max_runtime

real(kind=rp), public optimizer::optimizer_t::max_runtime = -1.0_rp

Definition at line 63 of file optimizer.f90.

◆ tolerance

real(kind=rp), public optimizer::optimizer_t::tolerance = 0.0_rp

Definition at line 61 of file optimizer.f90.


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