Neko-TOP
A portable framework for high-order spectral element flow toplogy optimization.
Loading...
Searching...
No Matches
steepest_descent_optimizer Module Reference

Steepest descent optimizer with move limits. More...

Data Types

type  steepest_descent_optimizer_t
 Steepest descent optimizer with move limits. More...
 

Functions/Subroutines

subroutine sd_optimizer_init_from_json (this, parameters, problem, design, simulation)
 Initialise the steepest descent optimizer from the case file.
 

Detailed Description

Implements the steepest descent method with move limits (SDM) of Appendix D in da Silva, Aage, Beck & Sigmund, "Large scale three-dimensional manufacturing tolerant stress-constrained topology optimization", IJNME (2021), Eqs. D22-D24. Each iteration

  1. takes the steepest-descent direction S = -G and zeroes the components that point out of the box at an active bound (D22),
  2. normalises it by its global maximum absolute value,
  3. adapts the per-variable move limits from the sign of the last two design changes, from the third iteration on (D23),
  4. takes a move-limited, box-constrained step of length step_length (D24).

The method handles box bounds only; problems with constraints are rejected in favour of the "mma" optimizer. There is no tolerance-based convergence criterion: the step reports convergence only when the bound-projected gradient vanishes, and otherwise the run is stopped by the base criteria (max_iterations, stop_design_change, max_runtime).

Function/Subroutine Documentation

◆ sd_optimizer_init_from_json()

subroutine steepest_descent_optimizer::sd_optimizer_init_from_json ( class(steepest_descent_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 
)

Reads optimization.solver and its steepest_descent object. The base settings are read after free, which resets them, and before init_base, which keeps them.

Parameters
thisThe steepest descent optimizer.
parametersThe JSON case file.
problemThe problem to optimise, which must have no constraints.
designThe design whose values start the optimisation.
simulationThe simulation, unused.

Definition at line 164 of file steepest_descent_optimizer.f90.

Here is the call graph for this function: