|Authors||S. W. Funke, J. S. Dokken, A. Johansson and S. Schmidt|
|Title||Automatic Adjoints of Multimesh Finite Element Discretisations|
|Project(s)||OptCutCell: Simulation-based optimisation with dynamic domains, Center for Biomedical Computing (SFF)|
|Publication Type||Talks, invited|
|Year of Publication||2017|
|Location of Talk||Atlanta, USA|
|Publisher||SIAM Conference on Computational Science & Engineering|
Many interesting physics-driven optimisation problems include dynamic domains (i.e. domains that change in time). One can think of the fluid-fluid interaction in a mixing process or the fluid-structure interaction of a rotating turbine or propeller. In this talk, we present an approach for solving such dynamic optimisation problems based on a multi-mesh idea: we allow the computational domain to consist of multiple meshes which can independently move. These meshes are then coupled in the variational formulation, typically through Nitsche terms. This approach is particularly promising in a PDE-constrained optimisation setting, since it allows even large movements of the domain without non-differentiable and computationally expensive remeshing steps. We implemented this approach within the FEniCS and dolfin-adjoint projects and demonstrate that it can be combined with a high-degree of automation and code generation. The user specifies the variational formulation including the coupling terms in the domain-specific language UFL, from which assembly code is automatically generated via the FEniCS form compiler. The associated adjoint equations are derived automatically from the UFL description, and solved for a specific forward state and mesh-movements. We give examples of PDE-constrained optimisation problems with dynamic domains that can now be solved in a few dozen lines of Python code.