## 3 Numerical Implementations and Algorithms
### Additional Solid Routines
They describe solid variables for each lattice cell at time \(t\). In a two-dimensional space, the displacement tensor field has the form referenced in Equation (A36). In addition, considering mechanical applications with symmetric strain and stress tensors, strain and stress tensor fields are defined in Equations (A37) and (A38), respectively. Thus, body force applied to the whole lattice with number of nodes \(N_{x}\) and \(N_{y}\) at each time iteration can be expressed as:

\[\
abla_{x}\cdot(\Sigma)=\left[\begin{matrix}\
abla_{x}\cdot(\Sigma)[0,0]= \
abla_{x}\cdot(\sigma)_{0,0}= \begin{bmatrix}\frac{\partial\sigma_{xx}}{ \partial\mathbf{X}}+\frac{\partial\sigma_{yy}}{\partial\mathbf{Y}}\\ \frac{\partial\sigma_{yy}}{\partial\mathbf{X}}+\frac{\partial\sigma_{yy}}{ \partial\mathbf{Y}}\end{bmatrix} _{0,0}&\ldots&\
abla_{x}\cdot(\sigma)_{0,N_{y} -1}= \begin{bmatrix}\frac{\partial\sigma_{xx}}{\partial\mathbf{X}}+\frac{ \partial\sigma_{yy}}{\partial\mathbf{Y}}\\ \frac{\partial\sigma_{yy}}{\partial\mathbf{X}}+\frac{\partial\sigma_{yy}}{ \partial\mathbf{Y}}\end{bmatrix} _{0,N_{y}-1}\\ \vdots&\ddots&\vdots\\ \
abla_{x}\cdot(\sigma)_{N_{x}-1,0}= \begin{bmatrix}\frac{\partial\sigma_{xx}} {\partial\mathbf{X}}+\frac{\partial\sigma_{yy}}{\partial\mathbf{Y}}\\ \frac{\partial\sigma_{yy}}{\partial\mathbf{X}}+\frac{\partial\sigma_{yy}}{ \partial\mathbf{Y}}\end{bmatrix} _{N_{x}-1,0}&\ldots&\
abla_{x}\cdot(\sigma)_{N _{x}-1,N_{y}-1}= \begin{bmatrix}\frac{\partial\sigma_{xx}}{\partial\mathbf{X}}+ \frac{\partial\sigma_{yy}}{\partial\mathbf{Y}}\\ \frac{\partial\sigma_{yy}}{\partial\mathbf{X}}+\frac{\partial\sigma_{yy}}{ \partial\mathbf{Y}}\end{bmatrix} _{N_{x}-1,N_{y}-1}\end{bmatrix}, \tag{12}\]

where \(\
abla_{x}\cdot(\Sigma)\) tensor field is space-time dependent and remains equivalent to a gravitational force in terms of dimensional units. A lattice node \((G_{x},G_{y})\) is subject to a force estimated partly thanks to a solid constitutive law. This force is then processed depending on lattice units via the call of _ApplyLatticeBodyForce()_ that incorporates forces into lattice descriptors in order to modify distribution functions when colliding step is executed. In addition to this general implementation, a particular attention should be paid the interfaces and boundary conditions. Indeed, the numerical method used should be able to capture the displacement and stress continuity or discontinuity, according to the given problem. The strain and stress divergence are calculated, in this paper, with high order finite difference schemes which are constructed on the cell's local vicinity. However, the presented methodology remains general and is true for others numerical schemes able to capture derivatives accurately. Presented numerical operations are local across lattice nodes and allow parallel computing thanks to independent arithmetic. With _GetCellVicinityParameters()_ function, information of boundaries and lattice block frontiers are retrieved so as to adapt numerical derivative scheme topology to a specific cell. ### Finite Difference Schemes

We seek for a robust numerical method to evaluate precisely first derivatives of displacement so that a correct strain state is obtained, and the same is requested for stress divergence. Firstly, evaluations that will not amplify non-desired oscillations like local scheme patterns are preferred. Weighted Essentially Non-Oscillatory (WENO) [39] schemes were especially developed with this idea. Secondly, we aim to design schemes with small truncation errors in order to minimize deviation during iterations so as to get an acceptable solid static equilibrium. Furthermore, versatile schemes able to capture behavior along boundaries are clearly better suited. A programming task was performed, taking into account the successive use of different finite difference models as we move away from boundaries. Both forward and backward formulations are thus adopted; we refer the reader to library sources [36] for more details.