Tutorial

Welcome to the CASHOCS tutorial. In the following, we present several example programs that showcase how CASHOCS can be used to solve optimal control and shape optimization problems.

Note, that we assume that you are (at least somewhat) familiar with PDE constrained optimization and FEniCS. For a introduction to these topics, we can recommend the textbooks

However, we will also provide links to either the underlying theory of PDE constrained optimization or to the relevant documentation of FEniCS in this tutorial.

Note, that an overview over CASHOCS and its capabilities can be found in Blauth, cashocs: A Computational, Adjoint-Based Shape Optimization and Optimal Control Software.

Note

We recommend that you start with the introductory demos for optimal control problems, i.e., Distributed Control of a Poisson Problem and Documentation of the Config Files for Optimal Control Problems, as these demonstrate the basic ideas of CASHOCS. Additionally, they are a bit simpler than the introductory tutorials for shape optimization problems, i.e., Shape Optimization with a Poisson Problem and Documentation of the Config Files for Shape Optimization Problems.

Moreover, we note that some of CASHOCS functionality is explained only for optimal control, but not for shape optimization problems. This includes the contents of Coupled Problems - Picard Iteration, Distributed Control for Time Dependent Problems, Iterative Solvers for State and Adjoint Systems, Optimal Control with State Constraints. However, the corresponding functionalities only deal with either the definition of the state system, its (numerical) solution, or the definition of suitable cost functionals. Therefore, they are straightforward to adapt to the case of shape optimization.