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 [ edit ] Consider the following linear, scalar advection-diffusion equation for the primal solution u ( x → ) {\displaystyle u({\vec {x}})} , in the domain Ω {\displaystyle \Omega } with Dirichlet boundary conditions :
∇ ⋅ ( c → u − μ ∇ u ) = f , x → ∈ Ω , u = b , x → ∈ ∂ Ω . {\displaystyle {\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 ) = ∫ Ω g u d V . {\displaystyle J(u)=\int _{\Omega }gu\ dV.} Derive the weak form by multiplying the primal equation with a weighting function w ( x → ) {\displaystyle w({\vec {x}})} and performing integration by parts:
B ( u , w ) = L ( w ) , {\displaystyle {\begin{aligned}B(u,w)&=L(w),\end{aligned}}} where,
B ( u , w ) = ∫ Ω w ∇ ⋅ ( c → u − μ ∇ u ) d V = ∫ ∂ Ω w ( c → u − μ ∇ u ) ⋅ n → d A − ∫ Ω ∇ w ⋅ ( c → u − μ ∇ u ) d V , (Integration by parts) L ( w ) = ∫ Ω w f d V . {\displaystyle {\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 ) {\displaystyle L(w)} which produces an infinitesimal change in u {\displaystyle u} as follows:
B ( u + u ′ , w ) = L ( w ) + L ′ ( w ) B ( u ′ , w ) = L ′ ( w ) . {\displaystyle {\begin{aligned}B(u+u',w)&=L(w)+L'(w)\\B(u',w)&=L'(w).\end{aligned}}} Note that the solution perturbation u ′ {\displaystyle u'} must vanish at the boundary, since the Dirichlet boundary condition does not admit variations on ∂ Ω {\displaystyle \partial \Omega } .
Using the weak form above and the definition of the adjoint ψ ( x → ) {\displaystyle \psi ({\vec {x}})} given below:
L ′ ( ψ ) = J ( u ′ ) B ( u ′ , ψ ) = J ( u ′ ) , {\displaystyle {\begin{aligned}L'(\psi )&=J(u')\\B(u',\psi )&=J(u'),\end{aligned}}} we obtain:
∫ ∂ Ω ψ ( c → u ′ − μ ∇ u ′ ) ⋅ n → d A − ∫ Ω ∇ ψ ⋅ ( c → u ′ − μ ∇ u ′ ) d V = ∫ Ω g u ′ d V . {\displaystyle {\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 ′ {\displaystyle u'} into derivatives of ψ {\displaystyle \psi } :
∫ ∂ Ω ψ ( c → u ′ − μ ∇ u ′ ) ⋅ n → d A − ∫ Ω ∇ ψ ⋅ ( c → u ′ − μ ∇ u ′ ) d V − ∫ Ω g u ′ d V = 0 ∫ ∂ Ω ψ ( c → u ′ − μ ∇ u ′ ) ⋅ n → d A + ∫ Ω u ′ ( − c → ⋅ ∇ ψ ) d V + ∫ Ω ∇ u ′ ⋅ ( μ ∇ ψ ) d V − ∫ Ω g u ′ d V = 0 ∫ ∂ Ω ψ ( c → u ′ − μ ∇ u ′ ) ⋅ n → d A + ∫ Ω u ′ ( − c → ⋅ ∇ ψ ) d V + ∫ ∂ Ω u ′ ( μ ∇ ψ ) ⋅ n → d A − ∫ Ω u ′ ∇ ⋅ ( μ ∇ ψ ) d V − ∫ Ω g u ′ d V = 0 (Repeating integration by parts on diffusion volume term) ∫ Ω u ′ [ − c → ⋅ ∇ ψ − ∇ ⋅ ( μ ∇ ψ ) − g ] d V + ∫ ∂ Ω ψ ( c → u ′ − μ ∇ u ′ ) ⋅ n → d A + ∫ ∂ Ω u ′ ( μ ∇ ψ ) ⋅ n → d A = 0. {\displaystyle {\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 ′ {\displaystyle u'} is generally non-zero within the domain Ω {\displaystyle \Omega } , it is required that [ − c → ⋅ ∇ ψ − ∇ ⋅ ( μ ∇ ψ ) − g ] {\displaystyle \left[-{\vec {c}}\cdot \nabla \psi -\nabla \cdot \left(\mu \nabla \psi \right)-g\right]} be zero in Ω {\displaystyle \Omega } , in order for the volume term to vanish. Similarly, since the primal flux ( c → u ′ − μ ∇ u ′ ) ⋅ n → {\displaystyle \left({\vec {c}}u'-\mu \nabla u'\right)\cdot {\vec {n}}} is generally non-zero at the boundary, we require ψ {\displaystyle \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 {\displaystyle u'=0} at the boundary.
Therefore, the adjoint problem is given by:
− c → ⋅ ∇ ψ − ∇ ⋅ ( μ ∇ ψ ) = g , x → ∈ Ω , ψ = 0 , x → ∈ ∂ Ω . {\displaystyle {\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 c → {\displaystyle {\vec {c}}} in the adjoint equation, whereas the diffusion term remains self-adjoint.