`ALGORITHM`

`(1) Solve the State equation using a Multigrid solver `

`(2) Solve the adjoint equation using a Multigrid solver `

`(3) Calculate Gradients `

`(4) Update Design Variables`

**Multigrid for infinite dimensional preconditioners.**
Infinite dimensional preconditioners can be extremely efficient as was
explained in a previous lecture.
In that approach one uses a preconditioner
which is a partial differential operator in 3D, or an ODE in 2D design problems.
Sometime a pseudo-differential preconditioner may also result, such as in
transonic calculations with either the full potential or the Euler equations.
In any case, in order to apply the desired preconditioner one has to solve
a large scale sparse system. This system is
defined on the boundary of the original domain for boundary control and shape design
problems.
In addition to this there is also the state and costate equations that needs
to be solved per each optimization iteration.

Multigrid can be used in these type of methods as a fast solver for the state equations, adjoint equations and the equation for the preconditioner step. These multigrid solvers for the different parts can be completely independent and actually one may be replaced by some other fast solver. A typical algorithm may looks as follows,

`ALGORITHM`

`(1) Solve the State equation using a Multigrid solver `

`(2) Solve the adjoint equation using a Multigrid solver `

`(3) Calculate Gradients `

`(4) Apply Infinite dimensional Preconditioner Using a Multigrid Solver`

`(5) Update Design Variables `