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(optimizer_save_checkpoint_components), deferred, pass save_checkpoint_components (this, filename, overwrite)
 Save optimizer-specific components to checkpoint.
 
procedure(optimizer_load_checkpoint_components), deferred, pass load_checkpoint_components (this, filename)
 Load optimizer-specific components from checkpoint.
 
procedure, pass(thissave_checkpoint (this, filename, iter, design, overwrite)
 Save a checkpoint of the optimizer state.
 
procedure, pass(thisload_checkpoint (this, filename, iter, design)
 Restore the optimizer state from a checkpoint.
 
procedure, pass, public run (this, problem, design, simulation)
 Run the optimization loop.
 
procedure, pass(thisinit_base (this, optimizer_type, max_iterations, max_runtime)
 The base initializer.
 
procedure, pass(thisfree_base (this)
 Free base resources.
 
procedure, pass(thisprint_status (this, stop_flag, iter)
 Print status message.
 
procedure, pass(thisout_of_time (this, step_time)
 Estimate if we are out of time.
 

Detailed Description

Definition at line 54 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 80 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 115 of file optimizer.f90.

◆ init_base()

procedure, pass(this) optimizer::optimizer_t::init_base ( class(optimizer_t), intent(inout this,
character(len=*), intent(in optimizer_type,
integer, intent(in max_iterations,
real(kind=rp), intent(in), optional  max_runtime 
)

Interface for reading a checkpoint Base initializer for the optimizer

Parameters
thisThe optimizer object.
optimizer_typeThe type of the optimizer.
max_iterationsThe maximum number of iterations.
max_runtimeThe maximum runtime in seconds.

Definition at line 113 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 77 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 83 of file optimizer.f90.

◆ load_checkpoint()

procedure, pass(this) optimizer::optimizer_t::load_checkpoint ( class(optimizer_t), intent(inout this,
character(len=*), intent(in filename,
integer, intent(out iter,
class(design_t), intent(inout design 
)
Parameters
thisThe optimizer object.
filenameThe name of the file to load the checkpoint from.
iterThe current iteration number.
designThe design object.

Definition at line 101 of file optimizer.f90.

◆ load_checkpoint_components()

procedure(optimizer_load_checkpoint_components), deferred, pass optimizer::optimizer_t::load_checkpoint_components ( class(optimizer_t), intent(inout this,
character(len=*), intent(in filename 
)
pure virtual

Definition at line 95 of file optimizer.f90.

◆ out_of_time()

procedure, pass(this) optimizer::optimizer_t::out_of_time ( class(optimizer_t), intent(inout this,
real(kind=rp), intent(in step_time 
)
Parameters
thisThe optimizer object.
step_timeThe time taken for the latest iteration.
Returns
out_of_time Logical indicating if we are out of time.

Definition at line 119 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 117 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 107 of file optimizer.f90.

◆ save_checkpoint()

procedure, pass(this) optimizer::optimizer_t::save_checkpoint ( class(optimizer_t), intent(inout this,
character(len=*), intent(in filename,
integer, intent(in iter,
class(design_t), intent(inout design,
logical, intent(in), optional  overwrite 
)
Parameters
thisThe optimizer object.
filenameThe name of the file to save the checkpoint.
iterThe current iteration number.
designThe design object.
overwriteWhether to overwrite the file if it exists.

Definition at line 99 of file optimizer.f90.

◆ save_checkpoint_components()

procedure(optimizer_save_checkpoint_components), deferred, pass optimizer::optimizer_t::save_checkpoint_components ( class(optimizer_t), intent(inout this,
character(len=*), intent(in filename,
logical, intent(in), optional  overwrite 
)
pure virtual

Definition at line 92 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 85 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 87 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 90 of file optimizer.f90.


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