# Adjoint equation

An adjoint equation is a linear differential equation, usually derived from its primal equation using integration by parts. Gradient values with respect to a particular quantity of interest can be efficiently calculated by solving the adjoint equation. Methods based on solution of adjoint equations are used in wing shape optimization, fluid flow control and uncertainty quantification.

## Example: Advection-Diffusion PDE

Consider the following linear, scalar advection-diffusion equation for the primal solution $u({\vec {x}})$, in the domain $\Omega$ with Dirichlet boundary conditions:
    ${\begin{aligned}\nabla \cdot \left({\vec {c}}u-\mu \nabla u\right)&=f,\qquad {\vec {x}}\in \Omega ,\\u&=b,\qquad {\vec {x}}\in \partial \Omega .\end{aligned}}$
Let the output of interest be the following linear functional:
    $J(u)=\int _{\Omega }gu\ dV.$
Derive the weak form by multiplying the primal equation with a weighting function $w({\vec {x}})$ and performing integration by parts:
    ${\begin{aligned}B(u,w)&=L(w),\end{aligned}}$
where,
    ${\begin{aligned}B(u,w)&=\int _{\Omega }w\nabla \cdot \left({\vec {c}}u-\mu \nabla u\right)dV\\&=\int _{\partial \Omega }w\left({\vec {c}}u-\mu \nabla u\right)\cdot {\vec {n}}dA-\int _{\Omega }\nabla w\cdot \left({\vec {c}}u-\mu \nabla u\right)dV,\qquad {\text{(Integration by parts)}}\\L(w)&=\int _{\Omega }wf\ dV.\end{aligned}}$
Then, consider an infinitesimal perturbation to $L(w)$ which produces an infinitesimal change in $u$ as follows:
    ${\begin{aligned}B(u+u',w)&=L(w)+L'(w)\\B(u',w)&=L'(w).\end{aligned}}$
Note that the solution perturbation $u'$ must vanish at the boundary, since the Dirichlet boundary condition does not admit variations on $\partial \Omega$.
Using the weak form above and the definition of the adjoint $\psi ({\vec {x}})$ given below:
    ${\begin{aligned}L'(\psi )&=J(u')\\B(u',\psi )&=J(u'),\end{aligned}}$
we obtain:
    ${\begin{aligned}\int _{\partial \Omega }\psi \left({\vec {c}}u'-\mu \nabla u'\right)\cdot {\vec {n}}dA-\int _{\Omega }\nabla \psi \cdot \left({\vec {c}}u'-\mu \nabla u'\right)dV&=\int _{\Omega }gu'\ dV.\end{aligned}}$
Next, use integration by parts to transfer derivatives of $u'$ into derivatives of $\psi$:
    ${\begin{aligned}\int _{\partial \Omega }\psi \left({\vec {c}}u'-\mu \nabla u'\right)\cdot {\vec {n}}dA-\int _{\Omega }\nabla \psi \cdot \left({\vec {c}}u'-\mu \nabla u'\right)dV-\int _{\Omega }gu'\ dV&=0\\\int _{\partial \Omega }\psi \left({\vec {c}}u'-\mu \nabla u'\right)\cdot {\vec {n}}dA+\int _{\Omega }u'\left(-{\vec {c}}\cdot \nabla \psi \right)dV+\int _{\Omega }\nabla u'\cdot \left(\mu \nabla \psi \right)dV-\int _{\Omega }gu'\ dV&=0\\\int _{\partial \Omega }\psi \left({\vec {c}}u'-\mu \nabla u'\right)\cdot {\vec {n}}dA+\int _{\Omega }u'\left(-{\vec {c}}\cdot \nabla \psi \right)dV+\int _{\partial \Omega }u'\left(\mu \nabla \psi \right)\cdot {\vec {n}}dA-\int _{\Omega }u'\nabla \cdot \left(\mu \nabla \psi \right)dV-\int _{\Omega }gu'\ dV&=0\qquad {\text{(Repeating integration by parts on diffusion volume term)}}\\\int _{\Omega }u'\left[-{\vec {c}}\cdot \nabla \psi -\nabla \cdot \left(\mu \nabla \psi \right)-g\right]dV+\int _{\partial \Omega }\psi \left({\vec {c}}u'-\mu \nabla u'\right)\cdot {\vec {n}}dA+\int _{\partial \Omega }u'\left(\mu \nabla \psi \right)\cdot {\vec {n}}dA&=0.\end{aligned}}$
The adjoint PDE and its boundary conditions can be deduced from the last equation above. Since $u'$ is generally non-zero within the domain $\Omega$, it is required that $\left[-{\vec {c}}\cdot \nabla \psi -\nabla \cdot \left(\mu \nabla \psi \right)-g\right]$ be zero in $\Omega$, in order for the volume term to vanish. Similarly, since the primal flux $\left({\vec {c}}u'-\mu \nabla u'\right)\cdot {\vec {n}}$ is generally non-zero at the boundary, we require $\psi$ to be zero there in order for the first boundary term to vanish. The second boundary term vanishes trivially since the primal boundary condition requires $u'=0$ at the boundary.
Therefore, the adjoint problem is given by:
    ${\begin{aligned}-{\vec {c}}\cdot \nabla \psi -\nabla \cdot \left(\mu \nabla \psi \right)&=g,\qquad {\vec {x}}\in \Omega ,\\\psi &=0,\qquad {\vec {x}}\in \partial \Omega .\end{aligned}}$
Note that the advection term reverses the sign of the convective velocity ${\vec {c}}$ in the adjoint equation, whereas the diffusion term remains self-adjoint.