## 3 Flux-corrected transport method  
We already pointed out that the accuracy of customary FE simulations of moving discontinuities, as obtained via the procedure outlined in Section 2.2, is usually spoiled by oscillations first arising around the discontinuity fronts, where both the velocity and stress fields are discontinuous. To avoid such kind of fictitious oscillations, the FCT algorithm has been adopted in [8; 15; 16]: it amounts to post-processing the local velocity field, which actually suffers discontinuities, via viscous-like diffusive and antidiffusive fluxes, the latter ones being appropriately limited in size. For ease of notation, we detail here the algorithm in the case of a one-dimensional domain \(\Omega\); pointing to the \(j-\)th node of the space discretization and assuming the mesh to be structured, the standard version of the FCT algorithm reads:  
* compute diffusive fluxes: \[\varphi_{D}^{j-1/2}= \eta_{D}\left(\dot{u}_{i}^{j}-\dot{u}_{i}^{j-1}\right)\] (25) \[\varphi_{D}^{j+1/2}= \eta_{D}\left(\dot{u}_{i}^{j+1}-\dot{u}_{i}^{j}\right)\] (26)
* update the solution through diffusive fluxes: \[\dot{\hat{u}}_{i+1}^{j}=\dot{\hat{u}}_{i+1}^{j}+\varphi_{D}^{j+1/2}-\varphi_{D }^{j-1/2}\] (27)
* compute anti-diffusive fluxes: \[\varphi_{A}^{j-1/2}= \eta_{A}\left(\dot{\hat{u}}_{i}^{j}-\dot{\hat{u}}_{i}^{j-1}\right)\] (28) \[\varphi_{A}^{j+1/2}= \eta_{A}\left(\dot{\hat{u}}_{i}^{j+1}-\dot{\hat{u}}_{i}^{j}\right)\] (29)
* apply limitation to antidiffusive fluxes: \[\bar{\varphi}_{A}^{j-1/2}= S^{j-1/2}\max\left\{0,\min\left\{S^{j-1/2}\left(\dot{\hat{u}}_{i+1} ^{j-1}-\dot{\hat{u}}_{i+1}^{j-2}\right),\left|\varphi_{A}^{j-1/2}\right|,S^{j- 1/2}\left(\dot{\hat{u}}_{i+1}^{j+1}-\dot{\hat{u}}_{i+1}^{j}\right)\right\}\right\}\] (30) \[\bar{\varphi}_{A}^{j+1/2}= S^{j+1/2}\max\left\{0,\min\left\{S^{j+1/2}\left(\dot{\hat{u}}_{i+1} ^{j}-\dot{\hat{u}}_{i+1}^{j-1}\right),\left|\varphi_{A}^{j+1/2}\right|,S^{j+ 1/2}\left(\dot{\hat{u}}_{i+1}^{j+2}-\dot{\hat{u}}_{i+1}^{j+1}\right)\right\}\right\}\] (31) where \(S^{j-1/2}=\text{sign}(\varphi_{A}^{j-1/2})\) and \(S^{j+1/2}=\text{sign}(\varphi_{A}^{j+1/2})\)  
Figure 2: Deployment of points for the computation of FCT diffusive/antidiffusive fluxes: (a) structured mesh case; (b) unstructured mesh case. * update the solution through limited antidiffusive fluxes: \[\dot{u}^{j}_{i+1}=\dot{\dot{u}}^{j}_{i+1}-\bar{\varphi}^{j+1/2}_{A}+\bar{\varphi }^{j-1/2}_{A}\] (32)
* enforce boundary conditions. In the above equations: terms \(\dot{u}^{j-1}\) and \(\dot{u}^{j+1}\) respectively denote the velocities at the nodes on the left and right sides of the \(j-\)th one, see Figure 2(a); \(\eta_{D}\) and \(\eta_{A}\) are the diffusive and antidiffusive coefficients. In two- and three-dimensional settings the above procedure can be generalized by following the same path to correct the velocity component aligned with each reference axis. As far as the computational burden of the proposed FE-FCT scheme is concerned, it can said that: the explicit Newmark time integration consists of the five loops (20)-(24) over the nodes; the FCT algorithm consists of the eight loops (25)-(32) over the nodes, and of some additional operations in (30)-(31) (i.e. min, max, positive part). Hence, in terms of computing time, simulations run with the present FE-FCT scheme turn out to be at least \(\frac{13}{5}=2.6\) times longer than the corresponding customary FE ones. When discontinuities travel inside irregular domains, ad-hoc procedures have been followed to fulfill boundary conditions or to model the response of multi-phase materials, see e.g. [8]. In this work we offer a simple procedure to allow also the adoption of unstructured meshes: in the above equations, instead of using nodal information to update the velocity field, we handle information on a local grid centered at the \(j-\)th node and characterized by a constant spacing among grid points, see Figure 2(b).