Controlled Heating

From mintOC
Revision as of 22:03, 12 January 2016 by MirkoHahn (Talk | contribs) (Reference solution)

Jump to: navigation, search

The controlled heating problem is a simple problem from the domain of continuous PDE constrained optimal control. The goal is to parametrize the heat equation under Robin-type boundary conditions such that the stationary solution tracks a predefined reference function. This is equivalent to solving Poisson's problem under Robin-type boundary equations. The problem is therefore closely related to the source inversion problem. As opposed to the source inversion problem however, the controlled heating problem does not require the source term to be a linear combination of elementary source terms. The source term can be an arbitrary function which is usually chosen from the same function space as the temperature function.

Problem Statement

Let \Omega \subset \mathbb{R}^n be a contiguous domain and let \nu \colon \partial \Omega \to \mathbb{R}^n be an outer unit normal of \Omega. The Poisson problem with simple Robin-type boundary conditions then takes the following form:


\begin{array}{rll}
  - \Delta u &= f \qquad & \text{in } \Omega \\
  \frac{\partial u}{\partial \nu} &= -u \qquad & \text{on } \partial \Omega
\end{array}

Here, f denotes the source term. We demand that C_1 \leq f(x) \leq C_2 in \Omega. Given a reference function u_d, the optimization problem is given by:


\begin{array}[t]{rl}
  \min\limits_{u,f} & \int\limits_\Omega (u - u_d)^2 \, \mathrm{d}x \\
  \text{s.t.} & \begin{array}[t]{rll}
    - \Delta u(x) &= f(x) \qquad & \forall x \in \Omega \\[1.5ex]
    \frac{\partial u}{\partial \nu}(x) &= -u(x) \qquad & \forall x \in \partial \Omega \\
    f(x) &\in [C_1, C_2] \qquad & \forall x \in \Omega
  \end{array}
\end{array}

Weak formulation

Some PDE discretization techniques (such as finite element methods) require the use of weak formulations of the original problem. The weak formulation of the Poisson problem with Robin-type boundary conditions as described above is obtained using Green's identities:


  \int\limits_\Omega \left\langle \nabla u, \nabla v \right\rangle \,\mathrm{d}x + \int\limits_{\partial \Omega} u \cdot v \,\mathrm{d}s(x) = \int\limits_\Omega f \cdot v \,\mathrm{d}x \qquad \forall v \in V

Here, V is a suitable space of test functions. The optimization problem then takes the following form:


\begin{array}[t]{rl}
  \min\limits_{u,f} & \int\limits_\Omega (u - u_d)^2 \, \mathrm{d}x \\
  \text{s.t.} & \begin{array}[t]{rll}
    \int\limits_\Omega \left\langle \nabla u, \nabla v \right\rangle \,\mathrm{d}x + \int\limits_{\partial \Omega} u \cdot v \,\mathrm{d}s(x) &= \int\limits_\Omega f \cdot v \,\mathrm{d}x \qquad &\forall v \in V \\[1.5ex]
    f(x) &\in [C_1, C_2] \qquad & \forall x \in \Omega
  \end{array}
\end{array}

Parameters

For testing purposes, we consider \Omega = B(0, 1) = \left\lbrace x \in \mathbb{R}^n \colon \|x\| < 1 \right\rbrace with n = 2. The reference function is given by:


  u_d(x) = \|x\|^2

Additionally, let


  (C_1, C_2) := (-10, 10).

Reference solution

The reference solution was generated using finite element discretizations. The mesh was generated using FEniCS' mesh generation component with a resolution setting of 100. The function space was constructed using first-degree Lagrangian elements. The optimization problem was solved using CasADi's IPOPT interface. The exact code used to solve the problem alongside solution data can be found under Controlled Heating (FEniCS/Casadi).