$
\newcommand{\Ua}{\mathrm{a}}
\newcommand{\Ub}{\mathrm{b}}
\newcommand{\Uc}{\mathrm{c}}
\newcommand{\Ud}{\mathrm{d}}
\newcommand{\Ue}{\mathrm{e}}
\newcommand{\Uf}{\mathrm{f}}
\newcommand{\Ug}{\mathrm{g}}
\newcommand{\Uh}{\mathrm{h}}
\newcommand{\Ui}{\mathrm{i}}
\newcommand{\Uj}{\mathrm{j}}
\newcommand{\Uk}{\mathrm{k}}
\newcommand{\Ul}{\mathrm{l}}
\newcommand{\Um}{\mathrm{m}}
\newcommand{\Un}{\mathrm{n}}
\newcommand{\Uo}{\mathrm{o}}
\newcommand{\Up}{\mathrm{p}}
\newcommand{\Uq}{\mathrm{q}}
\newcommand{\Ur}{\mathrm{r}}
\newcommand{\Us}{\mathrm{s}}
\newcommand{\Ut}{\mathrm{t}}
\newcommand{\Uu}{\mathrm{u}}
\newcommand{\Uv}{\mathrm{v}}
\newcommand{\Uw}{\mathrm{w}}
\newcommand{\Ux}{\mathrm{x}}
\newcommand{\Uy}{\mathrm{y}}
\newcommand{\Uz}{\mathrm{z}}
\newcommand{\UA}{\mathrm{A}}
\newcommand{\UB}{\mathrm{B}}
\newcommand{\UC}{\mathrm{C}}
\newcommand{\UD}{\mathrm{D}}
\newcommand{\UE}{\mathrm{E}}
\newcommand{\UF}{\mathrm{F}}
\newcommand{\UG}{\mathrm{G}}
\newcommand{\UH}{\mathrm{H}}
\newcommand{\UI}{\mathrm{I}}
\newcommand{\UJ}{\mathrm{J}}
\newcommand{\UK}{\mathrm{K}}
\newcommand{\UL}{\mathrm{L}}
\newcommand{\UM}{\mathrm{M}}
\newcommand{\UN}{\mathrm{N}}
\newcommand{\UO}{\mathrm{O}}
\newcommand{\UP}{\mathrm{P}}
\newcommand{\UQ}{\mathrm{Q}}
\newcommand{\UR}{\mathrm{R}}
\newcommand{\US}{\mathrm{S}}
\newcommand{\UT}{\mathrm{T}}
\newcommand{\UU}{\mathrm{U}}
\newcommand{\UV}{\mathrm{V}}
\newcommand{\UW}{\mathrm{W}}
\newcommand{\UX}{\mathrm{X}}
\newcommand{\UY}{\mathrm{Y}}
\newcommand{\UZ}{\mathrm{Z}}
%
\newcommand{\Uzero }{\mathrm{0}}
\newcommand{\Uone }{\mathrm{1}}
\newcommand{\Utwo }{\mathrm{2}}
\newcommand{\Uthree}{\mathrm{3}}
\newcommand{\Ufour }{\mathrm{4}}
\newcommand{\Ufive }{\mathrm{5}}
\newcommand{\Usix }{\mathrm{6}}
\newcommand{\Useven}{\mathrm{7}}
\newcommand{\Ueight}{\mathrm{8}}
\newcommand{\Unine }{\mathrm{9}}
%
\newcommand{\Ja}{\mathit{a}}
\newcommand{\Jb}{\mathit{b}}
\newcommand{\Jc}{\mathit{c}}
\newcommand{\Jd}{\mathit{d}}
\newcommand{\Je}{\mathit{e}}
\newcommand{\Jf}{\mathit{f}}
\newcommand{\Jg}{\mathit{g}}
\newcommand{\Jh}{\mathit{h}}
\newcommand{\Ji}{\mathit{i}}
\newcommand{\Jj}{\mathit{j}}
\newcommand{\Jk}{\mathit{k}}
\newcommand{\Jl}{\mathit{l}}
\newcommand{\Jm}{\mathit{m}}
\newcommand{\Jn}{\mathit{n}}
\newcommand{\Jo}{\mathit{o}}
\newcommand{\Jp}{\mathit{p}}
\newcommand{\Jq}{\mathit{q}}
\newcommand{\Jr}{\mathit{r}}
\newcommand{\Js}{\mathit{s}}
\newcommand{\Jt}{\mathit{t}}
\newcommand{\Ju}{\mathit{u}}
\newcommand{\Jv}{\mathit{v}}
\newcommand{\Jw}{\mathit{w}}
\newcommand{\Jx}{\mathit{x}}
\newcommand{\Jy}{\mathit{y}}
\newcommand{\Jz}{\mathit{z}}
\newcommand{\JA}{\mathit{A}}
\newcommand{\JB}{\mathit{B}}
\newcommand{\JC}{\mathit{C}}
\newcommand{\JD}{\mathit{D}}
\newcommand{\JE}{\mathit{E}}
\newcommand{\JF}{\mathit{F}}
\newcommand{\JG}{\mathit{G}}
\newcommand{\JH}{\mathit{H}}
\newcommand{\JI}{\mathit{I}}
\newcommand{\JJ}{\mathit{J}}
\newcommand{\JK}{\mathit{K}}
\newcommand{\JL}{\mathit{L}}
\newcommand{\JM}{\mathit{M}}
\newcommand{\JN}{\mathit{N}}
\newcommand{\JO}{\mathit{O}}
\newcommand{\JP}{\mathit{P}}
\newcommand{\JQ}{\mathit{Q}}
\newcommand{\JR}{\mathit{R}}
\newcommand{\JS}{\mathit{S}}
\newcommand{\JT}{\mathit{T}}
\newcommand{\JU}{\mathit{U}}
\newcommand{\JV}{\mathit{V}}
\newcommand{\JW}{\mathit{W}}
\newcommand{\JX}{\mathit{X}}
\newcommand{\JY}{\mathit{Y}}
\newcommand{\JZ}{\mathit{Z}}
%
\newcommand{\Jzero }{\mathit{0}}
\newcommand{\Jone }{\mathit{1}}
\newcommand{\Jtwo }{\mathit{2}}
\newcommand{\Jthree}{\mathit{3}}
\newcommand{\Jfour }{\mathit{4}}
\newcommand{\Jfive }{\mathit{5}}
\newcommand{\Jsix }{\mathit{6}}
\newcommand{\Jseven}{\mathit{7}}
\newcommand{\Jeight}{\mathit{8}}
\newcommand{\Jnine }{\mathit{9}}
%
\newcommand{\BA}{\boldsymbol{A}}
\newcommand{\BB}{\boldsymbol{B}}
\newcommand{\BC}{\boldsymbol{C}}
\newcommand{\BD}{\boldsymbol{D}}
\newcommand{\BE}{\boldsymbol{E}}
\newcommand{\BF}{\boldsymbol{F}}
\newcommand{\BG}{\boldsymbol{G}}
\newcommand{\BH}{\boldsymbol{H}}
\newcommand{\BI}{\boldsymbol{I}}
\newcommand{\BJ}{\boldsymbol{J}}
\newcommand{\BK}{\boldsymbol{K}}
\newcommand{\BL}{\boldsymbol{L}}
\newcommand{\BM}{\boldsymbol{M}}
\newcommand{\BN}{\boldsymbol{N}}
\newcommand{\BO}{\boldsymbol{O}}
\newcommand{\BP}{\boldsymbol{P}}
\newcommand{\BQ}{\boldsymbol{Q}}
\newcommand{\BR}{\boldsymbol{R}}
\newcommand{\BS}{\boldsymbol{S}}
\newcommand{\BT}{\boldsymbol{T}}
\newcommand{\BU}{\boldsymbol{U}}
\newcommand{\BV}{\boldsymbol{V}}
\newcommand{\BW}{\boldsymbol{W}}
\newcommand{\BX}{\boldsymbol{X}}
\newcommand{\BY}{\boldsymbol{Y}}
\newcommand{\BZ}{\boldsymbol{Z}}
\newcommand{\Ba}{\boldsymbol{a}}
\newcommand{\Bb}{\boldsymbol{b}}
\newcommand{\Bc}{\boldsymbol{c}}
\newcommand{\Bd}{\boldsymbol{d}}
\newcommand{\Be}{\boldsymbol{e}}
\newcommand{\Bf}{\boldsymbol{f}}
\newcommand{\Bg}{\boldsymbol{g}}
\newcommand{\Bh}{\boldsymbol{h}}
\newcommand{\Bi}{\boldsymbol{i}}
\newcommand{\Bj}{\boldsymbol{j}}
\newcommand{\Bk}{\boldsymbol{k}}
\newcommand{\Bl}{\boldsymbol{l}}
\newcommand{\Bm}{\boldsymbol{m}}
\newcommand{\Bn}{\boldsymbol{n}}
\newcommand{\Bo}{\boldsymbol{o}}
\newcommand{\Bp}{\boldsymbol{p}}
\newcommand{\Bq}{\boldsymbol{q}}
\newcommand{\Br}{\boldsymbol{r}}
\newcommand{\Bs}{\boldsymbol{s}}
\newcommand{\Bt}{\boldsymbol{t}}
\newcommand{\Bu}{\boldsymbol{u}}
\newcommand{\Bv}{\boldsymbol{v}}
\newcommand{\Bw}{\boldsymbol{w}}
\newcommand{\Bx}{\boldsymbol{x}}
\newcommand{\By}{\boldsymbol{y}}
\newcommand{\Bz}{\boldsymbol{z}}
%
\newcommand{\Bzero }{\boldsymbol{0}}
\newcommand{\Bone }{\boldsymbol{1}}
\newcommand{\Btwo }{\boldsymbol{2}}
\newcommand{\Bthree}{\boldsymbol{3}}
\newcommand{\Bfour }{\boldsymbol{4}}
\newcommand{\Bfive }{\boldsymbol{5}}
\newcommand{\Bsix }{\boldsymbol{6}}
\newcommand{\Bseven}{\boldsymbol{7}}
\newcommand{\Beight}{\boldsymbol{8}}
\newcommand{\Bnine }{\boldsymbol{9}}
%
\newcommand{\Balpha }{\boldsymbol{\alpha} }
\newcommand{\Bbeta }{\boldsymbol{\beta} }
\newcommand{\Bgamma }{\boldsymbol{\gamma} }
\newcommand{\Bdelta }{\boldsymbol{\delta} }
\newcommand{\Bepsilon}{\boldsymbol{\epsilon} }
\newcommand{\Bvareps }{\boldsymbol{\varepsilon} }
\newcommand{\Bvarepsilon}{\boldsymbol{\varepsilon}}
\newcommand{\Bzeta }{\boldsymbol{\zeta} }
\newcommand{\Beta }{\boldsymbol{\eta} }
\newcommand{\Btheta }{\boldsymbol{\theta} }
\newcommand{\Bvarthe }{\boldsymbol{\vartheta} }
\newcommand{\Biota }{\boldsymbol{\iota} }
\newcommand{\Bkappa }{\boldsymbol{\kappa} }
\newcommand{\Blambda }{\boldsymbol{\lambda} }
\newcommand{\Bmu }{\boldsymbol{\mu} }
\newcommand{\Bnu }{\boldsymbol{\nu} }
\newcommand{\Bxi }{\boldsymbol{\xi} }
\newcommand{\Bpi }{\boldsymbol{\pi} }
\newcommand{\Brho }{\boldsymbol{\rho} }
\newcommand{\Bvrho }{\boldsymbol{\varrho} }
\newcommand{\Bsigma }{\boldsymbol{\sigma} }
\newcommand{\Bvsigma }{\boldsymbol{\varsigma} }
\newcommand{\Btau }{\boldsymbol{\tau} }
\newcommand{\Bupsilon}{\boldsymbol{\upsilon} }
\newcommand{\Bphi }{\boldsymbol{\phi} }
\newcommand{\Bvarphi }{\boldsymbol{\varphi} }
\newcommand{\Bchi }{\boldsymbol{\chi} }
\newcommand{\Bpsi }{\boldsymbol{\psi} }
\newcommand{\Bomega }{\boldsymbol{\omega} }
\newcommand{\BGamma }{\boldsymbol{\Gamma} }
\newcommand{\BDelta }{\boldsymbol{\Delta} }
\newcommand{\BTheta }{\boldsymbol{\Theta} }
\newcommand{\BLambda }{\boldsymbol{\Lambda} }
\newcommand{\BXi }{\boldsymbol{\Xi} }
\newcommand{\BPi }{\boldsymbol{\Pi} }
\newcommand{\BSigma }{\boldsymbol{\Sigma} }
\newcommand{\BUpsilon}{\boldsymbol{\Upsilon} }
\newcommand{\BPhi }{\boldsymbol{\Phi} }
\newcommand{\BPsi }{\boldsymbol{\Psi} }
\newcommand{\BOmega }{\boldsymbol{\Omega} }
%
\newcommand{\IA}{\mathbb{A}}
\newcommand{\IB}{\mathbb{B}}
\newcommand{\IC}{\mathbb{C}}
\newcommand{\ID}{\mathbb{D}}
\newcommand{\IE}{\mathbb{E}}
\newcommand{\IF}{\mathbb{F}}
\newcommand{\IG}{\mathbb{G}}
\newcommand{\IH}{\mathbb{H}}
\newcommand{\II}{\mathbb{I}}
\renewcommand{\IJ}{\mathbb{J}}
\newcommand{\IK}{\mathbb{K}}
\newcommand{\IL}{\mathbb{L}}
\newcommand{\IM}{\mathbb{M}}
\newcommand{\IN}{\mathbb{N}}
\newcommand{\IO}{\mathbb{O}}
\newcommand{\IP}{\mathbb{P}}
\newcommand{\IQ}{\mathbb{Q}}
\newcommand{\IR}{\mathbb{R}}
\newcommand{\IS}{\mathbb{S}}
\newcommand{\IT}{\mathbb{T}}
\newcommand{\IU}{\mathbb{U}}
\newcommand{\IV}{\mathbb{V}}
\newcommand{\IW}{\mathbb{W}}
\newcommand{\IX}{\mathbb{X}}
\newcommand{\IY}{\mathbb{Y}}
\newcommand{\IZ}{\mathbb{Z}}
%
\newcommand{\FA}{\mathsf{A}}
\newcommand{\FB}{\mathsf{B}}
\newcommand{\FC}{\mathsf{C}}
\newcommand{\FD}{\mathsf{D}}
\newcommand{\FE}{\mathsf{E}}
\newcommand{\FF}{\mathsf{F}}
\newcommand{\FG}{\mathsf{G}}
\newcommand{\FH}{\mathsf{H}}
\newcommand{\FI}{\mathsf{I}}
\newcommand{\FJ}{\mathsf{J}}
\newcommand{\FK}{\mathsf{K}}
\newcommand{\FL}{\mathsf{L}}
\newcommand{\FM}{\mathsf{M}}
\newcommand{\FN}{\mathsf{N}}
\newcommand{\FO}{\mathsf{O}}
\newcommand{\FP}{\mathsf{P}}
\newcommand{\FQ}{\mathsf{Q}}
\newcommand{\FR}{\mathsf{R}}
\newcommand{\FS}{\mathsf{S}}
\newcommand{\FT}{\mathsf{T}}
\newcommand{\FU}{\mathsf{U}}
\newcommand{\FV}{\mathsf{V}}
\newcommand{\FW}{\mathsf{W}}
\newcommand{\FX}{\mathsf{X}}
\newcommand{\FY}{\mathsf{Y}}
\newcommand{\FZ}{\mathsf{Z}}
\newcommand{\Fa}{\mathsf{a}}
\newcommand{\Fb}{\mathsf{b}}
\newcommand{\Fc}{\mathsf{c}}
\newcommand{\Fd}{\mathsf{d}}
\newcommand{\Fe}{\mathsf{e}}
\newcommand{\Ff}{\mathsf{f}}
\newcommand{\Fg}{\mathsf{g}}
\newcommand{\Fh}{\mathsf{h}}
\newcommand{\Fi}{\mathsf{i}}
\newcommand{\Fj}{\mathsf{j}}
\newcommand{\Fk}{\mathsf{k}}
\newcommand{\Fl}{\mathsf{l}}
\newcommand{\Fm}{\mathsf{m}}
\newcommand{\Fn}{\mathsf{n}}
\newcommand{\Fo}{\mathsf{o}}
\newcommand{\Fp}{\mathsf{p}}
\newcommand{\Fq}{\mathsf{q}}
\newcommand{\Fr}{\mathsf{r}}
\newcommand{\Fs}{\mathsf{s}}
\newcommand{\Ft}{\mathsf{t}}
\newcommand{\Fu}{\mathsf{u}}
\newcommand{\Fv}{\mathsf{v}}
\newcommand{\Fw}{\mathsf{w}}
\newcommand{\Fx}{\mathsf{x}}
\newcommand{\Fy}{\mathsf{y}}
\newcommand{\Fz}{\mathsf{z}}
%
\newcommand{\Fzero }{\mathsf{0}}
\newcommand{\Fone }{\mathsf{1}}
\newcommand{\Ftwo }{\mathsf{2}}
\newcommand{\Fthree}{\mathsf{3}}
\newcommand{\Ffour }{\mathsf{4}}
\newcommand{\Ffive }{\mathsf{5}}
\newcommand{\Fsix }{\mathsf{6}}
\newcommand{\Fseven}{\mathsf{7}}
\newcommand{\Feight}{\mathsf{8}}
\newcommand{\Fnine }{\mathsf{9}}
%
\newcommand{\CA}{\mathcal{A}}
\newcommand{\CB}{\mathcal{B}}
\newcommand{\CC}{\mathcal{C}}
\newcommand{\CD}{\mathcal{D}}
\newcommand{\CE}{\mathcal{E}}
\newcommand{\CF}{\mathcal{F}}
\newcommand{\CG}{\mathcal{G}}
\newcommand{\CH}{\mathcal{H}}
\newcommand{\CI}{\mathcal{I}}
\newcommand{\CJ}{\mathcal{J}}
\newcommand{\CK}{\mathcal{K}}
\newcommand{\CL}{\mathcal{L}}
\newcommand{\CM}{\mathcal{M}}
\newcommand{\CN}{\mathcal{N}}
\newcommand{\CO}{\mathcal{O}}
\newcommand{\CP}{\mathcal{P}}
\newcommand{\CQ}{\mathcal{Q}}
\newcommand{\CR}{\mathcal{R}}
\newcommand{\CS}{\mathcal{S}}
\newcommand{\CT}{\mathcal{T}}
\newcommand{\CU}{\mathcal{U}}
\newcommand{\CV}{\mathcal{V}}
\newcommand{\CW}{\mathcal{W}}
\newcommand{\CX}{\mathcal{X}}
\newcommand{\CY}{\mathcal{Y}}
\newcommand{\CZ}{\mathcal{Z}}
%
\newcommand{\KA}{\mathfrak{A}}
\newcommand{\KB}{\mathfrak{B}}
\newcommand{\KC}{\mathfrak{C}}
\newcommand{\KD}{\mathfrak{D}}
\newcommand{\KE}{\mathfrak{E}}
\newcommand{\KF}{\mathfrak{F}}
\newcommand{\KG}{\mathfrak{G}}
\newcommand{\KH}{\mathfrak{H}}
\newcommand{\KI}{\mathfrak{I}}
\newcommand{\KJ}{\mathfrak{J}}
\newcommand{\KK}{\mathfrak{K}}
\newcommand{\KL}{\mathfrak{L}}
\newcommand{\KM}{\mathfrak{M}}
\newcommand{\KN}{\mathfrak{N}}
\newcommand{\KO}{\mathfrak{O}}
\newcommand{\KP}{\mathfrak{P}}
\newcommand{\KQ}{\mathfrak{Q}}
\newcommand{\KR}{\mathfrak{R}}
\newcommand{\KS}{\mathfrak{S}}
\newcommand{\KT}{\mathfrak{T}}
\newcommand{\KU}{\mathfrak{U}}
\newcommand{\KV}{\mathfrak{V}}
\newcommand{\KW}{\mathfrak{W}}
\newcommand{\KX}{\mathfrak{X}}
\newcommand{\KY}{\mathfrak{Y}}
\newcommand{\KZ}{\mathfrak{Z}}
\newcommand{\Ka}{\mathfrak{a}}
\newcommand{\Kb}{\mathfrak{b}}
\newcommand{\Kc}{\mathfrak{c}}
\newcommand{\Kd}{\mathfrak{d}}
\newcommand{\Ke}{\mathfrak{e}}
\newcommand{\Kf}{\mathfrak{f}}
\newcommand{\Kg}{\mathfrak{g}}
\newcommand{\Kh}{\mathfrak{h}}
\newcommand{\Ki}{\mathfrak{i}}
\newcommand{\Kj}{\mathfrak{j}}
\newcommand{\Kk}{\mathfrak{k}}
\newcommand{\Kl}{\mathfrak{l}}
\newcommand{\Km}{\mathfrak{m}}
\newcommand{\Kn}{\mathfrak{n}}
\newcommand{\Ko}{\mathfrak{o}}
\newcommand{\Kp}{\mathfrak{p}}
\newcommand{\Kq}{\mathfrak{q}}
\newcommand{\Kr}{\mathfrak{r}}
\newcommand{\Ks}{\mathfrak{s}}
\newcommand{\Kt}{\mathfrak{t}}
\newcommand{\Ku}{\mathfrak{u}}
\newcommand{\Kv}{\mathfrak{v}}
\newcommand{\Kw}{\mathfrak{w}}
\newcommand{\Kx}{\mathfrak{x}}
\newcommand{\Ky}{\mathfrak{y}}
\newcommand{\Kz}{\mathfrak{z}}
%
\newcommand{\Kzero }{\mathfrak{0}}
\newcommand{\Kone }{\mathfrak{1}}
\newcommand{\Ktwo }{\mathfrak{2}}
\newcommand{\Kthree}{\mathfrak{3}}
\newcommand{\Kfour }{\mathfrak{4}}
\newcommand{\Kfive }{\mathfrak{5}}
\newcommand{\Ksix }{\mathfrak{6}}
\newcommand{\Kseven}{\mathfrak{7}}
\newcommand{\Keight}{\mathfrak{8}}
\newcommand{\Knine }{\mathfrak{9}}
%
$
$
\newcommand{\Lin}{\mathop{\rm Lin}\nolimits}
\newcommand{\modop}{\mathop{\rm mod}\nolimits}
\renewcommand{\div}{\mathop{\rm div}\nolimits}
\newcommand{\Var}{\Delta}
\newcommand{\evat}{\bigg|}
\newcommand\varn[3]{D_{#2}#1\cdot #3}
\newcommand{\dtp}{\cdot}
\newcommand{\dyd}{\otimes}
\newcommand{\tra}{^T}
\newcommand{\del}{\partial}
\newcommand{\dif}{d}
\newcommand{\rbr}[1]{\left(#1\right)}
\newcommand{\sbr}[1]{\left[#1\right]}
\newcommand{\cbr}[1]{\left\{#1\right\}}
\newcommand{\cbrn}[1]{\{#1\}}
\newcommand{\abr}[1]{\left\langle #1 \right\rangle}
\newcommand{\abrn}[1]{\langle #1 \rangle}
\newcommand{\deriv}[2]{\frac{d #1}{d #2}}
\newcommand{\dderiv}[2]{\frac{d^2 #1}{d {#2}^2}}
\newcommand{\partd}[2]{\frac{\partial #1}{\partial #2}}
\newcommand{\nnode}{n_n}
\newcommand{\ndim}{n_d}
\newcommand{\suml}[2]{\sum\limits_{#1}^{#2}}
\newcommand{\Aelid}[2]{A^{#1}_{#2}}
\newcommand{\dv}{\, dv}
\newcommand{\dx}{\, dx}
\newcommand{\ds}{\, ds}
\newcommand{\da}{\, da}
\newcommand{\dV}{\, dV}
\newcommand{\dA}{\, dA}
\newcommand{\eqand}{\quad\text{and}\quad}
\newcommand{\eqor}{\quad\text{or}\quad}
\newcommand{\eqwith}{\quad\text{and}\quad}
\newcommand{\inv}{^{-1}}
\newcommand{\veci}[1]{#1_1,\ldots,#1_n}
\newcommand{\var}{\delta}
\newcommand{\Var}{\Delta}
\newcommand{\eps}{\epsilon}
\newcommand{\ddt}{\frac{d}{dt}}
\newcommand{\Norm}[1]{\left\lVert#1\right\rVert}
\newcommand{\Abs}[1]{\left|#1\right|}
\newcommand{\dabr}[1]{\left\langle\!\left\langle #1 \right\rangle\!\right\rangle}
\newcommand{\dabrn}[1]{\langle\!\langle #1 \rangle\!\rangle}
\newcommand{\idxsep}{\,}
$
Constrained linear systems arise when Dirichlet boundary conditions are imposed
on a variational formulation
Find $u\in U$ such that
\[\begin{equation}
a(u, v) = b(v)
\end{equation}\]
for all $v \in V$, where
\[\begin{equation}
\begin{aligned}
U &= \{u\mid u\in H^1(\Omega), u=\bar{u} \text{ on } \del\Omega_u\} \\
V &= \{u\mid u\in H^1(\Omega), u=0 \text{ on } \del\Omega_u\} \\
\end{aligned}
\end{equation}\]
where $\bar{u}$ is the Dirichlet condition.
We additively decompose the solution into known and unknown parts:
\[\begin{equation}
u = \bar{u} + w
\end{equation}\]
and substitute into our variational formulation
\[\begin{equation}
a(\bar{u}+w, v) = b(v)
\end{equation}\]
We can take advantage of the linearity condition, and reformulate the
variational formulation:
Find $w\in V$ such that
\[\begin{equation}
a(w, v) = b(v) - a(\bar{u}, v)
\end{equation}\]
for all $v \in V$.
The algorithmic analogue of this formulation will be developed in the following
section Direct Modification Approach.
Static Condensation Approach
For a linear system
\[\begin{equation}
\BA \Bu = \Bb\,,
\label{eq:system1}
\end{equation}\]
of size $N\times N$, we constrain the values of the solution or right-hand side
at certain degrees of freedom.
We sort the system so that these degrees of freedom are grouped together after the
unconstrained degrees of freedom. The resulting system is,
\[\begin{equation}
\label{eq:bcsystem1}
\left[
\begin{array}{ccc|ccc}
A_{1,1} & \cdots & A_{1,M} & A_{1,M+1} & \cdots & A_{1,N} \\
\vdots & \ddots & \vdots & \vdots & \ddots & \vdots \\
A_{M,1} & \cdots & A_{M,M} & A_{M,M+1} & \cdots & A_{M,N} \\ \hline
A_{M+1,1} & \cdots & A_{M+1,M} & A_{M+1,M+1} & \cdots & A_{M+1,N} \\
\vdots & \ddots & \vdots & \vdots & \ddots & \vdots\\
A_{N,1} & \cdots & A_{N,M} & A_{N, M+1} &\cdots & A_{N,N} \\
\end{array}
\right]
\left[
\begin{array}{c}
u_{1} \\
\vdots \\
u_{M} \\ \hline
u_{M+1} \\
\vdots \\
u_{N} \\
\end{array}
\right]
=
\left[
\begin{array}{c}
b_{1} \\
\vdots \\
b_{M} \\ \hline
b_{M+1} \\
\vdots \\
b_{N} \\
\end{array}
\right]\,,
\end{equation}\]
Defining submatrices
and vectors for the partitions, we can write
\[\begin{equation}
\begin{bmatrix}
\BA_{11}& \BA_{12} \\
\BA_{21}& \BA_{22} \\
\end{bmatrix}
\begin{bmatrix}
\Bu_{1} \\
\Bu_{2} \\
\end{bmatrix}
=
\begin{bmatrix}
\Bb_{1} \\
\Bb_{2} \\
\end{bmatrix}
\end{equation}\]
or
\[\begin{equation}
\begin{aligned}
\BA_{11} \Bu_{1} + \BA_{12} \Bu_{2} &= \Bb_{1} \\
\BA_{21} \Bu_{1} + \BA_{22} \Bu_{2} &= \Bb_{2}\,,
\end{aligned}
\end{equation}\]
Let $\Bu_2 = \bar{\Bu}$ and $\Bb_1 = \bar{\Bb}$ have defined values. The objective
is to solve for unknown $\Bu_1$ and $\Bb_2$. We have
\[\begin{equation}
\Bu_1 = \BA_{11}\inv (\Bb_1 - \BA_{12}\Bu_2)
\label{eq:u1staticcond1}
\end{equation}\]
and
\begin{align}
\Bb_2 = (\BA_{22}-\BA_{21}\BA_{11}\inv\BA_{12})\Bu_2 + \BA_{21}\BA_{11}\inv\Bb_1
\end{align}
In case $\bar{\Bu} = \Bzero$, we have
\[\begin{equation}
\begin{aligned}
\Bu_1 &= \BA_{11}\inv\Bb_1 \\
\Bb_2 &= \BA_{21}\BA_{11}\inv\Bb_1
\end{aligned}
\end{equation}\]
and in case $\bar{\Bb} = \Bzero$, we have
\[\begin{equation}
\begin{aligned}
\Bu_1 &= -\BA_{11}\inv\BA_{12}\Bu_2 \\
\Bb_2 &= (\BA_{22}-\BA_{21}\BA_{11}\inv\BA_{12})\Bu_2
\end{aligned}
\end{equation}\]
Example: Plane Stress and Strain in Linear Elasticity
The constitutive equation of isotropic linear elasticity reads
\[\begin{equation}
\begin{bmatrix}
\lambda+2\mu & \lambda & \lambda & 0 & 0 & 0 \\
\lambda & \lambda+2\mu & \lambda & 0 & 0 & 0 \\
\lambda & \lambda & \lambda+2\mu & 0 & 0 & 0 \\
0 & 0 & 0 & \mu & 0 & 0 \\
0 & 0 & 0 & 0 & \mu & 0 \\
0 & 0 & 0 & 0 & 0 & \mu \\
\end{bmatrix}
\begin{bmatrix}
\varepsilon_{11}\\
\varepsilon_{22}\\
\varepsilon_{33}\\
\varepsilon_{12}\\
\varepsilon_{23}\\
\varepsilon_{13}\\
\end{bmatrix}
=
\begin{bmatrix}
\sigma_{11}\\
\sigma_{22}\\
\sigma_{33}\\
\sigma_{12}\\
\sigma_{23}\\
\sigma_{13}\\
\end{bmatrix}
\end{equation}\]
The plane stress condition reads $\sigma_{13} = \sigma_{23}= \sigma_{33} = 0$. We
group the constrained degrees of freedom together:
\[\begin{equation}
\left[
\begin{array}{ccc|ccc}
\lambda+2\mu & \lambda & 0 & \lambda & 0 & 0 \\
\lambda & \lambda+2\mu & 0 & \lambda & 0 & 0 \\
0 & 0 & \mu & 0 & 0 & 0 \\
\hline
\lambda & \lambda & 0 & \lambda+2\mu & 0 & 0 \\
0 & 0 & 0 & 0 & \mu & 0 \\
0 & 0 & 0 & 0 & 0 & \mu \\
\end{array}
\right]
\left[
\begin{array}{c}
\varepsilon_{11}\\
\varepsilon_{22}\\
\varepsilon_{12}\\
\hline
\varepsilon_{33}\\
\varepsilon_{23}\\
\varepsilon_{13}\\
\end{array}
\right]
=
\left[
\begin{array}{c}
\sigma_{11}\\
\sigma_{22}\\
\sigma_{12}\\
\hline
\sigma_{33}\\
\sigma_{23}\\
\sigma_{13}\\
\end{array}
\right]
\end{equation}\]
which we write as
\[\begin{equation}
\begin{bmatrix}
\BC_{11}&\BC_{12}\\
\BC_{21}&\BC_{22}\\
\end{bmatrix}
\begin{bmatrix}
\Bvarepsilon\\
\Bvarepsilon'\\
\end{bmatrix}
=
\begin{bmatrix}
\Bsigma\\
\Bsigma'\\
\end{bmatrix}
\end{equation}\]
The purpose is to
obtain a reduced system without $\Bsigma’$ or $\Bvarepsilon’$.
We substitute the plane stress condition $\Bsigma’=\Bzero$, to obtain
$\Bvarepsilon’=-\BC_{22}\inv\BC_{21}\Bvarepsilon$. Then we have
\[\begin{equation}
(\BC_{11}-\BC_{12}\BC_{22}\inv\BC_{21}) \Bvarepsilon = \Bsigma
\end{equation}\]
We define the plane stress version of the elasticity tensor as
$\BC_\sigma = \BC_{11}-\BC_{12}\BC_{22}\inv\BC_{21}$ which results in
\[\begin{equation}
\BC_\sigma =
\frac{\mu}{\lambda+2\mu}
\begin{bmatrix}
4(\lambda+\mu) &
2\lambda & 0 \\
2\lambda &
4(\lambda+\mu) & 0 \\
0 & 0 & \lambda+2\mu
\end{bmatrix}
=
\frac{E}{1-\nu^2}
\begin{bmatrix}
1 & \nu & 0\\
\nu & 1 & 0\\
0& 0& (1-\nu)/2
\end{bmatrix}
\end{equation}\]
The plane strain condition reads $\Bvarepsilon’=\Bzero$. This simply results in
\[\begin{equation}
\BC_{11}\Bvarepsilon = \Bsigma
\end{equation}\]
The plane strain version of the elasticity tensor $\BC_\varepsilon=\BC_{11}$
is calculated as
\[\begin{equation}
\BC_\varepsilon =
\begin{bmatrix}
\lambda + 2\mu & \lambda & 0 \\
\lambda & \lambda + 2\mu & 0 \\
0 & 0 & \mu \\
\end{bmatrix}
=
\frac{E}{(1+\nu)(1-2\nu)}
\begin{bmatrix}
1-\nu & \nu & 0\\
\nu & 1-\nu & 0\\
0& 0& (1-2\nu)/2
\end{bmatrix}
\end{equation}\]
The procedure defined above is called static condensation,
named after its application in structural analysis. One impracticality of
this formulation is that systems do not always exist with their constrained
degrees of freedom grouped together. These are generally
scattered arbitrarily throughout the solution vector, and grouping them manually
is impractical with current data structure implementations.
Direct Modification Approach
Suppose we have a system where $\Bu_2$ and $\Bb_1$ are known and $\Bu_1$
and $\Bb_2$ are unknown:
\[\begin{equation}
\begin{bmatrix}
\BA_{11}&\BA_{12}\\
\BA_{21}&\BA_{22}\\
\end{bmatrix}
\begin{bmatrix}
\Bu_1\\
\Bu_2\\
\end{bmatrix}
=
\begin{bmatrix}
\Bb_1\\
\Bb_2\\
\end{bmatrix}
\end{equation}\]
We can modify the system so that
it can be solved without separating the partitions
\[\begin{equation}
\begin{bmatrix}
\BA_{11}&\BA_{12}\\
\Bzero &\BI\\
\end{bmatrix}
\begin{bmatrix}
\Bu_1\\
\Bu_2\\
\end{bmatrix}
=
\begin{bmatrix}
\Bb_1\\
\Bu_2\\
\end{bmatrix}
\end{equation}\]
We can additively decompose both sides
\[\begin{equation}
\begin{bmatrix}
\BA_{11}&\Bzero\\
\Bzero &\BI\\
\end{bmatrix}
\begin{bmatrix}
\Bu_1\\
\Bu_2\\
\end{bmatrix}
+
\begin{bmatrix}
\Bzero&\BA_{12}\\
\Bzero &\Bzero\\
\end{bmatrix}
\begin{bmatrix}
\Bu_1\\
\Bu_2\\
\end{bmatrix}
=
\begin{bmatrix}
\Bb_1\\
\Bu_2\\
\end{bmatrix}
\end{equation}\]
Therefore, the following is equivalent to
\eqref{eq:u1staticcond1}:
\[\begin{equation}
\underbrace{
\begin{bmatrix}
\BA_{11}&\Bzero\\
\Bzero &\BI\\
\end{bmatrix}
}_{\tilde{\BA}}
\begin{bmatrix}
\Bu_1\\
\Bu_2\\
\end{bmatrix}
=
\underbrace{
\begin{bmatrix}
\Bb_1 - \BA_{12}\Bu_2\\
\Bu_2\\
\end{bmatrix}
}_{\tilde{\Bb}}
\end{equation}\]
This is solved for $\Bu$:
\[\begin{equation}
\Bu = \tilde{\BA}\inv \tilde{\Bb}\,.
\end{equation}\]
The unknown right hand side can be obtained from the original matrix $\BA$
\[\begin{equation}
\Bb = \BA\Bu = \BA \tilde{\BA}\inv \tilde{\Bb}\,,
\end{equation}\]
Observe that the modifications on $\BA$ are symmetric, so we do not need
the constrained degrees of freedom be grouped together. $\tilde{\BA}$ is
obtained by zeroing out the rows and columns corresponding to constraints and
setting the diagonal components to one. For $\tilde{\Bb}$, we do not need to
extract $\BA_{12}$; we simply let
\[\begin{equation}
\quad \tilde{\Bb}
\leftarrow
\Bb_k - \BA\Bu_k
\end{equation}\]
where
\[\begin{equation}
\Bu_k =
\begin{bmatrix}
\Bzero\\
\Bu_2\\
\end{bmatrix}
\eqand
\Bb_k =
\begin{bmatrix}
\Bb_1\\
\Bzero\\
\end{bmatrix}
\end{equation}\]
We then equate the constrained degrees of freedom to their specified values $\Bu_2$.
Below is a pseudocode outlining the algorithm.
fun solve_constrained_system(A, b_known, u_known, is_contrained):
# A: unmodified matrix, size NxN
# b_known: known values of the rhs, size N
# u_known: known values of the solution, size N
# is_constrained: bool array whether dof is constrained, size N
N = length(b)
A_mod = copy(A)
b_mod = b_known - A_known*u_known # Calculate rhs vector
for i=1 to N do:
if is_constained[i] then:
for j = 1 to N do:
A_mod[i][j] = 0 # Set row to zero
A_mod[j][i] = 0 # Set column to zero
endfor
A_mod[i][i] = 1 # Set diagonal to one
b_mod[i] = u_known[i]
endif
endfor
u = inverse(A_mod)*b_mod # Solve constrained system
# Could also say solve(A_mod, b_mod)
b = A*u # Substitute solution to get final rhs vector
return u, b
endfun
Constrained Update Schemes
When using an iterative solution approach, one generally has an update equation
of the form
\[\begin{equation}
\Bu \leftarrow \bar{\Bu} + \Var\Bu
\quad\text{where}\quad
\BA \Var\Bu = \Bb
\end{equation}\]
where $\Bu$ is the solution vector of the primary unknown. The update vector $\Var\Bu$ is
obtained by solving a linear system and added to the solution vector in each
iteration. This process is usually terminated when the approximation error drops below a
threshold value.
\When the solution vector itself is constrained, the update system needs to be
modified accordingly. Grouping the constrained degrees of freedom together,
\[\begin{equation}
\begin{bmatrix}
\Bu_1\\
\Bu_2\\
\end{bmatrix}
\leftarrow
\begin{bmatrix}
\bar{\Bu}_1\\
\bar{\Bu}_2\\
\end{bmatrix}
+
\begin{bmatrix}
\Var\Bu_1\\
\Var\Bu_2\\
\end{bmatrix}
\end{equation}\]
Let $\Bu_2$ be known and $\Bu_1$ be unknown.
We can make the substitution $\Var\Bu_2=\Bu_2-\bar{\Bu}_2$:
\[\begin{equation}
\begin{bmatrix}
\BA_{11}&\BA_{22}\\
\BA_{21} &\BA_{22}\\
\end{bmatrix}
\begin{bmatrix}
\Var\Bu_1\\
\Bu_2-\bar{\Bu_2}\\
\end{bmatrix}
=
\begin{bmatrix}
\Bb_1\\
\Bb_2
\end{bmatrix}
\end{equation}\]
This system can then be solved for the unknown $\Var\Bu_1$ and $\Var\Bb_2$
with the procedure defined in the previous
section. The only difference is that,
\[\begin{equation}
\Var\Bu_k =
\begin{bmatrix}
\Bzero\\
\Bu_2-\bar{\Bu_2}
\end{bmatrix}
\end{equation}\]