\h{\mathsf{A}}^{\h{I}\h{J}}_e &:= \int_{\Omega_{e,0}} \h{\Grad}  {\h{\b{\Phi}}}{}^{\h{I}} : \h{\v{A}} : \h{\Grad} \h{\b{\Phi}}{}^{\h{J}} \, \d A \, ,\end{aligned}$$ and $\displaystyle{{\mathop{\mbox{\LARGE {\textsf {\textbf A}}}}}_e}$ denotes the (non-standard) assembly operator. The assembly operator is defined such that contributions from degrees of freedom on the surface are mapped to the corresponding degree of freedom in the volume (the surface is material and the triangulation of the surfaces matches the triangulation of the boundary of the volume). The number of surface degrees of freedom will always be less than those in the volume. The assembly operator is defined such that the size of the matrices $\mathsf{A}^{(i)}$ and $\h{\mathsf{A}}^{(i)}$ are the same. In other words $\h{\mathsf{A}}^{(i)}$ will contain empty rows and columns corresponding to degrees of freedom internal to the volume.

Numerical implementation using the finite element library [deal.II]{} {#sec_numerical_implementation}
=====================================================================

The open-source finite element library [deal.II]{} [@Bangerth2007; @Bangerth] is used to assemble and solve the discrete system of equations governing the problem of surface elasticity. The implementation here uses various [deal.II]{} routines developed for the solution of partial differential equations on curved manifolds [see e.g. @DeSimone2009; @Heltai2008].

The objective of this section is to review various key features of the numerical implementation, and to discuss some of 