global system matrix. This is governed by the method [Solid&lt;...&gt;::assemble\_system\_volume]{}. The contribution from the surface is obtained in a similar way. A loop is performed over all surface cells $\h{\Omega}_{e,0}$ and the tangent contribution $\h{\mathsf{A}}_e$ calculated. The map $\mathcal{M}$ between the degrees of freedom on the surface and the corresponding ones in the volume is then used to add the surface cell contributions to the global system matrix (recall the surface is material).

The Newton scheme (\[newton\_step\]) continues until the normalised measure (relative to the first iteration of the current time step) of the solution increment $\Delta \mathsf{u}$ and the residual $\overset{\square}{\mathsf{R}}$ decreases below a user-specified tolerance.

It is important to note that alternatively a separate global surface system matrix could be constructed as the degrees of freedom on the surface are independent to those of the volume. The degrees of freedom on the surface could then be constrained to be the same as those in the volume and the resulting global block system solved. Using this approach, one could also then consider the case of non-material surfaces. It was decided that this approach would be more cumbersome as the global system matrix would have to be initialized using sparsity 