Training 4: adjoint solvers

Summary
Adjoint solvers: continuous vs discrete, recent advances and remaining challenges, applications beyond optimisation