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

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(this) | init_base (this, max_iterations, tolerance, 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. | |
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. | |
Definition at line 55 of file optimizer.f90.
|
pure virtual |
Definition at line 74 of file optimizer.f90.
| this | The optimizer object. |
Definition at line 98 of file optimizer.f90.
| 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 | ||
| ) |
| this | The optimizer object. |
| max_iterations | The maximum number of iterations. |
| tolerance | The tolerance for the optimization loop. |
| max_runtime | The maximum runtime in seconds. |
Definition at line 96 of file optimizer.f90.
|
pure virtual |
Definition at line 71 of file optimizer.f90.
|
pure virtual |
Definition at line 77 of file optimizer.f90.
| procedure, pass(this) optimizer::optimizer_t::print_status | ( | class(optimizer_t), intent(in) | this, |
| integer, intent(in) | stop_flag, | ||
| integer, intent(in) | iter | ||
| ) |
| this | The optimizer object. |
| stop_flag | The stopping flag. |
| iter | The number of iterations performed. |
Definition at line 100 of file optimizer.f90.
| 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.
| this | The optimizer object. |
| problem | The problem object. |
| design | The design object. |
| simulation | The simulation object. |
Definition at line 90 of file optimizer.f90.
|
pure virtual |
Definition at line 79 of file optimizer.f90.
|
pure virtual |
Definition at line 81 of file optimizer.f90.
|
pure virtual |
Definition at line 84 of file optimizer.f90.
Definition at line 59 of file optimizer.f90.
Definition at line 63 of file optimizer.f90.
Definition at line 61 of file optimizer.f90.