@misc {26613,
	title = {Algorithmic Differentiation for Shape Optimization Problems in the High Level Finite Element Framework FEniCS},
	howpublished = {SIAM Conference on Computational Science and Engineering (CSE19), Spokane, Washington, USA},
	year = {2019},
	abstract = {Shape optimization problems constrained by partial differential equations (PDEs) are ever-present in the area of scientific computing, for example structural mechanics, computational fluid dynamics and acoustics. The PDEs considered in such applications spans a broad spectrum, ranging from steady state, linear equations, to transient non-linear equations.To efficiently solve the shape optimization problem, one has to consider shape sensitivities and shape Hessians of the PDEs. A popular approach is the adjoint method. Deriving the adjoint equations by hand is known to be cumbersome and error-prone. We propose an approach where this derivation is computed by a high level algorithmic differentiation tool. The shape sensitivities are computed by discrete derivatives of the mesh node sensitivities.An advantage of our approach is that only the forward problem has to be postulated as input. Then the algorithm creates a computational tape that tracks the propagation of variables and computes corresponding gradients and Hessians.By using the operator overloading approach we inherit the parallelism and performance of the software used to solve the PDE. Our software is overloading the framework FEniCS, which has a high level Python interface and generates parallel, optimized C++ code. We illustrate the efficiency and robustness of the code by presenting results for several PDEs with a wide range of solution methods.},
	author = {J{\o}rgen Schartum {Dokken}},
	editor = {Simon W {Funke} and Mitusch, Sebastian and Schmidt, Stephan}
}
@misc {25867,
	title = {Towards Algorithmic Differentiation of shape optimization problems with time-dependent PDE-constraints},
	year = {2018},
	address = {FEniCS 18, Oxford, UK},
	keywords = {Algorithmic Differentiation, FEniCS, pyadjoint, Shape optimization},
	author = {J{\o}rgen Schartum {Dokken}},
	editor = {Simon W {Funke}}
}
@misc {25145,
	title = {Automatic Adjoints of Multimesh Finite Element Discretisations},
	howpublished = {Atlanta, USA},
	year = {2017},
	publisher = {SIAM Conference on Computational Science \& Engineering},
	abstract = {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.},
	author = {Simon W {Funke} and J{\o}rgen Schartum {Dokken} and Johansson, August and Schmidt, Stephan}
}
@misc {25452,
	title = {Optimization Problems in Dynamical Domains with Unfitted Meshes},
	howpublished = {X-DMS 2017, Ume{\r a}, Sweden},
	year = {2017},
	author = {Simon W {Funke} and J{\o}rgen Schartum {Dokken} and Johansson, August and Schmidt, Stephan}
}
@misc {25420,
	title = {Shape Optimization with Multiple Meshes},
	howpublished = {FEniCS 2017 conference, Luxembourg},
	year = {2017},
	abstract = {For shape optimization problems, the computational domain is the design variable. Changing the shape of an airfoil in a channel to minimize drag is such a problem. The evolving domains complicate the numerical solution of shape optimization problems, and typically require large mesh deformations with quality checks and a re-meshing software as a fallback. We propose an approach for solving shape optimization problems on multiple overlapping meshes. In this approach, each mesh can be moved freely and hence the multi-mesh approach allows larger deformation of the domain than standard single-mesh approaches. The approach has been implemented in FEniCS and dolfin-adjoint, by employing the already tested environment for multi-mesh. We give examples of derivation of the shape-optimization problem for a Stokes flow and present implementation of this in FEniCS.Consider a general PDE constrained shape optimization problem we want to minimize a goal functional J, which is subject to a state equation F, with solution u over the domain Omega. We choose to divide the domain Omega into two non-overlapping domains by creating an artificial interface Gamma, such that the union of Omega0 and Omega1 is the original domain Omega. This is depicted in Figure 1. Extension to an arbitrary number of overlapping domains is possible. The weak formulation of the state equations are then formulated and the continuity over the artificial boundary is enforced by using Nitsches method.For minimization, we choose a gradient based scheme, and find the gradient by using the adjoint method. By employing the Hadamard formulas for Volume and Surface objective functions one can achieve the functional sensitivities as a function of the moving boundary and not the domain.A concrete example of this approach is the shape optimization of an obstacle in Stokes-flow in the domain specified in Figure 2.For deformation of the mesh, we have used two different deformation equations, a Laplacian smoothing and a set of Eikonal convection equations. For the multi-mesh problem, deformation is only done one the front mesh, while the background mesh is stationary. Figure 3 shows that with the Laplacian deformation the mesh degenerates in both the single-mesh and multi-mesh-case. Figure 4 shows that the Eikonal convection equations preserves the mesh-quality in the multi-mesh-case, but not in the single-mesh case, where the mesh degenerates at the boundary. We conclude that with a multi-mesh-approach, the meshes are preserved better than with a single-mesh approach.},
	url = {http://easychair.org/smart-program/FEniCS{\textquoteright}17/2017-06-13.html},
	author = {J{\o}rgen Schartum {Dokken} and Simon W {Funke} and Johansson, August and Schmidt, Stephan}
}
@inproceedings {25451,
	title = {Shape Optimization with  Multiple Meshes},
	journal = {FEniCS Conference 2017},
	year = {2017},
	address = {University of Luxembourg, Luxembourg},
	doi = {10.6084/m9.figshare.5086369},
	author = {J{\o}rgen Schartum {Dokken} and Simon W {Funke} and Johansson, August and Schmidt, Stephan}
}
@misc {25590,
	title = {Shape Optimization with Overlapping Meshes},
	howpublished = {ENUMATH 2017, Voss, Bergen},
	year = {2017},
	type = {Invited speaker to Minisymposia on PDE Software Frameworks},
	keywords = {Adjoint Method, CUTFEM, MultiMesh, Shape-optimization},
	author = {J{\o}rgen Schartum {Dokken}},
	editor = {Simon W {Funke} and Johansson, August and Schmidt, Stephan}
}
