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.