## 2 Plasticity Formulation
### Return Mapping Algorithm
#### 2.2.1 Return-Mapping Scheme for the 1D Model
Table 2 shows the number of iterations and the convergence calculated according to the loading for the numerical model (i.e., the elastoplastic tangent matrix is calculated by the finite difference method). For the three meshes (20 \(\times\) 10, 60 \(\times\) 20 and 30 \(\times\) 30), the convergence tolerance in the equilibrium iterations has been set to \(10^{-10}\). The maximum number of iterations in any load step (layer) is 8. Figure 6:0 Displacements and stresses in the line considered for Matlab and PLAXIS models according to mesh size. ## 4 Conclusions

Two methods for solving elastoplastic problems have been developed in this work. The first is related to the return-mapping scheme and is based on the fixed-point algorithm. The second is the calculation of the consistent tangent matrix and is based on finite differences. These two methods were implemented on an in-house finite element Matlab code. The algorithms were first validated by applying them to a 1D problem. The numerical results obtained during the simulations proved to be in excellent agreement with the exact solution [14]. They were then extended to the problem of a 2D dam subjected to plane strains and using Mohr-Coulomb's law. Two numerical methods for solving the system of non-linear return-mapping equations and the calculation of the tangent elastoplastic matrix were presented. Using these approaches, a set of simulations was performed, and the results compared to those obtained using the commercial software PLAXIS. The results of the different approaches remain in agreement with those given by PLAXIS, with deviations of around 2% and 0.1% in displacements for ux and uy, and of a maximum of 11% in stresses. These results are very encouraging, especially since we do not need to analytically calculate the often-tedious tangent matrix, thereby confirming the effectiveness of the numerical models developed in this work. \begin{table}
\begin{tabular}{c c c c c c c} \hline \hline \multicolumn{6}{c}{**Number of Iterations vs. to Number of Layer (with the Convergence Criterion Given by \(\frac{\|F_{var}-F_{var}\|}{\|F_{var}\|}\leq 10^{-10}\))**} \\ \hline \multicolumn{6}{c}{**Meshes**} \\ \cline{2-7}  & \multicolumn{2}{c}{\(\mathbf{20\times 10}\)} & \multicolumn{2}{c}{\(\mathbf{60\times 20}\)} & \multicolumn{2}{c}{\(\mathbf{30\times 30}\)} \\ \hline \multicolumn{1}{c}{**Number of Layer**} & \multicolumn{2}{c}{**Number of Iterations**} & \multicolumn{2}{c}{**Convergence**} & \multicolumn{2}{c}{**Convergence**} & \multicolumn{2}{c}{**Number of Iterations**} & \multicolumn{2}{c}{**Convergence**} \\ \hline
1 & 1 & \(1.692\times 10^{-16}\) & \(1\) & \(2.708\times 10^{-16}\) & \(1\) & \(1.653\times 10^{-16}\) \\
2 & 1 & \(8.636\times 10



**Author Contributions:** Conceptualization: A.S.; methodology, A.S. and G.Y.A. ; software, A.S. and G.Y.A. ; validation, A.S. and G.Y.A. ; investigation, G.Y.A. ; resources, A.S.; writing--original draft preparation, G.Y.A. ; writing--review and editing, G.Y.A. ; visualization, G.Y.A. ; supervision, A.S.; project administration, A.S.; funding acquisition, A.S. All authors have read and agreed to the published version of the manuscript. **Funding:** This research was funded by Natural Sciences and Engineering Research Council of Canada and Hydro-Quebec, grant number RDCPJ470297-14. **Institutional Review Board Statement:** Not applicable. **Informed Consent Statement:** Not applicable. **Conflicts of Interest:** The authors declare no conflict of interest. ## Appendix A

For the analytical method, this matrix will first be expressed in the principal basis, as the yield functions have already been expressed. Then, by means of the chain rule derivation, it will be returned to the global basis using the DGISO2 procedure proposed by [PERSON] et al. [1] for calculating the tensor derivative of a 2D isotropic function. 1. _Main plane_ By substituting Equation (29) into Equation (25), after differentiation we have: \[\left\{ \begin{array}{c}d\sigma_{1}\\ d\sigma_{2}\\ d\sigma_{3}\end{array} \right\}=\left\{