|
Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
|


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, max_runtime) |
| Initialize the MMA optimizer from JSON file. | |
| procedure, pass(this) | init_from_json (this, parameters, problem, design, simulation) |
| Initialize the MMA optimizer from JSON file. | |
| procedure, pass(this) | init_from_components (this, problem, design, max_iterations, tolerance, enable_output, solver_parameters, simulation, max_runtime) |
| Initialize the MMA optimizer from JSON file. | |
| procedure, pass(this) | initialize (this, problem, design, simulation) |
| Prepare the MMA optimizer before starting the optimization loop. | |
| procedure, pass(this) | step (this, iter, problem, design, simulation) |
| Function for computing a step in the optimization loop. | |
| procedure, pass(this) | validate (this, problem, design) |
| Validate the solution for the MMA optimizer. | |
| procedure, pass(this) | write (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(this) | free (this) |
| procedure, pass(this) | save_checkpoint_components (this, filename, overwrite) |
| Save the MMA optimizer-specific checkpoint data. | |
| procedure, pass(this) | load_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(this) | save_checkpoint (this, filename, iter, design, overwrite) |
| Save a checkpoint of the optimizer state. | |
| procedure, pass(this) | load_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(this) | init_base (this, optimizer_type, max_iterations, max_runtime) |
| The base initializer. | |
| procedure, pass(this) | free_base (this) |
| Free base resources. | |
| procedure, pass(this) | print_status (this, stop_flag, iter) |
| Print status message. | |
| procedure, pass(this) | out_of_time (this, step_time) |
| Estimate if we are out of time. | |
Public Attributes | |
| real(kind=rp) | tolerance = 0.0_rp |
Definition at line 69 of file mma_optimizer.f90.
| procedure, pass(this) mma_optimizer::mma_optimizer_t::free | ( | class(mma_optimizer_t), intent(inout) | this | ) |
Definition at line 102 of file mma_optimizer.f90.
|
pure virtualinherited |
Definition at line 80 of file optimizer.f90.
|
inherited |
| this | The optimizer object. |
Definition at line 115 of file optimizer.f90.
| 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 93 of file mma_optimizer.f90.
| 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, | ||
| real(kind=rp), intent(in), optional | max_runtime | ||
| ) |
Definition at line 93 of file mma_optimizer.f90.
|
inherited |
Interface for reading a checkpoint Base initializer for the optimizer
| this | The optimizer object. |
| optimizer_type | The type of the optimizer. |
| max_iterations | The maximum number of iterations. |
| max_runtime | The maximum runtime in seconds. |
Definition at line 113 of file optimizer.f90.
| 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, | ||
| real(kind=rp), intent(in), optional | max_runtime | ||
| ) |
Definition at line 95 of file mma_optimizer.f90.
| 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 94 of file mma_optimizer.f90.
|
pure virtualinherited |
Definition at line 77 of file optimizer.f90.
| 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 98 of file mma_optimizer.f90.
|
pure virtualinherited |
Definition at line 83 of file optimizer.f90.
|
inherited |
| this | The optimizer object. |
| filename | The name of the file to load the checkpoint from. |
| iter | The current iteration number. |
| design | The design object. |
Definition at line 101 of file optimizer.f90.
| 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 106 of file mma_optimizer.f90.
|
pure virtualinherited |
Definition at line 95 of file optimizer.f90.
|
inherited |
| this | The optimizer object. |
| step_time | The time taken for the latest iteration. |
Definition at line 119 of file optimizer.f90.
|
inherited |
| this | The optimizer object. |
| stop_flag | The stopping flag. |
| iter | The number of iterations performed. |
Definition at line 117 of file optimizer.f90.
|
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.
| this | The optimizer object. |
| problem | The problem object. |
| design | The design object. |
| simulation | The simulation object. |
Definition at line 107 of file optimizer.f90.
|
inherited |
| this | The optimizer object. |
| filename | The name of the file to save the checkpoint. |
| iter | The current iteration number. |
| design | The design object. |
| overwrite | Whether to overwrite the file if it exists. |
Definition at line 99 of file optimizer.f90.
| 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 104 of file mma_optimizer.f90.
|
pure virtualinherited |
Definition at line 92 of file optimizer.f90.
| 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 99 of file mma_optimizer.f90.
|
pure virtualinherited |
Definition at line 85 of file optimizer.f90.
| 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 100 of file mma_optimizer.f90.
|
pure virtualinherited |
Definition at line 87 of file optimizer.f90.
| procedure, pass(this) mma_optimizer::mma_optimizer_t::write | ( | class(mma_optimizer_t), intent(inout) | this, |
| integer, intent(in) | iter, | ||
| class(problem_t), intent(in) | problem | ||
| ) |
| this | The MMA optimizer object. |
| iter | The current iteration number. |
| problem | The problem object. |
Definition at line 101 of file mma_optimizer.f90.
|
pure virtualinherited |
Definition at line 90 of file optimizer.f90.
Definition at line 82 of file mma_optimizer.f90.