Skip to content

Theory of node based shape optimization

danielandresarcones edited this page Apr 14, 2022 · 2 revisions

General solution scheme

ShapeOptimizationApplication solves a discretized optimization problem through node-based shape optimization. Any given discretized optimization problem can be stated as:

f1

with F the objective function, and G as inequality and H equality sets of constraints. They are functions of the vector s of design variables and the vector u of ndof discrete state variables. The state variables u are a solution of a set S of state equations that are calculated previously. This equation can be expressed in Lagrangian form:

f4

The objective of the optimization process is often the calculation of the derivative of the Lagrangian, as f5 to update the design variables. In a general way, this can be calculated as:

f6

In an optimum, the Karush-Kuhn-Tucker (KKT) conditions are fulfilled:

f2

where λ, μ and u* are vectors of Lagrange multipliers for the function L. This optimization problem is solved using steepest gradient descent method. To this end, the gradient dF/ds must be calculated, generally through sensitivity analysis methods. Once dF/ds is obtained, it is used for updating the values of s with the scheme

f3

where αs is a line search factor,Δt is the timestep size and d is the negative gradient dF/ds. This process is solved iteratively until reaching a minimum. Being a numerical approach, the KKT conditions are never fully fulfilled, and the objective is to approach the minimum up to a reasonable accuracy degree.

Therefore, the general shape optimization loop would be:

  1. Solve primal problem.
  2. Calculate response values for F and their gradient using sensitivity analysis.
  3. Update design values.
  4. Check convergence.

In node-based shape optimization, the nodes of the geometry discretization are directly related with the shape design variables. The differences in the methods lie in the discretization and sensitivity analysis approaches.

References

Project information

Getting Started

Tutorials

Developers

Kratos structure

Conventions

Solvers

Debugging, profiling and testing

HOW TOs

Utilities

Kratos API

Kratos Structural Mechanics API

Clone this wiki locally