## Appendix A Direct Time Integration
### Piecewise Linear Implementation  
This section presents the novel algorithm proposed in this thesis. The following makes reference to an equilibrium equation given above (Equation (7)):  
1. The values of \({}^{n}\mathbf{q}_{\mathbf{D}}\), \({}^{n}\mathbf{\hat{q}}_{\mathbf{D}}\), \({}^{n}\mathbf{\hat{q}}_{\mathbf{D}}\), \(\mathbf{f}_{\mathbf{ED}}(\tau_{n+1})\), \(\mathbf{q}_{\mathbf{iIP}}(\tau_{n+1})\)\(\forall i\), and the contact states' effective stiffness matrices \({}^{n}\mathbf{K}_{\mathbf{i}}\) and \({}^{n}\mathbf{K}_{\mathbf{Si}}\) are known either from initial conditions or the previous integration step. 2. PREDICTOR: It is assumed that the contact state at \(\tau_{n+1}\) is the same as that of the previous time step, i.e., \[{}^{n+1}\widetilde{\mathbf{K}}_{\mathbf{i}} ={}^{n}\mathbf{K}_{\mathbf{i}}\] (14) \[{}^{n+1}\widetilde{\mathbf{K}}_{\mathbf{Si}} ={}^{n}\mathbf{K}_{\mathbf{Si}}.\] It is therefore possible to express a tentative version of the equilibrium equations at time \(\tau_{n+1}\) as (see Equation (7)): \[ \begin{split}&\mathbf{M}_{\mathbf{D}}\cdot{}^{n+1}\widetilde{ \mathbf{q}}_{\mathbf{D}}+\left(\sum_{\text{i=L1}}^{\text{R}}\left(\Gamma_{ \mathbf{iID}}^{\prime}\cdot{}^{n+1}\widetilde{\mathbf{K}}_{\mathbf{i}}\cdot \Gamma_{\mathbf{iD}}\right)\right)\cdot{}^{n+1}\mathbf{q}_{\mathbf{D}}= \mathbf{f}_{\mathbf{ED}}(\tau_{n+1})+\\ &\quad+\sum_{\text{i=L1}}^{\text{R}}\left(\Gamma_{\mathbf{iID}}^ {\prime}\cdot{}^{n+1}\widetilde{\mathbf{K}}_{\mathbf{i}}\cdot\Gamma_{\mathbf{ iIP}}\cdot\mathbf{q}_{\mathbf{iIP}}(\tau_{n+1})\right)+\sum_{\text{i=L1}}^{\text{R}} \left(\Gamma_{\mathbf{iID}}^{\prime}\cdot{}^{n+1}\widetilde{\mathbf{K}}_{ \mathbf{Si}}\cdot{}^{n}\mathbf{s}_{\text{i}}\right)\end{split} .\] (15)  
Let us rename the following quantities for the sake of brevity:  
\[{}^{n+1}\widetilde{\mathbf{g}} =\mathbf{f}_{\mathbf{ED}}(\tau_{n+1})+\sum_{\text{i=L1}}^{\text{ R}}\left(\Gamma_{\mathbf{iID}}^{\prime}\cdot{}^{n+1}\widetilde{\mathbf{K}}_{ \mathbf{i}}\cdot\Gamma_{\mathbf{iIP}}\cdot\mathbf{q}_{\mathbf{iIP}}(\tau_{n+1} )\right)+\sum_{\text{i=L1}}^{\text{R}}\left(\Gamma_{\mathbf{iID}}^{\prime}\cdot {}^{n+1}\widetilde{\mathbf{K}}_{\mathbf{Si}}\cdot{}^{n}\mathbf{s}_{\text{i}}\right) \tag{16}\] \[{}^{n+1}\widetilde{\mathbf{K}}_{\mathbf{C}} =\sum_{\text{i=L1}}^{\text{R}}\left(\Gamma_{\mathbf{iID}}^{\prime} \cdot{}^{n+1}\widetilde{\mathbf{K}}_{\mathbf{i}}\cdot\Gamma_{\mathbf{iID}}\right)\]The system of equations composed of Equation (A13) and the constitutive Newmark relations Equation (A7) is solved. Below is the expression for \({}^{n+1}\widetilde{\widetilde{\mathbf{q}}}_{\mathbf{D}}\): \[ \begin{split}{}^{n+1}\widetilde{\widetilde{\mathbf{q}}}_{\mathbf{D}}& =\left(\mathbf{M}_{\mathbf{D}}+\beta\Delta\tau^{2}\cdot{}^{n+1} \widetilde{\mathbf{K}}_{\mathbf{C}}\right)^{-1}\left({}^{n+1}\widetilde{ \mathbf{K}}_{\mathbf{C}}\cdot\left({}^{n}\mathbf{q}_{\mathbf{D}}+\Delta\tau \cdot{}^{n}\widetilde{\mathbf{q}}_{\mathbf{D}}+\right.\\ &+\left(\frac{1}{2}-\beta\right)\Delta\tau^{2}\cdot{}^{n} \widetilde{\mathbf{q}}_{\mathbf{D}}\right)+^{n+1}\widetilde{\mathbf{g}}\end{split} .\] (A15) The expressions for \({}^{n+1}\widetilde{\mathbf{q}}_{\mathbf{D}}\) and \({}^{n+1}\widetilde{\widetilde{\mathbf{q}}}_{\mathbf{D}}\) are computed using [PERSON]'s equations (Equation (A7)). 4. Vector \({}^{n+1}\widetilde{\mathbf{q}}_{\mathbf{D}}\) is transformed into local displacements at the contact \({}^{n+1}\widetilde{\widetilde{\mathbf{q}}}_{\mathbf{iD}}^{*}\) using Equation (4). The same is done with the displacements of the platform contact points, thus obtaining \(\mathbf{q}_{\mathbf{i}\mathbf{P}}^{*}(\tau_{n}+\Delta\tau)\;\forall i\). 5. The vectors of local displacements at the contacts (of both the platforms and the dampers), together with the slider variable \(\mathbf{s}_{\mathbf{i}}\) are fed into a function (similar to the contact element function) that checks whether their values are compatible with the postulated contact condition.