Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
Loading...
Searching...
No Matches
mma_optimizer::mma_optimizer_t Type Referenceabstract
Inheritance diagram for mma_optimizer::mma_optimizer_t:
Collaboration diagram for mma_optimizer::mma_optimizer_t:

Public Member Functions

generic init (this, parameters, problem, design, simulation)
 Initialize the MMA optimizer from JSON file.
 
generic init (this, problem, design, max_iterations, tolerance, enable_output, solver_parameters, simulation)
 Initialize the MMA optimizer from JSON file.
 
procedure, pass(thisinit_from_json (this, parameters, problem, design, simulation)
 Initialize the MMA optimizer from JSON file.
 
procedure, pass(thisinit_from_components (this, problem, design, max_iterations, tolerance, enable_output, solver_parameters, simulation)
 Initialize the MMA optimizer from JSON file.
 
procedure, pass(thisinitialize (this, problem, design, simulation)
 Prepare the MMA optimizer before starting the optimization loop.
 
procedure, pass(thisstep (this, iter, problem, design, simulation)
 Function for computing a step in the optimization loop.
 
procedure, pass(thisvalidate (this, problem, design)
 Validate the solution for the MMA optimizer.
 
procedure, pass(thiswrite (this, iter, problem)
 Write the progress of the MMA optimizer to the log file This subroutine logs the current iteration, objective values, constraint values, and convergence metrics to a CSV file.
 
procedure, pass(thisfree (this)
 
procedure, pass(thissave_checkpoint_components (this, filename, overwrite)
 Save the MMA optimizer-specific checkpoint data.
 
procedure, pass(thisload_checkpoint_components (this, filename)
 Restore the MMA optimizer-specific checkpoint data.
 
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, iter, design, overwrite, path, basename, extension)
 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, checkpoint_file, checkpoint_path, checkpoint_base, checkpoint_format, checkpoint_interval)
 The base initializer.
 
procedure, pass(thisfree_base (this)
 Free base resources.
 
procedure, pass(thisread_base_settings (this, solver_params)
 Read settings from JSON parameters file.
 
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.
 
procedure, pass(thisinit_log (this, problem, extra_headers, include_constraints, filename)
 Initialize optimization log.
 
procedure, pass(thiswrite_log (this, iter, problem, extra_values)
 Write optimization log entry.
 

Public Attributes

real(kind=rp) tolerance = 0.0_rp
 

Detailed Description

Definition at line 68 of file mma_optimizer.f90.

Member Function/Subroutine Documentation

◆ free() [1/2]

procedure, pass(this) mma_optimizer::mma_optimizer_t::free ( class(mma_optimizer_t), intent(inout this)

Definition at line 100 of file mma_optimizer.f90.

◆ free() [2/2]

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

Definition at line 100 of file optimizer.f90.

◆ free_base()

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

Definition at line 135 of file optimizer.f90.

◆ init() [1/2]

generic mma_optimizer::mma_optimizer_t::init ( class(mma_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 
)

Definition at line 91 of file mma_optimizer.f90.

◆ init() [2/2]

generic mma_optimizer::mma_optimizer_t::init ( class(mma_optimizer_t), intent(inout this,
class(problem_t), intent(inout problem,
class(design_t), intent(in design,
integer, intent(in max_iterations,
real(kind=rp), intent(in tolerance,
logical, intent(in enable_output,
type(json_file), intent(inout), optional  solver_parameters,
type(simulation_t), intent(in), optional  simulation 
)

Definition at line 91 of file mma_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,
character(len=*), intent(in), optional  checkpoint_file,
character(len=*), intent(in), optional  checkpoint_path,
character(len=*), intent(in), optional  checkpoint_base,
character(len=*), intent(in), optional  checkpoint_format,
integer, intent(in), optional  checkpoint_interval 
)
inherited

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.
checkpoint_fileThe checkpoint file to restart from.
checkpoint_pathThe path for saving checkpoint files.
checkpoint_baseThe base name for checkpoint files.
checkpoint_formatThe file format for checkpoint files.
checkpoint_intervalThe interval for saving checkpoints in iterations.

Definition at line 133 of file optimizer.f90.

◆ init_from_components()

procedure, pass(this) mma_optimizer::mma_optimizer_t::init_from_components ( class(mma_optimizer_t), intent(inout this,
class(problem_t), intent(inout problem,
class(design_t), intent(in design,
integer, intent(in max_iterations,
real(kind=rp), intent(in tolerance,
logical, intent(in enable_output,
type(json_file), intent(inout), optional  solver_parameters,
type(simulation_t), intent(in), optional  simulation 
)

Definition at line 93 of file mma_optimizer.f90.

◆ init_from_json() [1/2]

procedure, pass(this) mma_optimizer::mma_optimizer_t::init_from_json ( class(mma_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 
)

Definition at line 92 of file mma_optimizer.f90.

◆ init_from_json() [2/2]

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 virtualinherited

Definition at line 97 of file optimizer.f90.

◆ init_log()

procedure, pass(this) optimizer::optimizer_t::init_log ( class(optimizer_t), intent(inout this,
class(problem_t), intent(in problem,
character(len=*), dimension(:), intent(in), optional  extra_headers,
logical, intent(in), optional  include_constraints,
character(len=*), intent(in), optional  filename 
)
inherited
Parameters
[in,out]thisThe optimizer object.
[in]problemThe problem object.
[in]extra_headersHeader labels for extra log entries.
[in]include_constraintsInclude constraints in the log.
[in]filenameOutput filename for the log.

Definition at line 143 of file optimizer.f90.

◆ initialize() [1/2]

procedure, pass(this) mma_optimizer::mma_optimizer_t::initialize ( class(mma_optimizer_t), intent(inout this,
class(problem_t), intent(inout problem,
class(design_t), intent(inout design,
type(simulation_t), intent(inout), optional  simulation 
)

Definition at line 96 of file mma_optimizer.f90.

◆ initialize() [2/2]

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 virtualinherited

Definition at line 103 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 
)
inherited
Parameters
thisThe optimizer object.
filenameThe name of the file to load the checkpoint from.
iterThe iteration number read from the checkpoint.
designThe design object.

Definition at line 121 of file optimizer.f90.

◆ load_checkpoint_components() [1/2]

procedure, pass(this) mma_optimizer::mma_optimizer_t::load_checkpoint_components ( class(mma_optimizer_t), intent(inout this,
character(len=*), intent(in filename 
)

Definition at line 104 of file mma_optimizer.f90.

◆ load_checkpoint_components() [2/2]

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 virtualinherited

Definition at line 115 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 
)
inherited
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 141 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 
)
inherited
Parameters
thisThe optimizer object.
stop_flagThe stopping flag.
iterThe number of iterations performed.

Definition at line 139 of file optimizer.f90.

◆ read_base_settings()

procedure, pass(this) optimizer::optimizer_t::read_base_settings ( class(optimizer_t), intent(inout this,
type(json_file), intent(inout solver_params 
)
inherited
Parameters
thisThe optimizer object.
solver_paramsThe JSON file containing the optimizer parameters.

Definition at line 137 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 
)
inherited

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 127 of file optimizer.f90.

◆ save_checkpoint()

procedure, pass(this) optimizer::optimizer_t::save_checkpoint ( class(optimizer_t), intent(inout this,
integer, intent(in iter,
class(design_t), intent(inout design,
logical, intent(in overwrite,
character(len=*), intent(in), optional  path,
character(len=*), intent(in), optional  basename,
character(len=*), intent(in), optional  extension 
)
inherited
Parameters
thisThe optimizer object.
iterThe current iteration number.
designThe design object.
overwriteWhether to overwrite the file if it exists.
pathThe path where the checkpoint file will be saved.
basenameThe base name of the file to save the checkpoint.
extensionThe file extension to use for the checkpoint file.

Definition at line 119 of file optimizer.f90.

◆ save_checkpoint_components() [1/2]

procedure, pass(this) mma_optimizer::mma_optimizer_t::save_checkpoint_components ( class(mma_optimizer_t), intent(inout this,
character(len=*), intent(in filename,
logical, intent(in), optional  overwrite 
)

Definition at line 102 of file mma_optimizer.f90.

◆ save_checkpoint_components() [2/2]

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 virtualinherited

Definition at line 112 of file optimizer.f90.

◆ step() [1/2]

procedure, pass(this) mma_optimizer::mma_optimizer_t::step ( class(mma_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 
)

Definition at line 97 of file mma_optimizer.f90.

◆ step() [2/2]

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 virtualinherited

Definition at line 105 of file optimizer.f90.

◆ validate() [1/2]

procedure, pass(this) mma_optimizer::mma_optimizer_t::validate ( class(mma_optimizer_t), intent(inout this,
class(problem_t), intent(in problem,
class(design_t), intent(in design 
)

Definition at line 98 of file mma_optimizer.f90.

◆ validate() [2/2]

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 virtualinherited

Definition at line 107 of file optimizer.f90.

◆ write() [1/2]

procedure, pass(this) mma_optimizer::mma_optimizer_t::write ( class(mma_optimizer_t), intent(inout this,
integer, intent(in iter,
class(problem_t), intent(inout problem 
)
Parameters
thisThe MMA optimizer object.
iterThe current iteration number.
problemThe problem object.

Definition at line 99 of file mma_optimizer.f90.

◆ write() [2/2]

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

Definition at line 110 of file optimizer.f90.

◆ write_log()

procedure, pass(this) optimizer::optimizer_t::write_log ( class(optimizer_t), intent(inout this,
integer, intent(in iter,
class(problem_t), intent(in problem,
real(kind=rp), dimension(:), intent(in), optional  extra_values 
)
inherited
Parameters
[in,out]thisThe optimizer object.
[in]iterCurrent iteration number.
[in]problemThe problem object.
[in]extra_valuesExtra log values appended after problem entries.

Definition at line 145 of file optimizer.f90.

Member Data Documentation

◆ tolerance

real(kind=rp) mma_optimizer::mma_optimizer_t::tolerance = 0.0_rp

Definition at line 81 of file mma_optimizer.f90.


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