This paper was converted on www.awesomepapers.org from LaTeX by an anonymous user.
Want to know more? Visit the Converter page.

A variational discrete element method for quasi-static and dynamic elasto-plasticity

Frédéric Marazzato1,2,3, Alexandre Ern1,3 and Laurent Monasse1,4 1Université Paris-Est, Cermics (ENPC), F-77455 Marne-la-Vallée cedex 2, France
email: {alexandre.ern, frederic.marazzato}@enpc.fr
2
CEA, DAM, DIF, F-91297 Arpajon, France
3Inria Paris, EPC SERENA, F-75589 Paris, France
4 Université Côte d’Azur, Inria, CNRS, LJAD, EPC COFFEE, 06108 Nice, France
email: laurent.monasse@inria.fr
Abstract

We propose a new discrete element method supporting general polyhedral meshes. The method can be understood as a lowest-order discontinuous Galerkin method parametrized by the continuous mechanical parameters (Young’s modulus and Poisson’s ratio). We consider quasi-static and dynamic elasto-plasticity, and in the latter situation, a pseudo-energy conserving time-integration method is employed. The computational cost of the time-stepping method is moderate since it is explicit and used with a naturally diagonal mass matrix. Numerical examples are presented to illustrate the robustness and versatility of the method for quasi-static and dynamic elasto-plastic evolutions.

1 Introduction

Discrete element methods (DEM) constitute a large class of particle methods which have originally been used for crystalline materials [17] and geotechnical problems [8] and have found applications in granular materials, soil and rock mechanics. In their original formulation, DEM consisted in representing a domain by small spherical particles interacting by means of forces and torques. A wide range of models for the expression of these bonds has been developed depending on the material constitutive law. Computing the deformation of the domain then consists in computing the evolution of the particle system. Advantages of DEM are their ability to deal with discontinuous materials, such as fractured or porous materials, as well as the possibility to take advantage of GPU computations [25]. Other, similar, particle methods have been derived in the context of Smooth Particles Hydrodynamics (SPH) methods, which require an interaction kernel [14]. The main difficulty in DEM consists in deriving a correct set of forces between elements to discretize the continuous equations (in the present case, dynamic elasto-plasticity). DEM originally used sphere packing to discretize the domain [19] and were forced to fit parameters in order to obtain relevant values for the Young modulus EE or the Poisson ratio ν\nu [18, 7]. Moreover simulating a material with a Poisson ratio ν\nu larger than 0.30.3 met with difficulties [2]. Note also the possibility to use DEM only in a limited zone, where crack occurs for instance, in order to mitigate these issues. For example, a modified DEM (MDEM) has been coupled with a virtual element method (VEM) for elasticity to discretize fracturing porous media [22].

A discrete element method was developed in [21] and was formally proved to be consistent with Cauchy elasticity. A first attractive feature of this method was that the discrete force parameters were directly derived from the Young modulus and the Poisson ratio without the need for a fitting process. Moreover the method exhibited robustness in the incompressibility limit (ν0.5\nu\to 0.5). Similar ideas have been used to handle brittle fracture [1]. However several limitations remain in this approach. First the evaluation of the forces between particles hinges on the use of a Voronoi mesh and does not adapt to general (not even tetrahedral) meshes. This is due to a nearest-neighbour evaluation of the gradient on a facet of the mesh (known in the Finite Volume community as the “two-point flux problem”). Secondly the expression of the forces for a Cauchy continuum cannot be readily extended to more general behaviour laws. Finally the convergence proof is mostly formal (on a Cartesian grid) and no convergence proof is given on general (Voronoi) meshes, apart from numerical evidence.

The main goal of the present contribution is to circumvent the above issues by extending the discrete element method of [21] to general polyhedral meshes and elasto-plastic behaviour laws. The present space-discretization scheme involves a diagonal mass matrix and shares a number of properties with finite volume [12, 13] and lowest-order discontinuous Galerkin (dG) methods [9]. Specifically we use piecewise constant gradient reconstructions in each mesh cell evaluated from local displacement reconstructions at the facets of the mesh. As a consequence, the present DEM is not a mesh-free method since it uses the mesh geometry to compute the above reconstructions. However, it can still be viewed as a particle method owing to the use of a diagonal mass matrix. In addition to the displacement unknowns, volumetric unknowns representing plastic strains are also added. We devise the scheme for both quasi-static and dynamic elasto-plasticity, and in the latter situation we perform the time discretization using the explicit pseudo-energy conserving time-integration method developed in [20]. There are two main differences with [13] regarding the discretization of the elliptic (here linear elastic) part. On the one hand [13] uses only cell dofs, whereas the present DEM uses also boundary vertex dofs for the displacement. As we shall see below, the introduction of boundary vertex dofs can have a sizable impact on tempering the CFL restriction on the time step in the context of explicit time-marching methods. On the other hand the mass distribution of the present DEM is different. Our choice is motivated by the fact that, to use an explicit integration with a diagonal mass matrix, every dof needs a mass to compute its velocity, even dofs on boundary vertices. Moreover numerical results are presented to illustrate the robustness and versatility of the proposed method in two and three space dimensions. Finally, we mention that the convergence of the scheme can be studied using the framework of gradient discretization methods (GDM) [11]. GDM lead to a unified and powerful framework allowing one to prove convergence and error estimates for a wide range of numerical schemes.

This paper is organised as follows. Section 2 briefly recalls the equations of dynamic elasto-plasticity in a Cauchy continuum. Section 3 introduces the proposed DEM and presents the space discretization of the governing equations. Some numerical tests to verify the convergence of the space discretization in a steady setting are reported. Section 4 deals with the DEM discretization for quasi-static elasto-plasticity and presents test cases in two and three space dimensions. Section 5 addresses the time discretization of the dynamic elasto-plasticity problem using the explicit pseudo-energy conserving time-integrator developed in [20]. This section also assesses the coupled DEM and time discretization on test cases in three space dimensions. Finally Section 6 draws some conclusions.

2 Governing equations for dynamic elasto-plasticity

We consider an elasto-plastic material occupying the domain Ωd\Omega\subset\mathbb{R}^{d}, d{2,3}d\in\{2,3\}, in the reference configuration and evolving dynamically on the finite time interval (0,T)(0,T), T>0T>0, under the action of volumetric forces and boundary conditions. The strain regime is restricted to small strains so that the linearized strain tensor is ε(u):=12(u+(u)𝖳)\varepsilon(u):=\frac{1}{2}(\nabla u+(\nabla u)^{\mathsf{T}}), where uu is the displacement field. The plastic constitutive law hinges on a von Mises criterion with nonlinear isotropic hardening. The material is supposed to be homogeneous, isotropic and rate-independent. The present formalism can be extended to the case of anisotropic, inhomogeneous, rate-dependent, anisothermal materials as well as finite strains. The stress tensor σsymd×d\sigma\in\mathbb{R}_{\mathrm{sym}}^{d\times d} is such that

σ:=:(ε(u)εp),\sigma:=\mathbb{C}:(\varepsilon(u)-\varepsilon_{p}), (1)

where \mathbb{C} is the fourth-order stiffness tensor, the subscript sym\mathrm{sym} stands for symmetric tensors and εpsymd×d\varepsilon_{p}\in\mathbb{R}_{\mathrm{sym}}^{d\times d} is the (trace-free) tensor of remanent plastic strain. The von Mises yield function φ\varphi is given by

φ(σ,p):=32|dev(σ)|(σ0+R(p)),\varphi(\sigma,p):=\sqrt{\frac{3}{2}}|\mathrm{dev}(\sigma)|-(\sigma_{0}+R(p)), (2)

where dev(σ)\mathrm{dev}(\sigma) is the deviatoric part of σ\sigma and |τ|=(i,j=1dτij2)12|\tau|=(\sum_{i,j=1}^{d}\tau_{ij}^{2})^{\frac{1}{2}} for a second-order tensor τ\tau, pp is the scalar cumulated plastic deformation, R(p):=dωpdpR(p):=\frac{d\omega_{p}}{dp} where the function ωp\omega_{p} is the part of the Helmholtz free energy related to isotropic hardening, and σ0\sigma_{0} is the initial yield stress, so that the actual yield stress is σ0+R(p)\sigma_{0}+R(p). Admissible states are characterized by the inequality φ(σ,p)0\varphi(\sigma,p)\leq 0, the material is in the elastic domain if φ(σ,p)<0\varphi(\sigma,p)<0 and in the plastic domain if φ(σ,p)=0\varphi(\sigma,p)=0.

In strong form, the dynamic elasto-plasticity equations consist in searching for the displacement field u:(0,T)×Ωdu:(0,T)\times\Omega\rightarrow\mathbb{R}^{d}, the remanent plastic strain tensor εp:(0,T)×Ωsymd×d\varepsilon_{p}:(0,T)\times\Omega\rightarrow\mathbb{R}^{d\times d}_{\mathrm{sym}}, and the scalar cumulated plastic deformation p:(0,T)×Ωp:(0,T)\times\Omega\rightarrow\mathbb{R} such that the following equations hold in Ω\Omega for all t(0,T)t\in(0,T):

{ρu¨div(σ)=f,λ0,φ(σ,p)0,λφ(σ,p)=0p˙=λ,ε˙p=λφσ(σ),\left\{\begin{aligned} &\rho\ddot{u}-\mathop{\rm div}(\sigma)=f,\\ &\lambda\geq 0,\quad\varphi(\sigma,p)\leq 0,\quad\lambda\varphi(\sigma,p)=0\\ &\dot{p}=\lambda,\quad\dot{\varepsilon}_{p}=\lambda\frac{\partial\varphi}{\partial\sigma}(\sigma),\end{aligned}\right. (3)

where ρ>0\rho>0 is the density of the material, dots indicate time derivatives, ff is the imposed volumetric force, and λ\lambda is the Lagrange multiplier associated with the constraint φ(σ,p)0\varphi(\sigma,p)\leq 0. Note that owing to (2), we have ε˙p=λ32dev(σ)|dev(σ)|\dot{\varepsilon}_{p}=\lambda\sqrt{\frac{3}{2}}\frac{\mathrm{dev}(\sigma)}{|\mathrm{dev}(\sigma)|}, so that p˙=λ=23|ε˙p|\dot{p}=\lambda=\sqrt{\frac{2}{3}}|\dot{\varepsilon}_{p}|.

Let Ω=ΩNΩD\partial\Omega=\partial\Omega_{N}\cup\partial\Omega_{D} be a partition of the boundary of Ω\Omega. By convention ΩD\partial\Omega_{D} is a closed set and ΩN\partial\Omega_{N} is a relatively open set in Ω\partial\Omega. The boundary ΩD\partial\Omega_{D} has an imposed displacement uDu_{D}, whereas a normal stress gg is imposed on ΩN\partial\Omega_{N}, i.e. we enforce

u=uD on (0,T)×ΩD,σn=gN on (0,T)×ΩN.u=u_{D}\ \text{ on }(0,T)\times\partial\Omega_{D},\qquad\sigma\cdot n=g_{N}\ \text{ on }(0,T)\times\partial\Omega_{N}. (4)

Note that uDu_{D} and gNg_{N} can be time-dependent. Finally the initial conditions prescribe that u(0)=u0u(0)=u_{0}, u˙(0)=v0\dot{u}(0)=v_{0} and p(0)=0p(0)=0 in Ω\Omega.

To formulate the governing equations (3) together with the Neumann boundary condition from (4) in weak form, we consider time-dependent functions with values in space-dependent functional spaces. Let us set

VD:={vH1(Ω;d)|v|ΩD=uD},V0:={vH1(Ω;d)|v|ΩD=0}.V_{D}:=\left\{v\in H^{1}(\Omega;\mathbb{R}^{d})\ |\ v_{|\partial\Omega_{D}}=u_{D}\right\},\qquad V_{0}:=\left\{v\in H^{1}(\Omega;\mathbb{R}^{d})\ |\ v_{|\partial\Omega_{D}}=0\right\}. (5)

(Note that the space VDV_{D} is actually time-dependent if the Dirichlet data is time-dependent.) We also set

Q:=L2(Ω;symd×d),Q0:={ηpQ|tr(ηp)=0},Q:=L^{2}(\Omega;\mathbb{R}^{d\times d}_{\mathrm{sym}}),\qquad Q_{0}:=\left\{\eta_{p}\in Q\ |\ \mathrm{tr}(\eta_{p})=0\right\}, (6)

where P:=L2(Ω)P:=L^{2}(\Omega). Here, for any vector space S, L2(Ω;S)L^{2}(\Omega;S) is the Hilbert space composed of SS-valued square-integrable functions in Ω\Omega, and H1(Ω;S)H^{1}(\Omega;S) is the subspace of L2(Ω;S)L^{2}(\Omega;S) composed of those functions whose weak gradient is also square-integrable. All of the above functional spaces are equipped with their natural inner product. Then the weak solution is searched as a triple (u,εp,p):(0,T)VD×Q0×P(u,\varepsilon_{p},p):(0,T)\rightarrow V_{D}\times Q_{0}\times P. To alleviate the mathematical formalism, we do not specify here the regularity in time (see [15] and [6]). We introduce the mass bilinear form such that

m(a,v~):=ρa,v~V0,V0,(a,v~)V0×V0,m(a,\tilde{v}):=\left<\rho a,\tilde{v}\right>_{V_{0}^{\prime},V_{0}},\quad\forall(a,\tilde{v})\in V_{0}^{\prime}\times V_{0}, (7)

where V0V_{0}^{\prime} denotes the dual space of V0V_{0} and ,V0,V0\left<\cdot,\cdot\right>_{V_{0}^{\prime},V_{0}} the duality pairing, and the stiffness bilinear form parameterized by a member ηpQ0\eta_{p}\in Q_{0} such that

a(ηp;v,v~):=Ω(:(ε(v)ηp)):ε(v~),(v,v~)VD×V0,a(\eta_{p};v,\tilde{v}):=\int_{\Omega}\big{(}\mathbb{C}:(\varepsilon(v)-\eta_{p})\big{)}:\varepsilon(\tilde{v}),\quad\forall(v,\tilde{v})\in V_{D}\times V_{0}, (8)

The governing equations (3) are rewritten as follows: Find (u,εp,p):(0,T)VD×Q0×P(u,\varepsilon_{p},p):(0,T)\rightarrow V_{D}\times Q_{0}\times P such that, for all t(0,T)t\in(0,T),

{m(u¨(t),v~)+a(εp(t);u(t),v~)=l(t;v~),v~V0,λ0,φ(σ,p)0,λφ(σ,p)=0,in Ω,p˙=λ,ε˙p=λφσ(σ),in Ω,\left\{\begin{aligned} &m(\ddot{u}(t),\tilde{v})+a(\varepsilon_{p}(t);u(t),\tilde{v})=l(t;\tilde{v}),&\quad&\forall\tilde{v}\in V_{0},\\ &\lambda\geq 0,\quad\varphi(\sigma,p)\leq 0,\quad\lambda\varphi(\sigma,p)=0,&\quad&\text{in $\Omega$},\\ &\dot{p}=\lambda,\quad\dot{\varepsilon}_{p}=\lambda\frac{\partial\varphi}{\partial\sigma}(\sigma),&\quad&\text{in $\Omega$},\end{aligned}\right. (9)

where the time-dependency is left implicit in the second and third equations, and with the linear form l(t;)l(t;\cdot) acting on V0V_{0} as follows:

l(t;v~):=Ωf(t)v~+ΩNgN(t)v~.l(t;\tilde{v}):=\int_{\Omega}f(t)\cdot\tilde{v}+\int_{\partial\Omega_{N}}g_{N}(t)\cdot\tilde{v}. (10)

Note that the Dirichlet condition is enforced strongly, whereas the Neumann condition is enforced weakly. Define the elastic energy Eelas(t):=12Ωσ(t):1:σ(t)E_{\mathrm{elas}}(t):=\frac{1}{2}\int_{\Omega}\sigma(t):\mathbb{C}^{-1}:\sigma(t) with σ(t):=:(ε(u(t))εp(t))\sigma(t):=\mathbb{C}:(\varepsilon(u(t))-\varepsilon_{p}(t)), the kinetic energy Ekin(t):=12m(u˙(t),u˙(t))E_{\mathrm{kin}}(t):=\frac{1}{2}m(\dot{u}(t),\dot{u}(t)), the plastic dissipation Eplas(t):=Ωσ0p(t)+ωp(p(t))E_{\mathrm{plas}}(t):=\int_{\Omega}\sigma_{0}p(t)+\omega_{p}(p(t)), and the work of external loads Eext(t):=0tl(s;u˙(s))𝑑sE_{\mathrm{ext}}(t):=\int_{0}^{t}l(s;\dot{u}(s))ds. Then assuming for simplicity a homogeneous Dirichlet condition, and recalling the assumption p(0)=0p(0)=0, we have the following energy equation:

Eelas(t)+Ekin(t)+Eplas(t)=Eext(t)+Eelas(0)+Ekin(0),E_{\mathrm{elas}}(t)+E_{\mathrm{kin}}(t)+E_{\mathrm{plas}}(t)=E_{\mathrm{ext}}(t)+E_{\mathrm{elas}}(0)+E_{\mathrm{kin}}(0), (11)

showing that the total energy at time tt is balanced with the work of external loads up to time tt (notice that Eplas(0)=0E_{\mathrm{plas}}(0)=0 in our setting).

3 Space semi-discretization

In this section we present the DEM space semi-discretization of the weak formulation (9), and we present a few verification test cases for static linear elasticity.

3.1 Degrees of freedom

The domain Ω\Omega is discretized with a mesh 𝒯h\mathcal{T}_{h} of size hh made of polyhedra with planar facets in three space dimensions or polygons with straight edges in two space dimensions. We assume that Ω\Omega is itself a polyhedron or a polygon so that the mesh covers Ω\Omega exactly, and we also assume that the mesh is compatible with the partition of the boundary Ω\partial\Omega into the Dirichlet and Neumann parts.

Let 𝒞\mathcal{C} denote the set of mesh cells and 𝒵\mathcal{Z}^{\partial} the set of mesh vertices sitting on the boundary of Ω\Omega. Vector-valued volumetric degrees of freedom (dofs) for a generic displacement field v𝒞:=(vc)c𝒞d#(𝒞)v_{\mathcal{C}}:=(v_{c})_{c\in\mathcal{C}}\in\mathbb{R}^{d\#(\mathcal{C})} are placed at the barycentre of every mesh cell c𝒞c\in\mathcal{C}, where #(S)\#(S) denotes the cardinality of any set SS. Additional vector-valued boundary degrees of freedom v𝒵:=(vz)z𝒵d#(𝒵)v_{\mathcal{Z}^{\partial}}:=(v_{z})_{z\in\mathcal{Z}^{\partial}}\in\mathbb{R}^{d\#(\mathcal{Z}^{\partial})} for the displacement are added at every boundary vertex z𝒵z\in\mathcal{Z}^{\partial}. The reason why we introduce boundary vertex dofs is motivated in Section 3.3. These dofs are also used to enforce the Dirichlet condition on ΩD\partial\Omega_{D}. We use the compact notation vh:=(v𝒞,v𝒵)v_{h}:=(v_{\mathcal{C}},v_{\mathcal{Z}^{\partial}}) for the collection of all the cell dofs and all the boundary vertex dofs. Figure 1 illustrates the position of the displacement dofs. In addition a (trace-free) symmetric tensor-valued dof representing the internal plasticity variable ηp,csymd×d\eta_{p,c}\in\mathbb{R}^{d\times d}_{\mathrm{sym}} is attached to every mesh cell c𝒞c\in\mathcal{C}, as well as a scalar dof pcp_{c} representing the cumulated plastic deformation. We write ηp,𝒞:=(ηp,c)c𝒞Qh:=(symd×d)#(𝒞)\eta_{p,\mathcal{C}}:=(\eta_{p,c})_{c\in\mathcal{C}}\in Q_{h}:=\left(\mathbb{R}^{d\times d}_{\mathrm{sym}}\right)^{\#(\mathcal{C})} and p𝒞:=(pc)c𝒞Ph:=#(𝒞)p_{\mathcal{C}}:=(p_{c})_{c\in\mathcal{C}}\in P_{h}:=\mathbb{R}^{\#(\mathcal{C})}.

Ω\OmegaΩ\partial\Omega(uc)c𝒞(u_{c})_{c\in\mathcal{C}}(uz)z𝒵(u_{z})_{z\in\mathcal{Z}^{\partial}}
Figure 1: Continuum Ω\Omega covered by a polyhedral mesh and vector-valued degrees of freedom for the displacement.

Let \mathcal{F} denote the set of mesh facets. We partition this set as =ib\mathcal{F}=\mathcal{F}^{i}\cup\mathcal{F}^{b}, where i\mathcal{F}^{i} is the collection of the internal facets shared by two mesh cells and b\mathcal{F}^{b} is the collection of the boundary facets sitting on the boundary Ω\partial\Omega (such facets belong to the boundary of only one mesh cell). Using the cell and boundary-vertex dofs introduced above, we reconstruct a collection of displacements v:=(vF)Fd#()v_{\mathcal{F}}:=(v_{F})_{F\in\mathcal{F}}\in\mathbb{R}^{d\#(\mathcal{F})} on the mesh facets. The facet reconstruction operator is denoted \mathcal{R} and we write

v:=(vh).v_{\mathcal{F}}:=\mathcal{R}(v_{h}). (12)

The precise definition of the facet reconstruction operator is given in Section 3.3. Using the reconstructed facet displacements and a discrete Stokes formula, it is possible to devise a discrete d×d\mathbb{R}^{d\times d}-valued piecewise-constant gradient field for the displacement that we write G𝒞(v):=(Gc(v))c𝒞d2#(𝒞)G_{\mathcal{C}}(v_{\mathcal{F}}):=(G_{c}(v_{\mathcal{F}}))_{c\in\mathcal{C}}\in\mathbb{R}^{d^{2}\#(\mathcal{C})}. Specifically we set in every mesh cell c𝒞c\in\mathcal{C},

Gc(v):=Fc|F||c|vFnF,c,vd#(),G_{c}(v_{\mathcal{F}}):=\sum_{F\in\partial c}\frac{|F|}{|c|}v_{F}\otimes n_{F,c},\qquad\forall v_{\mathcal{F}}\in\mathbb{R}^{d\#(\mathcal{F})}, (13)

where the summation is over the facets FF of cc and nF,cn_{F,c} is the outward normal to cc on FF. Note that for all vhVhv_{h}\in V_{h}, we have

Gc((vh))=Fc|F||c|((vh)Fvc)nF,c,G_{c}(\mathcal{R}(v_{h}))=\sum_{F\in\partial c}\frac{|F|}{|c|}(\mathcal{R}(v_{h})_{F}-v_{c})\otimes n_{F,c}, (14)

since Fc|F|nF,c=0\sum_{F\in\partial c}|F|n_{F,c}=0. We define a constant linearized strain tensor in every mesh cell c𝒞c\in\mathcal{C} such that

εc(v):=12(Gc(v)+Gc(v)𝖳)symd×d.\varepsilon_{c}(v_{\mathcal{F}}):=\frac{1}{2}(G_{c}(v_{\mathcal{F}})+G_{c}(v_{\mathcal{F}})^{\mathsf{T}})\in\mathbb{R}^{d\times d}_{\mathrm{sym}}. (15)

Finally, we define two additional reconstructions. The first is a cellwise nonconforming P1P^{1} reconstruction \mathfrak{R} defined for all c𝒞c\in\mathcal{C} by

(vh)c(𝐱):=vc+Gc((vh))(𝐱𝐱c),\mathfrak{R}(v_{h})_{c}(\mathbf{x}):=v_{c}+G_{c}(\mathcal{R}(v_{h}))\cdot(\mathbf{x}-\mathbf{x}_{c}), (16)

where 𝐱c\mathbf{x}\in c and 𝐱c\mathbf{x}_{c} is the barycentre of the cell cc. The second is a P1P^{1} reconstruction on boundary facets, written (v𝒵)\mathfrak{R}^{\partial}(v_{\mathcal{Z}^{\partial}}), and computed using the vertex dofs of the boundary facets. In case of simplicial facets, it reduces to classical P1P^{1} Lagrange interpolation. For non-simplicial facets, generalised barycentric coordibnates need to be used, see [5], for instance.

3.2 Discrete problem

Let us set Vh:=d#(𝒞)×d#(𝒵)V_{h}:=\mathbb{R}^{d\#(\mathcal{C})}\times\mathbb{R}^{d\#(\mathcal{Z}^{\partial})} and (recall that ΩD\partial\Omega_{D} is a closed set)

{VhD:={vhVh|vz=uD(z)z𝒵ΩD},Vh0:={vhVh|vz=0z𝒵ΩD},WhD:={vhVh|vz=u˙D(z)z𝒵ΩD}.\left\{\begin{aligned} V_{hD}&:=\{v_{h}\in V_{h}\ |\ v_{z}=u_{D}(z)\ \forall z\in\mathcal{Z}^{\partial}\cap\partial\Omega_{D}\},\\ V_{h0}&:=\{v_{h}\in V_{h}\ |\ v_{z}=0\ \forall z\in\mathcal{Z}^{\partial}\cap\partial\Omega_{D}\},\\ W_{hD}&:=\{v_{h}\in V_{h}\ |\ v_{z}=\dot{u}_{D}(z)\ \forall z\in\mathcal{Z}^{\partial}\cap\partial\Omega_{D}\}.\end{aligned}\right. (17)

(Note that the spaces VhDV_{hD} and WhDW_{hD} are actually time-dependent if the Dirichlet data is time-dependent.) The discrete stiffness bilinear form is parameterized by a member ηp,𝒞Qh\eta_{p,\mathcal{C}}\in Q_{h} and is such that, for all (vh,v~h)VhD×Vh0(v_{h},\tilde{v}_{h})\in V_{hD}\times V_{h0} (compare with (8)),

ah(ηp,𝒞;vh,v~h):=c𝒞|c|(:(εc((vh))ηp,c)):εc((v~h))+sh(vh,v~h).a_{h}(\eta_{p,\mathcal{C}};v_{h},\tilde{v}_{h}):=\sum_{c\in\mathcal{C}}|c|\big{(}\mathbb{C}:(\varepsilon_{c}(\mathcal{R}(v_{h}))-\eta_{p,c})\big{)}:\varepsilon_{c}(\mathcal{R}(\tilde{v}_{h}))+s_{h}(v_{h},\tilde{v}_{h}). (18)

Here shs_{h} is a weakly consistent stabilization bilinear form intended to render aha_{h} coercive and which is defined on Vh×VhV_{h}\times V_{h} as follows:

sh(vh,v~h)=FηhF|F|[(vh)]F[(v~h)]Fs_{h}(v_{h},\tilde{v}_{h})=\sum_{F\in\mathcal{F}}\frac{\eta}{h_{F}}|F|[\mathfrak{R}(v_{h})]_{F}\cdot[\mathfrak{R}(\tilde{v}_{h})]_{F} (19)

where hFh_{F} is the diameter of the facet FF\in\mathcal{F}. For an interior facet FiF\in\mathcal{F}^{i}, writing cc_{-} and c+c_{+} the two mesh cells sharing FF, i.e., F=cc+F=\partial c_{-}\cap\partial c_{+}, and orienting FF by the unit normal vector nFn_{F} pointing from cc_{-} to c+c_{+}, one has

[(vh)]F:=(vh)c(𝐱F)(vh)c+(𝐱F).[\mathfrak{R}(v_{h})]_{F}:=\mathfrak{R}(v_{h})_{c_{-}}(\mathbf{x}_{F})-\mathfrak{R}(v_{h})_{c_{+}}(\mathbf{x}_{F}). (20)

The sign of the jump is irrelevant in what follows. The role of the summation over the interior facets in (19) is to penalize the jumps of the cell reconstruction \mathfrak{R} across the interior facets. For a boundary facet FbF\in\mathcal{F}^{b}, we denote cc_{-} the unique mesh cell containing FF, we orient FF by the unit normal vector nF:=ncn_{F}:=n_{c_{-}} which points outward Ω\Omega, and we define

[(vh)]F:=(v𝒵)F(𝐱F)(vh)c(𝐱F).[\mathfrak{R}(v_{h})]_{F}:=\mathfrak{R}^{\partial}(v_{\mathcal{Z}^{\partial}})_{F}(\mathbf{x}_{F})-\mathfrak{R}(v_{h})_{c_{-}}(\mathbf{x}_{F}). (21)

The role of the summation over the boundary facets in (19) is to penalize the jumps between the cell reconstruction \mathfrak{R} and the boundary facet reconstruction \mathfrak{R}^{\partial}. The parameter η>0\eta>0 in (19) is user-defined with the only requirement that η>0\eta>0. The bilinear form shs_{h} is classical in the context of discontinuous Galerkin methods (see [3, 10] for instance, see also [9] for cell-centred Galerkin methods). In practice, the penalty parameter η\eta scales as η=βμ\eta=\beta\mu where μ\mu is the second Lamé coefficient of the material and β\beta is a dimensionless factor that remains user-dependent. Notice that this choice is robust with respect to ν0.5\nu\to 0.5. We present a numerical test in Section 3.5.1 illustrating the moderate impact of β\beta on the numerical computations.

We can next define a discrete mass bilinear form mhm_{h} similar to (7) and a discrete load linear form lh(t)l_{h}(t) similar to (10); details are given below. Then the space semi-discrete version of the evolution problem (9) amounts to seeking (uh,εp,𝒞,p𝒞):(0,T)VhD×Qh×Ph(u_{h},\varepsilon_{p,\mathcal{C}},p_{\mathcal{C}}):(0,T)\rightarrow V_{hD}\times Q_{h}\times P_{h} such that, for all t(0,T)t\in(0,T),

{mh(u¨h(t),v~h)+ah(εp,𝒞(t);uh(t),v~h)=lh(t,v~h),v~hVh0,λc0,φ(Σc(uh),pc)0,λcφ(Σc(uh),pc)=0,c𝒞,p˙c=λc,ε˙p,c=λcφσ(Σc(uh)),c𝒞,\left\{\begin{aligned} &m_{h}(\ddot{u}_{h}(t),\tilde{v}_{h})+a_{h}(\varepsilon_{p,\mathcal{C}}(t);u_{h}(t),\tilde{v}_{h})=l_{h}(t,\tilde{v}_{h}),&\quad&\forall\tilde{v}_{h}\in V_{h0},\\ &\lambda_{c}\geq 0,\quad\varphi(\Sigma_{c}(u_{h}),p_{c})\leq 0,\quad\lambda_{c}\varphi(\Sigma_{c}(u_{h}),p_{c})=0,&\quad&\forall c\in\mathcal{C},\\ &\dot{p}_{c}=\lambda_{c},\quad\dot{\varepsilon}_{p,c}=\lambda_{c}\frac{\partial\varphi}{\partial\sigma}(\Sigma_{c}(u_{h})),&\quad&\forall c\in\mathcal{C},\\ \end{aligned}\right. (22)

where the time-dependency is left implicit in the second and third equations and where we introduced in every mesh cell c𝒞c\in\mathcal{C} the local stress tensor

Σc(uh):=:(εc((uh))εp,c)symd×d.\Sigma_{c}(u_{h}):=\mathbb{C}:(\varepsilon_{c}(\mathcal{R}(u_{h}))-\varepsilon_{p,c})\in\mathbb{R}^{d\times d}_{\mathrm{sym}}. (23)

Note that the plasticity relations in (22) are enforced cellwise, i.e., a mesh cell c𝒞c\in\mathcal{C} is either in the elastic state or in the plastic state depending on the value of φ(Σc(uh),pc)\varphi(\Sigma_{c}(u_{h}),p_{c}). This is due to the fact that stresses are cell-wise constant and thus the second relation of (22) can only be enforced cell-wise.

The definition of the discrete mass bilinear form mhm_{h} hinges on subdomains to condense the mass associated with the dofs. Figure 2 represents our choice for the subdomains. For all the interior cells, the subdomain ωc\omega_{c} is chosen as the whole cell, i.e., ωc=c\omega_{c}=c. For the boundary vertices and for the cells having a boundary face, a dual barycentric subdomain is constructed, leading to subdomains denoted by ωz\omega_{z} and ωc\omega_{c}, respectively (see Figure 2). For the discrete load linear form, we compute averages of the external loads ff and gNg_{N} in the mesh cells and on the Neumann boundary facets, respectively. As a consequence, mh(,)m_{h}(\cdot,\cdot) and lh(t;)l_{h}(t;\cdot) can be written as follows for all (vh,v~h)Vh×Vh(v_{h},\tilde{v}_{h})\in V_{h}\times V_{h} (compare with (7) and (10)):

mh(vh,v~h)\displaystyle m_{h}(v_{h},\tilde{v}_{h}) :=z𝒵mzvzv~z+c𝒞mcvcv~c,\displaystyle:=\sum_{z\in\mathcal{Z}^{\partial}}m_{z}v_{z}\cdot\tilde{v}_{z}+\sum_{c\in\mathcal{C}}m_{c}v_{c}\cdot\tilde{v}_{c}, (24)
lh(t,w~h)\displaystyle l_{h}(t,\tilde{w}_{h}) :=c𝒞fc(t)w~c+FbΩNgF(t)(v~h)F,\displaystyle:=\sum_{c\in\mathcal{C}}f_{c}(t)\cdot\tilde{w}_{c}+\sum_{F\in\mathcal{F}^{b}\cap\partial\Omega_{N}}g_{F}(t)\cdot\mathcal{R}(\tilde{v}_{h})_{F}, (25)

with mz:=ωzρm_{z}:=\int_{\omega_{z}}\rho, mc:=ωcρm_{c}:=\int_{\omega_{c}}\rho, fc(t):=cf(t)f_{c}(t):=\int_{c}f(t) and gF(t):=FgN(t)g_{F}(t):=\int_{F}g_{N}(t).

Ω\OmegaΩ\partial\Omega(uc)c𝒞(u_{c})_{c\in\mathcal{C}}mass associated with ucu_{c}, c𝒞c\in\mathcal{C}(uz)z𝒵(u_{z})_{z\in\mathcal{Z}^{\partial}}mass associated with uzu_{z}, z𝒵z\in\mathcal{Z}^{\partial}
Figure 2: Integration domains to determine the mass associated with the displacement dofs.

3.3 Reconstruction operator on facets

The reconstruction operator \mathcal{R} is constructed in the same way as in the finite volume methods studied in [13, Sec. 2.2] and in the cell-centered Galerkin methods from [9]. For a given facet FF\in\mathcal{F}, we select neighbouring boundary vertices collected in a subset denoted 𝒵F\mathcal{Z}_{F}^{\partial} and neighbouring cells collected in a subset denoted 𝒞F\mathcal{C}_{F}, as well as coefficients (αFz)z𝒵F(\alpha_{F}^{z})_{z\in\mathcal{Z}_{F}^{\partial}} and (αFc)c𝒞F(\alpha_{F}^{c})_{c\in\mathcal{C}_{F}}, and we set

(vh)F:=z𝒵FαFzvz+c𝒞FαFcvc,vhVh.\mathcal{R}(v_{h})_{F}:=\sum_{z\in\mathcal{Z}_{F}^{\partial}}{\alpha_{F}^{z}v_{z}}+\sum_{c\in\mathcal{C}_{F}}{\alpha_{F}^{c}v_{c}},\qquad\forall v_{h}\in V_{h}. (26)

The neighbouring dofs should stay 𝒪(h)\mathcal{O}(h) close to the facet FF. An algorithm is detailed thereafter to explain the selection of the neighbouring dofs in 𝒵F\mathcal{Z}^{\partial}_{F} and 𝒞F\mathcal{C}_{F}. The coefficients αFz\alpha_{F}^{z} and αFc\alpha_{F}^{c} are chosen as the barycentric coordinates of the facet barycentre 𝐱F\mathbf{x}_{F} in terms of the location of the boundary vertices in 𝒵F\mathcal{Z}_{F}^{\partial} and the barycentres of the cells in 𝒞F\mathcal{C}_{F}. For any interior facet FiF\in\mathcal{F}^{i}, the set 𝒵F𝒞F\mathcal{Z}_{F}^{\partial}\cup\mathcal{C}_{F} is constructed so as to contain exactly (d+1)(d+1) points forming the vertices of a non-degenerate simplex. Thus, the barycentric coefficients αF𝐳\alpha^{\mathbf{z}}_{F} and αFc\alpha^{c}_{F} are computed by solving the linear system:

{𝐳𝒵FαF𝐳+c𝒞FαFc=1,F,𝐳𝒵FαF𝐳𝐳+c𝒞FαFc𝐱c=𝐱F,F,\left\{\begin{aligned} &\sum_{\mathbf{z}\in\mathcal{Z}_{F}^{\partial}}{\alpha_{F}^{\mathbf{z}}}+\sum_{c\in\mathcal{C}_{F}}{\alpha_{F}^{c}}=1,\qquad&\forall F\in\mathcal{F},\\ &\sum_{\mathbf{z}\in\mathcal{Z}_{F}^{\partial}}{\alpha_{F}^{\mathbf{z}}\mathbf{z}}+\sum_{c\in\mathcal{C}_{F}}{\alpha_{F}^{c}\mathbf{x}_{c}}=\mathbf{x}_{F},\qquad&\forall F\in\mathcal{F},\\ \end{aligned}\right. (27)

where the vertex and its position are written 𝐳\mathbf{z} and 𝐱c\mathbf{x}_{c} is the position of the barycentre of the cell cc.

The main rationale for choosing the neighboring dofs is to ensure as much as possible that all the coefficients αFz\alpha_{F}^{z} or αFc\alpha_{F}^{c} lie in the interval (0,1)(0,1), so that the definition of (vh)F\mathcal{R}(v_{h})_{F} in (26) is based on an interpolation formula (rather than an extrapolation formula if some coefficients lie outside the interval (0,1)(0,1).) For most internal facets FiF\in\mathcal{F}^{i}, far from the boundary Ω\partial\Omega, it is possible to choose an interpolation-based reconstruction operator using only cell dofs, i.e., we usually have 𝒵F:=\mathcal{Z}_{F}^{\partial}:=\emptyset. Figure 3 presents an example for an interior facet FF using three neighbouring cell dofs located at the cell barycentres 𝐱i\mathbf{x}^{i}, 𝐱j\mathbf{x}^{j} and 𝐱k\mathbf{x}^{k}. Close to the boundary Ω\partial\Omega, the use of boundary vertex dofs helps to prevent extrapolation. In all the cases we considered, interpolation was always possible using the algorithm described below.

×\times𝐱j\mathbf{x}^{j}FF\bullet𝐱F\mathbf{x}_{F}×\times𝐱i\mathbf{x}^{i}×\times𝐱k\mathbf{x}^{k}
Figure 3: Dofs associated with the interior facet FF used for the reconstruction.

On the boundary facets, the reconstruction operator only uses interpolation from the boundary vertices of the facet, i.e., we always set 𝒞F:=\mathcal{C}_{F}:=\emptyset for all FbF\in\mathcal{F}^{b}. In three space dimensions, the facet can be polygonal and the barycentric coordinates are generalized barycentric coordinates. This is achieved using [5] and the package 2D Triangulation of the geometric library CGAL. In the case of simplicial facets (triangles in three space dimensions and segments in two space dimensions), we recover the classical barycentric interpolation as described above.

The advantage of using interpolation rather than extrapolation is relevant in the context of explicit time-marching schemes where the time step is restricted by a CFL condition depending on the largest eigenvalue λmax\lambda_{\max{}} of the stiffness matrix associated with the discrete bilinear form ah(0;,)a_{h}(0;\cdot,\cdot) (see, e.g., (48)). It turns out that using extrapolation can have an adverse effect on the maximal eigenvalue of the stiffness matrix, thereby placing a severe restriction on the time step, and this restriction is significantly alleviated if enough neighboring dofs are used in (26) to ensure that interpolation is being used. We refer the reader to Table 1 below for an illustration.

Let us now briefly outline the algorithm used for selecting the reconstruction dofs associated with a given mesh inner facet FiF\in\mathcal{F}^{i}. This algorithm has to be viewed more as a proof-of-concept than as an optimized algorithm, and we observe that this algorithm is only used in a pre-processing stage of the computations. Fix an integer Id+1I\geq d+1.

  1. 1.

    Compute a list of points (𝐱i)1iI(\mathbf{x}_{i})_{1\leq i\leq I} ordered by increasing distance to 𝐱F\mathbf{x}_{F}; each point can be either the barycentre of a mesh cell or a boundary vertex. To this purpose, we use the KDTree structure of the scipy.spatial module of Python.

  2. 2.

    Check if 𝐱F\mathbf{x}_{F} lies in the convex hull of the set (𝐱i)1iI(\mathbf{x}_{i})_{1\leq i\leq I}. To this purpose we use the ConvexHull structure of scipy.spatial. If that is not true, then extrapolation must be used. Otherwise find a subset of (𝐱i)1iI(\mathbf{x}_{i})_{1\leq i\leq I} containing (d+1)(d+1) points and use the barycentric coordinates of the resulting simplex to evaluate the interpolation coefficients to be used in (26).

Note that II must be large enough to enable the recovery of at least one simplex per inner facet that is not too flat, independently of the use of extrapolation or interpolation. In our computations, we generally took I=10I=10 if d=2d=2 and I=25I=25 if d=3d=3.

To illustrate the performance of the above algorithm in alleviating time step restrictions based on a CFL condition, we report in Table 1 the largest eigenvalue λmax\lambda_{\max{}} of the stiffness matrix and the percentage of the mesh facets where extrapolation has to be used as a function of the integer parameter II from the above algorithm. The results are obtained on the two three-dimensional meshes (called "coarse" and "fine") considered in Section 5.3.1 together with the DEM discretization for the dynamic elasto-plastic evolution of a beam undergoing flexion. Note that the minimal value is I=7I=7 for the coarse mesh and I=9I=9 for the fine mesh.

mesh I=7I=7 I=9I=9 I=12I=12 I=15I=15 I=18I=18
coarse 410104{\cdot}10^{10} 15%15\% 610096{\cdot}10^{09} 4%4\% 710077{\cdot}10^{07} 0.8%0.8\% 210052{\cdot}10^{05} 0%0\% 210052{\cdot}10^{05} 0%0\%
fine - - 710097{\cdot}10^{09} 1.6%1.6\% 310073{\cdot}10^{07} 0.1%0.1\% 110071{\cdot}10^{07} 0.01%0.01\% 810058{\cdot}10^{05} 0%0\%
Table 1: Largest eigenvalue of the stiffness matrix and percentage of inner facets with extrapolation for various values of the parameter II on the coarse and fine meshes used in the DEM discretizations reported in Section 5.3.1.

3.4 Interpretation as a Discrete Element Method

In this section we rewrite the first equation in (22) as a particle method by introducing the dofs of the discrete displacement uh(t)VhDu_{h}(t)\in V_{hD} attached to the mesh cells and to the boundary vertices lying on the Neumann boundary, which we write UDEM:=(Up(t))p𝒫U_{\mathrm{DEM}}:=(U_{p}(t))_{p\in\mathcal{P}} with 𝒫:=𝒞𝒵N\mathcal{P}:=\mathcal{C}\cup\mathcal{Z}_{N}^{\partial} and 𝒵N:={z𝒵|zΩN}\mathcal{Z}_{N}^{\partial}:=\{z\in\mathcal{Z}^{\partial}\ |\ z\in\partial\Omega_{N}\}. Here 𝒫\mathcal{P} can be viewed as the indexing set for the set of particles. Note that UDEMU_{\mathrm{DEM}} is a collection of dof values forming a column vector, whereas uhu_{h} is a piecewise-constant function. Recalling the definition of the discrete mass bilinear form, we set mp:=ωcρm_{p}:=\int_{\omega_{c}}\rho if p=c𝒞p=c\in\mathcal{C} and mp:=ω𝐳ρm_{p}:=\int_{\omega_{\mathbf{z}}}\rho if p=𝐳𝒵Np=\mathbf{z}\in\mathcal{Z}_{N}^{\partial}. Concerning the external loads, we set FDEM(t):=(Fp(t))p𝒫F_{\mathrm{DEM}}(t):=(F_{p}(t))_{p\in\mathcal{P}} with Fp(t):=fc(t)=cf(t)F_{p}(t):=f_{c}(t)=\int_{c}f(t) if p=cp=c and Fp(t):=F𝐳αF𝐳gF(t)=F𝐳αF𝐳FgN(t)F_{p}(t):=\sum_{F\in\mathcal{F}_{\mathbf{z}}}\alpha_{F}^{\mathbf{z}}g_{F}(t)=\sum_{F\in\mathcal{F}_{\mathbf{z}}}\alpha_{F}^{\mathbf{z}}\int_{F}g_{N}(t) if p=𝐳p=\mathbf{z}, where 𝐳b\mathcal{F}_{\mathbf{z}}\subset\mathcal{F}^{b} is the collection of the boundary facets to which 𝐳\mathbf{z} belongs and the coefficients αF𝐳\alpha_{F}^{\mathbf{z}} are those used in (26) for the facet reconstruction. Since the Neumann boundary ΩN\partial\Omega_{N} is relatively open in Ω\partial\Omega, all the facets in 𝐳\mathcal{F}_{\mathbf{z}} belong to ΩN\partial\Omega_{N} if 𝐳𝒵N\mathbf{z}\in\mathcal{Z}_{N}^{\partial}.

Recall that εp,𝒞:(0,T)Qh\varepsilon_{p,\mathcal{C}}:(0,T)\to Q_{h} is the discrete tensor of remanent plastic strain. Let us use the shorthand notation Σc(t):=Σc(uh(t))\Sigma_{c}(t):=\Sigma_{c}(u_{h}(t)) as defined in (23), as well as Σ𝒞(t):=(Σc(t))c𝒞\Sigma_{\mathcal{C}}(t):=(\Sigma_{c}(t))_{c\in\mathcal{C}}. For a piecewise-constant function defined on the mesh cells, say w𝒞=(wc)c𝒞w_{\mathcal{C}}=(w_{c})_{c\in\mathcal{C}}, we define the mean-value {w𝒞}F:=12(wc+wc+)\{w_{\mathcal{C}}\}_{F}:=\frac{1}{2}(w_{c_{-}}+w_{c_{+}}) for all F=cc+iF=\partial c_{-}\cap\partial c_{+}\in\mathcal{F}^{i}. Recall that the interior facet FF is oriented by the unit normal vector nFn_{F} pointing from cc_{-} to c+c_{+} and that the jump across FiF\in\mathcal{F}^{i} is defined such that [w𝒞]F:=wcwc+[w_{\mathcal{C}}]_{F}:=w_{c_{-}}-w_{c_{+}}. Recall also that for a boundary facet FbF\in\mathcal{F}^{b}, cc_{-} denotes the mesh cell to which FF belongs and that nFn_{F} is the unit normal vector to FF pointing outward Ω\Omega. Then a direct calculation shows that for all v~hVh0\tilde{v}_{h}\in V_{h0},

ah(εp,𝒞(t);uh(t),v~h)=\displaystyle-a_{h}(\varepsilon_{p,\mathcal{C}}(t);u_{h}(t),\tilde{v}_{h})={} Fi|F|({Σ𝒞(t)}FnF)[v~𝒞]F\displaystyle\sum_{F\in\mathcal{F}^{i}}|F|(\{\Sigma_{\mathcal{C}}(t)\}_{F}{\cdot}n_{F})\cdot[\tilde{v}_{\mathcal{C}}]_{F} (28)
+Fi|F|([Σ𝒞(t)]FnF)({v~𝒞}F(v~h)F)\displaystyle+\sum_{F\in\mathcal{F}^{i}}|F|([\Sigma_{\mathcal{C}}(t)]_{F}{\cdot}n_{F})\cdot(\{\tilde{v}_{\mathcal{C}}\}_{F}-\mathcal{R}(\tilde{v}_{h})_{F})
+Fb|F|(Σc(t)nF)(v~c(v~h)F)\displaystyle+\sum_{F\in\mathcal{F}^{b}}|F|(\Sigma_{c_{-}}(t){\cdot}n_{F})\cdot(\tilde{v}_{c_{-}}-\mathcal{R}(\tilde{v}_{h})_{F})
FηhF|F|[(uh(t))]F[(v~h)]F.\displaystyle-\sum_{F\in\mathcal{F}}\frac{\eta}{h_{F}}|F|[\mathfrak{R}(u_{h}(t))]_{F}\cdot[\mathfrak{R}(\tilde{v}_{h})]_{F}.

To simplify some expressions, we are going to neglect the second term on the above right-hand side since this term is of higher-order (it is essentially the product of two jumps). Recall that, by definition, the reconstruction operator \mathcal{R} on a boundary facet FbF\in\mathcal{F}^{b} makes use only of the vertex dofs of that facet. Then, letting (V~p)p𝒫(\tilde{V}_{p})_{p\in\mathcal{P}} be the collection of the dofs of the discrete test function v~h\tilde{v}_{h}, we infer that

ah(εp,𝒞(t);uh(t),v~h)p𝒫Φpep(t)V~p+Φppen(t)V~p,-a_{h}(\varepsilon_{p,\mathcal{C}}(t);u_{h}(t),\tilde{v}_{h})\simeq\sum_{p\in\mathcal{P}}\Phi_{p}^{\mathrm{ep}}(t)\cdot\tilde{V}_{p}+\Phi_{p}^{\mathrm{pen}}(t)\cdot\tilde{V}_{p}, (29)

where Φpep(t)\Phi_{p}^{\mathrm{ep}}(t) is the elasto-plastic force acting on the particle p𝒫p\in\mathcal{P} and Φppen(t)\Phi_{p}^{\mathrm{pen}}(t) is the force induced by the penalty and acting on the same particle. For all c𝒞c\in\mathcal{C}, we have Φcep(t):=FcicNΦc,Fep(t)\Phi_{c}^{\mathrm{ep}}(t):=\sum_{F\in\mathcal{F}_{c}^{i}\cup\mathcal{F}_{c}^{N}}\Phi_{c,F}^{\mathrm{ep}}(t) with ci:={Fi|Fc}\mathcal{F}_{c}^{i}:=\{F\in\mathcal{F}^{i}\ |\ F\subset\partial c\}, cN:={Fb|FcΩN}\mathcal{F}_{c}^{N}:=\{F\in\mathcal{F}^{b}\ |\ F\subset\partial c\cap\partial\Omega_{N}\}, and

Φc,Fep(t):={ιc,F|F|{Σ𝒞(t)}FnFif Fci,|F|Σc(t)nFif FcN,\Phi_{c,F}^{\mathrm{ep}}(t):=\begin{cases}\iota_{c,F}|F|\{\Sigma_{\mathcal{C}}(t)\}_{F}{\cdot}n_{F}&\text{if $F\in\mathcal{F}_{c}^{i}$},\\ |F|\Sigma_{c_{-}}(t){\cdot}n_{F}&\text{if $F\in\mathcal{F}_{c}^{N}$},\end{cases} (30)

with ιc,F:=ncnF\iota_{c,F}:=n_{c}\cdot n_{F}, and for all z𝒵Nz\in\mathcal{Z}_{N}^{\partial}, we have

Φzep(t):=FzαFzΦc,Fep(t),\Phi_{z}^{\mathrm{ep}}(t):=-\sum_{F\in\mathcal{F}_{z}}\alpha_{F}^{z}\Phi_{c_{-},F}^{\mathrm{ep}}(t), (31)

with Φc,Fep\Phi^{\mathrm{ep}}_{c_{-},F} defined in (30) (recall that cc_{-} denotes the unique mesh cell containing the boundary facet FbF\in\mathcal{F}^{b}). Note that the principle of action and reaction is encoded in the fact that ιc,F+ιc+,F=0\iota_{c_{-},F}+\iota_{c_{+},F}=0 for all F=cc+iF=\partial c_{-}\cap\partial c_{+}\in\mathcal{F}^{i}.

Remark 1 (Physical forces).

The quantities of (30) are remarkable in the sense that they correspond to the physical force that one expects between two particles: the average of the stress in each particle multiplied by the surface shared by the two particles and contracted with the normal of the corresponding facet. Notice that this force only depends on the macroscopic material parameters and does not depend on any added microscopic parameter.

The penalty force is composed of two terms, that is, for all p𝒫p\in\mathcal{P}, Φppen(t):=Φppen,1(t)+Φppen,2(t)\Phi_{p}^{\mathrm{pen}}(t):=\Phi_{p}^{\mathrm{pen,1}}(t)+\Phi_{p}^{\mathrm{pen,2}}(t). We define the first term for every cell c𝒞c\in\mathcal{C} and every facet FF\in\mathcal{F} such that FcF\subset\partial c as

Φc,Fpen,1(t):=ιc,FηhF|F|[(uh(t))]F,\Phi_{c,F}^{\mathrm{pen,1}}(t):=-\iota_{c,F}\frac{\eta}{h_{F}}|F|[\mathfrak{R}(u_{h}(t))]_{F}, (32)

and we define it for every Neumann boundary vertex z𝒵Nz\in\mathcal{Z}_{N}^{\partial} as

Φzpen,1(t):=FzαFzΦc,Fpen,1(t).\Phi_{z}^{\mathrm{pen,1}}(t):=-\sum_{F\in\mathcal{F}_{z}}\alpha_{F}^{z}\Phi_{c_{-},F}^{\mathrm{pen,1}}(t). (33)

The second term is more intricate since it is a byproduct of the extended stencil of the method. The set of facets using the dof of the particle p𝒫p\in\mathcal{P} (whether cell or boundary vertex) is defined as 𝔉p\mathfrak{F}_{p}. This means that if F𝔉pF\in\mathfrak{F}_{p}, then one has either p𝒞Fp\in\mathcal{C}_{F} or p𝒵Fp\in\mathcal{Z}_{F}^{\partial}. Let us recall that for a facet FF\in\mathcal{F}, the cell dofs used for the reconstruction (uh(t))F\mathcal{R}(u_{h}(t))_{F} are collected in 𝒞F\mathcal{C}_{F} and the boundary vertex dofs in 𝒵F\mathcal{Z}_{F}^{\partial}. Then the second penalty term writes for all p𝒫p\in\mathcal{P} and all F𝔉pF\in\mathfrak{F}_{p} as

Φp,Fpen,2(t):=c,FcFcιc,FηhF|F|[(uh(t))]F|F||c|nF,c(𝐱F𝐱c)αFp,\Phi_{p,F}^{\mathrm{pen,2}}(t):=-\sum_{c\leavevmode\color[rgb]{0.65,0,0}\definecolor[named]{pgfstrokecolor}{rgb}{0.65,0,0},F\supset\partial c}\sum_{F^{\prime}\subset\partial c}\iota_{c,F^{\prime}}\frac{\eta}{h_{F^{\prime}}}|F^{\prime}|[\mathfrak{R}(u_{h}(t))]_{F^{\prime}}\frac{|F|}{|c|}n_{F,c}\cdot(\mathbf{x}_{F^{\prime}}-\mathbf{x}_{c})\alpha^{p}_{F}, (34)

where αFp\alpha_{F}^{p} is the barycentric coordinate associated with the particle p𝒫p\in\mathcal{P} in the reconstruction over the facet FF. As a consequence, the total second penalty term writes for all p𝒫p\in\mathcal{P} as

Φppen,2(t):=F𝔉pΦp,Fpen,2(t)\Phi_{p}^{\mathrm{pen,2}}(t):=\sum_{F\in\mathfrak{F}_{p}}\Phi_{p,F}^{\mathrm{pen,2}}(t) (35)

Finally, putting everything together, we infer that the the first equation in (22) becomes

mpU¨p(t)Φpep(t)+Φppen(t)+Fp(t),p𝒫.m_{p}\ddot{U}_{p}(t)\simeq\Phi_{p}^{\mathrm{ep}}(t)+\Phi_{p}^{\mathrm{pen}}(t)+F_{p}(t),\qquad\forall p\in\mathcal{P}. (36)
Remark 2 (Matrix formulation).

Let us briefly describe the matrix formulation of the space semi-discrete problem (22) in the case of elastodynamics, i.e., without plasticity. For simplicity we focus on the pure Neumann problem. A matrix 𝐑d#()×d#(𝒫)\mathbf{R}\in\mathbb{R}^{d\#(\mathcal{F})\times d\#(\mathcal{P})} corresponding to the reconstruction operator \mathcal{R} is first constructed. Its entries are the barycentric coefficients of the dofs used for the reconstruction on the face associated with the given line of 𝐑\mathbf{R}. The lines of 𝐑\mathbf{R} associated with boundary facets have, by construction, non-zero entries only for boundary vertex dofs. The linearized strain matrix 𝐄(symd×d)#(𝒞)×d#()\mathbf{E}\in\left(\mathbb{R}_{\mathrm{sym}}^{d\times d}\right)^{\#(\mathcal{C})}\times\mathbb{R}^{d\#(\mathcal{F})} is composed of the tensorial coefficients 12|F||c|(nF+nF)\frac{1}{2}\frac{|F|}{|c|}(\otimes n_{F}+n_{F}\otimes) on the lines associated with the mesh cell c𝒞c\in\mathcal{C} and the columns associated with the facets FcF\subset\partial c. The linear elasticity matrix 𝐂(symd×d)#(𝒞)×#(𝒞)\mathbf{C}\in\left(\mathbb{R}_{\mathrm{sym}}^{d\times d}\right)^{\#(\mathcal{C})\times\#(\mathcal{C})} can be written as the block-diagonal matrix where each block corresponds to the double contraction with the fourth-order elastic tensor \mathbb{C} and multiplication by |c||c|. The jump matrix 𝐉d#()×d#(𝒫)\mathbf{J}\in\mathbb{R}^{d\#(\mathcal{F})\times d\#(\mathcal{P})} discretises the jumps [(uh)]F[\mathfrak{R}(u_{h})]_{F} on a facet F. Its assembly is not detailed for simplicity. However, it is assembled using the connectivity matrix of adjacent cells, the gradient matrix (similar to 𝐄\mathbf{E} but non-symetrized and composed of the tensorial coefficients |F||c|nF\frac{|F|}{|c|}\otimes n_{F}) and 𝐑\mathbf{R}. Denoting 𝐃d#()×d#()\mathbf{D}\in\mathbb{R}^{d\#(\mathcal{F})\times d\#(\mathcal{F})} the diagonal matrix with entry ηhF|F|\frac{\eta}{h_{F}}|F| for the facet FF, the stabilization matrix 𝐒\mathbf{S} corresponding to the bilinear form shs_{h} can be written 𝐒:=𝐉𝖳𝐃𝐉d#(𝒫)×d#(𝒫)\mathbf{S}:=\mathbf{J}^{\mathsf{T}}\mathbf{D}\mathbf{J}\in\mathbb{R}^{d\#(\mathcal{P})\times d\#(\mathcal{P})}. Finally, denoting 𝐊:=𝐑𝖳𝐄𝖳𝐂𝐄𝐑+𝐒d#(𝒫)×d#(𝒫)\mathbf{K}:=\mathbf{R}^{\mathsf{T}}\mathbf{E}^{\mathsf{T}}\mathbf{C}\mathbf{E}\mathbf{R}+\mathbf{S}\in\mathbb{R}^{d\#(\mathcal{P})\times d\#(\mathcal{P})} the stiffness matrix, the space semi-discrete system (22) in the case of elastodynamics reduces to 𝐌U¨DEM(t)+𝐊UDEM(t)=FDEM(t)\mathbf{M}\ddot{U}_{\mathrm{DEM}}(t)+\mathbf{K}U_{\mathrm{DEM}}(t)=F_{\mathrm{DEM}}(t).

3.5 Convergence tests for linear elasticity

The goal of this section is to briefly verify the correct implementation of the method in the case of static linear elasticity by comparing the numerical predictions using DEM with some analytical solutions and reporting the orders of convergence on sequences of uniformly refined meshes. The model problem thus consists of finding uVDu\in V_{D} such that

Ωε(u)::ε(u~)=Ωfu~,u~V0.\int_{\Omega}\varepsilon(\nabla u):\mathbb{C}:\varepsilon(\nabla\tilde{u})=\int_{\Omega}f\cdot\tilde{u},\qquad\forall\tilde{u}\in V_{0}. (37)

The L2L^{2}-error is computed as u(uh)L2(Ω)\|u-\mathfrak{R}(u_{h})\|_{L^{2}(\Omega)}. The energy error is based on the reconstructed linearized strain of the discrete solution in each mesh cell and is computed as uuhen:=12ah(0;uuh,uuh)\|u-u_{h}\|_{\mathrm{en}}:=\frac{1}{2}a_{h}(0;u-u_{h},u-u_{h}) where aha_{h} is defined in (18). Note that this last term also contains the energy associated with the penalty bilinear form shs_{h}. The convergence rates are approximated as

order=dlog(e1e2)(log(n2n1))1,\text{order}=d\log\left(\frac{e_{1}}{e_{2}}\right)\left(\log\left(\frac{n_{2}}{n_{1}}\right)\right)^{-1}, (38)

where e1,e2e_{1},e_{2} denote the errors on the computations with mesh sizes h1,h2h_{1},h_{2} and the number of dofs n1,n2n_{1},n_{2}.

3.5.1 Choice of penalty factor

In this section, we simulate the torsion of a cylinder with various values of η=βμ\eta=\beta\mu obtained by varying β\beta. The geometry is the one described in Section 4.3.2. We compare the results to first-order penalised Crouzeix–Raviart finite elements (FE) [16]. A mesh of size h=29mmh=29\mathrm{mm} is chosen for both computations. The DEM computation contains 6,3326,332 vectorial displacement dofs and the Crouzeix–Raviart 11,76011,760. The geometry and boundary conditions are similar to Figure 7. The material is supposed to be isotropic elastic with E=70103PaE=70\cdot 10^{3}\mathrm{Pa} and ν=0.3\nu=0.3. The imposed torsion angle is α=2.1102rad\alpha=2.1\cdot 10^{-2}\mathrm{rad}. As the solution of this torsion test consists in pure shear stress, we compare in Figure 4 tr(σ)\mathrm{tr}(\sigma) and the Von Mises stress for DEM with β=1\beta=1, β=0.1\beta=0.1 and β=0.01\beta=0.01, and the reference penalised Crouzeix–Raviart computation with β=1\beta=1. We expect the Von Mises stress to be constant on the lateral side of the cylinder and the trace of the stress tensor to be zero.

Refer to caption
(a)
Refer to caption
(b)
Refer to caption
(c)
Refer to caption
(d)
Refer to caption
(e)
Refer to caption
(f)
Refer to caption
(g)
Refer to caption
(h)
Figure 4: Choice of penalty factor: Left: Von Mises equivalent stress. Right: Trace of the stress tensor. First row: DEM with β=1\beta=1. Second row: DEM with β=0.1\beta=0.1. Third row: DEM with β=0.01\beta=0.01. Fourth row: Penalised Crouzeix–Raviart FE with β=1\beta=1 (reference).

We observe that the influence of the parameter β\beta is rather light. Indeed, the trace of the trace tensor remains of order 10110^{1} and the Von Mises stress varies between similar values. We observe that the results with the penalised Crouzeix–Raviart method vary slightly less. We believe that this is due to the higher number of dofs in this computation. As a consequence, so as to have a penalty term of the same order as the elastic term, we choose β=1\beta=1 in our subsequent computations (unless explicitly mentioned).

3.5.2 Manufactured solution

Let us consider an isotropic two-dimensional elasticity test case in the domain Ω=(12,12)2m2\Omega=(-\frac{1}{2},\frac{1}{2})^{2}\mathrm{m}^{2} with the Young modulus E=70103PaE=70\cdot 10^{3}\mathrm{Pa} and the Poisson ratio ν=0.3\nu=0.3. The reference solution is u(x,y)=a2(x2+y2)(ex+ey)u(x,y)=\frac{a}{2}(x^{2}+y^{2})(e_{x}+e_{y}) with a=0.8m1a=0.8\mathrm{m}^{-1} and (ex,ey)(e_{x},e_{y}) is the Cartesian basis of 2\mathbb{R}^{2}. The load term ff, which is computed accordingly, is f(x,y)=a(λ+3μ)(ex+ey)f(x,y)=-a(\lambda+3\mu)(e_{x}+e_{y}), where λ\lambda and μ\mu are the Lamé coefficients. The corresponding non-homogeneous Dirichlet boundary condition is enforced on the whole boundary. Convergence results are reported in Table 2 showing that the energy error converges to first-order with the mesh size and the L2L^{2}-error to second-order.

hh dofs u(uh)L2(Ω)\|u-\mathfrak{R}(u_{h})\|_{L^{2}(\Omega)} order uuhen\|u-u_{h}\|_{\mathrm{en}} order
0.0356 8,9288,928 5.67942e-05 - 4.72e-03 -
0.0177 35,07235,072 8.62031e-06 2.76 1.50e-03 1.60
0.00889 139,008139,008 1.80278e-06 2.27 5.87e-04 1.55
Table 2: Linear elasticity test case with manufactured solution: size of the mesh, number of dofs, L2L^{2}-error and order of convergence, energy error and order of convergence.

4 Quasi-static elasto-plasticity

In this section we present the quasi-static elasto-plasticity problem, its DEM discretization, and we perform numerical tests to assess the methodology.

4.1 Governing equations

The quasi-static elasto-plastic problem is a simplified formulation of (9) where the inertia term in the mass bilinear form is negligible and where the time derivatives are substituted by discrete increments. Thus we consider a sequence of loads lnV0l^{n}\in V_{0}^{\prime} for all n=1,,Nn=1,\ldots,N, and we consider the following sequence of nonlinear problems where (un,εpn,pn)VD×Q0×P(u^{n},\varepsilon_{p}^{n},p^{n})\in V_{D}\times Q_{0}\times P for all n=1,,Nn=1,\ldots,N:

{a(εpn;un,v~)=ln(v~),v~V0,(εpn,pn,epn,σn)=PLAS_IMP(εpn1,pn1,εn1,εn),in Ω,\left\{\begin{aligned} &a(\varepsilon_{p}^{n};u^{n},\tilde{v})=l^{n}(\tilde{v}),&\quad&\forall\tilde{v}\in V_{0},\\ &(\varepsilon_{p}^{n},p^{n},\mathbb{C}_{\mathrm{ep}}^{n},\sigma^{n})=\texttt{PLAS\_IMP}(\varepsilon_{p}^{n-1},p^{n-1},\varepsilon^{n-1},\varepsilon^{n}),&\quad&\text{in $\Omega$},\end{aligned}\right. (39)

where εn1:=ε(un1)\varepsilon^{n-1}:=\varepsilon(u^{n-1}), εn:=ε(un)\varepsilon^{n}:=\varepsilon(u^{n}), and where variables with a superscript n-1 come from the solution of the quasi-static problem (39) at the previous load increment or from a prescribed initial condition if n=1n=1. Given a quadruple (εpold,pold,εold,εnew)(\varepsilon_{p}^{\textrm{old}},p^{\textrm{old}},\varepsilon^{\textrm{old}},\varepsilon^{\textrm{new}}), the procedure PLAS_IMP returns a quadruple (εpnew,pnew,epnew,σnew)(\varepsilon_{p}^{\textrm{new}},p^{\textrm{new}},\mathbb{C}_{\mathrm{ep}}^{\textrm{new}},\sigma^{\textrm{new}}) such that

{λnew0,φ(σnew,pnew)0,λnewφ(σnew,pnew)=0,δp:=pnewpold=λnew,δεp:=εpnewεpold=λnewφσ(σnew).\left\{\begin{aligned} &\lambda^{\textrm{new}}\geq 0,\quad\varphi(\sigma^{\textrm{new}},p^{\textrm{new}})\leq 0,\quad\lambda^{\textrm{new}}\varphi(\sigma^{\textrm{new}},p^{\textrm{new}})=0,\\ &\delta p:=p^{\textrm{new}}-p^{\textrm{old}}=\lambda^{\textrm{new}},\quad\delta\varepsilon_{p}:=\varepsilon_{p}^{\textrm{new}}-\varepsilon_{p}^{\textrm{old}}=\lambda^{\textrm{new}}\frac{\partial\varphi}{\partial\sigma}(\sigma^{\textrm{new}}).\end{aligned}\right. (40)

Moreover σnew=:(εnewεpnew)\sigma^{\textrm{new}}=\mathbb{C}:(\varepsilon^{\textrm{new}}-\varepsilon_{p}^{\textrm{new}}) is the new stress tensor, and epnew\mathbb{C}_{\mathrm{ep}}^{\textrm{new}} is the consistent elastoplastic modulus [23] such that

σnew=σold+epnew:δε,δε:=εnewεold,σold:=:(εoldεpold).\sigma^{\textrm{new}}=\sigma^{\textrm{old}}+\mathbb{C}_{\mathrm{ep}}^{\textrm{new}}:\delta\varepsilon,\quad\delta\varepsilon:=\varepsilon^{\textrm{new}}-\varepsilon^{\textrm{old}},\quad\sigma^{\textrm{old}}:=\mathbb{C}:(\varepsilon^{\textrm{old}}-\varepsilon_{p}^{\textrm{old}}). (41)

The consistent elastoplastic modulus is instrumental to solve (39) iteratively by using an implicit radial return mapping technique (close to Newton–Raphson iterations) [24]: Starting from k=0k=0, we solve iteratively the linear problem in un,kVDu^{n,k}\in V_{D} such that

{(epn,k:ε(un,k+1),ε(v~))Q=rn,k(v~):=ln(v~)(σn,k,ε(v~))Q,v~V0,(εpn,k,pn,k,epn,k,σn,k)=PLAS_IMP(εpn1,pn1,εn1,εn,k),in Ω,\left\{\begin{aligned} &(\mathbb{C}_{\mathrm{ep}}^{n,k}:\varepsilon(u^{n,k+1}),\varepsilon(\tilde{v}))_{Q}=r^{n,k}(\tilde{v}):=l^{n}(\tilde{v})-(\sigma^{n,k},\varepsilon(\tilde{v}))_{Q},&\quad&\forall\tilde{v}\in V_{0},\\ &(\varepsilon_{p}^{n,k},p^{n,k},\mathbb{C}_{\mathrm{ep}}^{n,k},\sigma^{n,k})=\texttt{PLAS\_IMP}(\varepsilon_{p}^{n-1},p^{n-1},\varepsilon^{n-1},\varepsilon^{n,k}),&\quad&\text{in $\Omega$},\end{aligned}\right. (42)

where the state for k=0k=0 comes from the previous loading step or the initial condition. Convergence of the iterative process in kk is reached when the norm of the residual rn,kr^{n,k} is small enough.

4.2 DEM space discretization

Using the DEM space discretization, the sequence of quasi-static problems (39) amounts to seeking a discrete triple (uhn,εp,𝒞n,p𝒞n)VhD×Qh×Ph(u_{h}^{n},\varepsilon_{p,\mathcal{C}}^{n},p_{\mathcal{C}}^{n})\in V_{hD}\times Q_{h}\times P_{h} for all n=1,,Nn=1,\ldots,N, solving the following nonlinear problem:

{ah(εp,𝒞n;uhn,v~h)=lhn(v~h),v~hVh0,(εp,cn,pcn,ep,cn,σcn)=PLAS_IMP(εp,cn1,pcn1,εp,cn1,εcn),c𝒞,\left\{\begin{aligned} &a_{h}(\varepsilon_{p,\mathcal{C}}^{n};u_{h}^{n},\tilde{v}_{h})=l_{h}^{n}(\tilde{v}_{h}),&\quad&\forall\tilde{v}_{h}\in V_{h0},\\ &(\varepsilon_{p,c}^{n},p_{c}^{n},\mathbb{C}_{ep,c}^{n},\sigma_{c}^{n})=\texttt{PLAS\_IMP}(\varepsilon_{p,c}^{n-1},p_{c}^{n-1},\varepsilon_{p,c}^{n-1},\varepsilon_{c}^{n}),&\quad&\forall c\in\mathcal{C},\end{aligned}\right. (43)

where lhnl_{h}^{n} represents a suitable discretization of the load linear form lnl^{n}. Using the radial return mapping technique as in (42) and starting from k=0k=0, we solve iteratively the linear problem in uhn,kVhDu_{h}^{n,k}\in V_{hD} such that

{c𝒞|c|(ep,cn,k:εc((uhn,k+1))):εc((v~h))=r𝒞n,k(v~h),v~hVh0,(εp,cn,k,pcn,k,ep,cn,k,σcn,k)=PLAS_IMP(εp,cn1,pcn1,εcn1,εcn,k),c𝒞,\left\{\begin{aligned} &\sum_{c\in\mathcal{C}}|c|(\mathbb{C}_{ep,c}^{n,k}:\varepsilon_{c}(\mathcal{R}(u_{h}^{n,k+1}))):\varepsilon_{c}(\mathcal{R}(\tilde{v}_{h}))=r_{\mathcal{C}}^{n,k}(\tilde{v}_{h}),&\quad&\forall\tilde{v}_{h}\in V_{h0},\\ &(\varepsilon_{p,c}^{n,k},p_{c}^{n,k},\mathbb{C}_{ep,c}^{n,k},\sigma_{c}^{n,k})=\texttt{PLAS\_IMP}(\varepsilon_{p,c}^{n-1},p_{c}^{n-1},\varepsilon_{c}^{n-1},\varepsilon_{c}^{n,k}),&\quad&\forall c\in\mathcal{C},\end{aligned}\right. (44)

with the residual r𝒞n,k(v~h):=ln(v~h)c𝒞|c|σcn,kεc((v~h))r_{\mathcal{C}}^{n,k}(\tilde{v}_{h}):=l^{n}(\tilde{v}_{h})-\sum_{c\in\mathcal{C}}|c|\sigma_{c}^{n,k}\cdot\varepsilon_{c}(\mathcal{R}(\tilde{v}_{h})), and where the discrete state for k=0k=0 comes from the previous loading step or by interpolating the values of the initial condition at the cell barycentres and the boundary vertices. Convergence of the iterative process in kk is reached when the norm of the residual r𝒞n,kr_{\mathcal{C}}^{n,k} is small enough (we use a scaled Euclidean norm).

4.3 Numerical tests

This section contains two three-dimensional tests, a beam in quasi-static flexion and a beam in quasi-static torsion, and a two-dimensional test case on the swelling of an infinite cylinder with internal pressure.

4.3.1 Beam in quasi-static traction

A beam of square section S=0.016m2S=0.016\mathrm{m}^{2} and L=1mL=1\mathrm{m} is stretched by a displacement uD(t)u_{D}(t) imposed at its right extremity, whereas the normal displacement and the tangential component of the normal stress are null at the left extremity. An homogeneous Neumann condition (σn=0\sigma\cdot n=0) is enforced on the four remaining sides of the beam. Figure 5 shows a sketch of the problem setup. The Young modulus is E=70103PaE=70\cdot 10^{3}\mathrm{Pa} and the Poisson ratio ν=0.3\nu=0.3. The yield stress is σ0=250Pa\sigma_{0}=250\mathrm{Pa}, and the material is supposed to be elasto-plastic with linear kinematic hardening. Specifically the tangent plastic modulus is set to Et=15EE_{t}=\frac{1}{5}E, so that we have R(p)=HpR(p)=Hp with H=EEtEEtH=\frac{EE_{t}}{E-E_{t}}. The imposed displacement is linearly increased in 2020 loading steps from 0 to 2δy2\delta_{y}, where δy=σ0EL\delta_{y}=\frac{\sigma_{0}}{E}L is the yield displacement. For this test case the analytical solution is available.

LLu=uD(t)u=u_{D}(t)σn=0\sigma\cdot n=0un=0u\cdot n=0
Figure 5: Beam in quasi-static traction: problem setup.

Figure 6 shows the stress-strain response curve, showing perfect agreement with the analytical solution using a mesh of size h=0.2mh=0.2\mathrm{m}. Note that in this test case, the stress tensor is constant in the beam.

Refer to caption
Figure 6: Beam in quasi-static traction: stress-strain response curve for the analytical solution and the DEM solution.

4.3.2 Beam in quasi-static torsion

A beam of length L=0.2mL=0.2\mathrm{m} with a circular section of radius R=0.05mR=0.05\mathrm{m} is subjected to torsion at one of its extremities. The Young modulus is E=70103PaE=70\cdot 10^{3}\mathrm{Pa} and the Poisson ratio ν=0.3\nu=0.3. The yield stress is σ0=250Pa\sigma_{0}=250\mathrm{Pa}, and the material is supposed to be perfectly plastic so that R(p)=0R(p)=0. The beam is clamped at one of its extremities, a torsion angle α(t)\alpha(t) is imposed at the other extremity, and the rest of the boundary of the beam is stress free (σn=0\sigma\cdot n=0). Figure 7 presents the problem setup. The torsion angle α(t)\alpha(t) is increased linearly in 20 loading steps from 0 to αmax=2αy\alpha_{\max{}}=2\alpha_{y}, where αy=σ0LμR3\alpha_{y}=\frac{\sigma_{0}L}{\mu R\sqrt{3}} is the yield angle and μ\mu is the second Lamé coefficient. An analytical solution is available in the cylindrical frame (er,eθ,ez)(e_{r},e_{\theta},e_{z}): the displacement field is u(r,z,t)=α(t)rzLeθu(r,z,t)=\alpha(t)r\frac{z}{L}e_{\theta}, and the stress field is σ(r,t)=τ(r,t)(eθez+ezeθ)\sigma(r,t)=\tau(r,t)\left(e_{\theta}\otimes e_{z}+e_{z}\otimes e_{\theta}\right), where

τ(r,t):={μα(t)rL,0rRαyα(t),σ0,Rαyα(t)rR.\tau(r,t):=\left\{\begin{aligned} &\mu\alpha(t)\frac{r}{L},\quad&0\leq r\leq R\frac{\alpha_{y}}{\alpha(t)},\\ &\sigma_{0},&R\frac{\alpha_{y}}{\alpha(t)}\leq r\leq R.\\ \end{aligned}\right.
u=0u=0σn=0\sigma\cdot n=0α(t)\alpha(t)u=α(t)reθu=\alpha(t)re_{\theta}LL
Figure 7: Beam in quasi-static torsion: problem setup.

Table 3 reports the maximum L2L^{2}-error on the displacement (evaluated as in Section 3.5) over the simulation interval and the energy error (including the energy of the penalty terms). The errors are evaluated as described in Section 3.5. First-order convergence in the energy norm is observed, as expected. However, full second-order convergence in L2L^{2} norm does not seem satisfied (although the convergence order is still above 1.771.77). This can be due to the fact that in perfect plasticity uH2(Ω)u\notin H^{2}(\Omega) which is a required hypothesis to obtain full second-order convergence.

hh dofs u(uh)L2(Ω)\|u-\mathfrak{R}(u_{h})\|_{L^{2}(\Omega)} order uuhen\|u-u_{h}\|_{\mathrm{en}} order
0.052630.05263 3,7533,753 2.62e-06 - 5.87e-04 -
0.032940.03294 12,72612,726 1.02e-06 2.322.32 1.97e-04 2.682.68
0.028710.02871 18,99618,996 7.75e-07 2.042.04 1.53e-04 1.891.89
0.019650.01965 47,67047,670 4.50e-07 1.771.77 8.23e-05 2.022.02
0.01418 160,146160,146 2.14e-07 1.841.84 5.36e-05 1.061.06
Table 3: Beam in quasi-static torsion: size of the mesh, number of dofs, L2L^{2}-error and order of convergence, energy error and order of convergence.

Figure 8 presents the torque-angle response curve for the reference solution and the DEM solution on various meshes, showing good agreement and the convergence of the DEM predictions as the mesh is refined.

Refer to caption
(a)
Refer to caption
(b)
Figure 8: Beam in quasi-static torsion. Left: torque-angle response curve for the analytical solution and the DEM solution on various meshes. Right: difference between the analytical solution and the DEM solution on various meshes.

4.3.3 Inner swelling of an infinite cylinder

This test case consists in the inner swelling of an infinite cylinder. The inner radius is Ri=1mR_{i}=1\mathrm{m} and the outer radius is Ro=1.3mR_{o}=1.3\mathrm{m}. Owing to the symmetries, the computation is carried out on a quarter of a planar section of the cylinder with a plane strain formulation. A sketch of the problem setup is presented in Figure 9. On the lateral sides of the quarter of cylinder, a null normal displacement and a null tangential component of the normal stress are enforced. The outer side of the cylinder is stress free (σn=0\sigma\cdot n=0), and the inner pressure ϖ\varpi imposed on the inner side is linearly increased from 0 to pmax=23σ0ln(RoRi)p_{\max{}}=\frac{2}{\sqrt{3}}\sigma_{0}\mathrm{ln}\left(\frac{R_{o}}{R_{i}}\right), where σ0=250N.m2\sigma_{0}=250\mathrm{N.m}^{-2} is the initial yield stress. The Young modulus and the tangent plastic modulus are set to E=70103PaE=70\cdot 10^{3}\mathrm{Pa} and Et=1100EE_{t}=\frac{1}{100}E.

×\timesRo=1.3R_{o}=1.3Ri=1R_{i}=1σn=0\sigma\cdot n=0un=0u\cdot n=0un=0u\cdot n=0σn=ϖn\sigma\cdot n=\varpi n
Figure 9: Inner swelling of an infinite cylinder: problem setup.

Table 4 reports the L2L^{2}-error on the displacement (evaluated as in Section 3.5) and on the cumulated plastic strain. The reference solution is computed on the finest mesh and is based on P2P^{2}-Lagrange finite elements (FE) using the implementation available in [4]. The results in Table 4 show that the method converges at order two in the L2L^{2}-norm and at order one in the energy norm.

hh dofs u(uh)L2(Ω)\|u-\mathfrak{R}(u_{h})\|_{L^{2}(\Omega)} order uuhen\|u-u_{h}\|_{\mathrm{en}} order
0.07735 992 5.15e-4 - 3.05e-03 -
0.04217 3412 1.69e-4 1.801.80 8.38e-04 2.092.09
0.02879 7588 7.26e-5 2.122.12 3.76e-04 2.012.01
0.02172 13380 3.85e-5 2.232.23 2.10e-04 2.052.05
Table 4: Inner swelling of an infinite cylinder: size of the mesh, number of dofs, L2L^{2}-error and order of convergence, energy error and order of convergence.

5 Space-time fully discrete elasto-plasticity

In this section we consider the dynamic elasto-plasticity equations from Section 2. The time discretization is performed by means of an explicit, pseudo-energy conserving, time-integration scheme recently introduced in [20]. The space discretization is achieved by means of the DEM scheme discussed in Sections 3 and 4. The main difference with Section 4.3 is that no iterative procedure is necessary in this section. Three-dimensional test cases are presented to assess the proposed methodology.

5.1 Time semi-discretization of dynamic elasto-plasticity

For simplicity we consider in this section only the time semi-discretization of the dynamic elasto-plasticity equations (9). We deal with the space-time fully discrete setting in the next section. The time-integration scheme [20] is a two-step method of order two which ensures a discrete pseudo-energy conservation, if the integration of forces is exact, even for nonlinear systems. Symmetric Gaussian quadratures of the forces can be used in practice as long as they are of order at least two. The time interval (0,T)(0,T) is discretized using the time nodes 0=t0<<tn<<tN=T0=t_{0}<\ldots<t_{n}<\ldots<t_{N}=T, and for simplicity we consider a constant time step Δt\Delta t. We define the half-time nodes tn+12=12(tn+tn+1)t_{n+\frac{1}{2}}=\frac{1}{2}(t_{n}+t_{n+1}) for all n=0,,Nn=0,\ldots,N. The time step is limited by a CFL condition which we specify in the fully discrete setting in the next section.

The key idea in the scheme [20] is to approximate the displacement field at the time nodes by means of functions unu^{n}, for all n=0,,Nn=0,\ldots,N, with u0u^{0} specified by the initial condition on the displacement, and the velocity field at the half-time nodes by means of functions vn+12v^{n+\frac{1}{2}}, for all n=0,,Nn=0,\ldots,N, with v12v^{\frac{1}{2}} specified by the initial condition on the velocity. For all n=0,,Nn=0,\ldots,N, given unu^{n} and vn+12v^{n+\frac{1}{2}}, the scheme performs two substeps: (i) A time-dependent displacement field is predicted on the time interval [tn,tn+1][t_{n},t_{n+1}] using the free-flight expression u~(t)=un+(ttn)vn+12\tilde{u}(t)=u^{n}+(t-t_{n})v^{n+\frac{1}{2}} for all t[tn,tn+1]t\in[t_{n},t_{n+1}]; (ii) The velocity field vn+32v^{n+\frac{3}{2}} is predicted by means of a quadrature on the time-integration of the forces in the time interval [tn,tn+1][t_{n},t_{n+1}]. Let {tn,k}k𝒦\{t_{n,k}\}_{k\in\mathcal{K}} and {ωn,k}k𝒦\{\omega_{n,k}\}_{k\in\mathcal{K}} be the nodes and the weights for the quadrature in the time interval [tn,tn+1][t_{n},t_{n+1}]. We then set

{un,k=un+(tn,ktn)vn+12,k𝒦,(εpn,k,pn,k)=PLAS_EXP(εpn,k1,pn,k1,εn,k),k𝒦,12m(vn+32vn12,v~)=k𝒦ωn,k(l(tn,k,v~)a(εpn,k;un,k,v~)),v~V0,\left\{\begin{aligned} &u^{n,k}=u^{n}+(t_{n,k}-t_{n})v^{n+\frac{1}{2}},&\quad&\forall k\in\mathcal{K},\\ &(\varepsilon_{p}^{n,k},p^{n,k})=\texttt{PLAS\_EXP}(\varepsilon_{p}^{n,k-1},p^{n,k-1},\varepsilon^{n,k}),&\quad&\forall k\in\mathcal{K},\\ &\frac{1}{2}m(v^{n+\frac{3}{2}}-v^{n-\frac{1}{2}},\tilde{v})=\sum_{k\in\mathcal{K}}\omega_{n,k}\Big{(}l(t_{n,k},\tilde{v})-a(\varepsilon_{p}^{n,k};u^{n,k},\tilde{v})\Big{)},&\quad&\forall\tilde{v}\in V_{0},\\ \end{aligned}\right. (45)

where εn,k:=ε(un,k)\varepsilon^{n,k}:=\varepsilon(u^{n,k}) is known from the free-flight displacement prediction and where the state for the first Gauss node k=1k=1 comes from the previous time step or the initial condition. Given a triple (εpold,pold,εnew)(\varepsilon_{p}^{\textrm{old}},p^{\textrm{old}},\varepsilon^{\textrm{new}}), the procedure PLAS_EXP returns a pair (εpnew,pnew)(\varepsilon_{p}^{\textrm{new}},p^{\textrm{new}}) such that, letting σnew:=:(εnewεpnew)\sigma^{\textrm{new}}:=\mathbb{C}:(\varepsilon^{\textrm{new}}-\varepsilon_{p}^{\textrm{new}}), we have

{λnew0,φ(σnew,pnew)0,λnewφ(σnew,pnew)=0,δp:=pnewpold=λnew,δεp:=εpnewεpold=λnewφσ(:(εnewεpold)).\left\{\begin{aligned} &\lambda^{\textrm{new}}\geq 0,\quad\varphi(\sigma^{\textrm{new}},p^{\textrm{new}})\leq 0,\quad\lambda^{\textrm{new}}\varphi(\sigma^{\textrm{new}},p^{\textrm{new}})=0,\\ &\delta p:=p^{\textrm{new}}-p^{\textrm{old}}=\lambda^{\textrm{new}},\quad\delta\varepsilon_{p}:=\varepsilon_{p}^{\textrm{new}}-\varepsilon_{p}^{\textrm{old}}=\lambda^{\textrm{new}}\frac{\partial\varphi}{\partial\sigma}(\mathbb{C}:(\varepsilon^{\textrm{new}}-\varepsilon_{p}^{\textrm{old}})).\end{aligned}\right. (46)

The main difference with respect to the procedure PLAS_IMP described in (40) is on the increment of the tensor of remanent plastic strain.

5.2 Space-time fully discrete scheme

Full space-time discretization is achieved by combining the time-integration scheme [20] described in the previous section with the DEM space discretization scheme from Section 3. For all n=1,,Nn=1,\ldots,N, we compute a discrete displacement field uhnVhDu_{h}^{n}\in V_{hD} and a discrete velocity field vhn+12WhD(tn+12)v_{h}^{n+\frac{1}{2}}\in W_{hD}(t_{n+\frac{1}{2}}) (recall that these spaces depend on nn if the prescribed Dirichlet condition on the displacement is time-dependent). Moreover, we compute a (trace-free) tensor of remanent plastic strain εp,cn,k\varepsilon_{p,c}^{n,k} and a scalar cumulated plastic deformation pcn,kp_{c}^{n,k} for every mesh cell c𝒞c\in\mathcal{C} and every Gauss time-node k𝒦k\in\mathcal{K}. We set εp,𝒞n,k:=(εp,cn,k)c𝒞\varepsilon_{p,\mathcal{C}}^{n,k}:=(\varepsilon_{p,c}^{n,k})_{c\in\mathcal{C}} and p𝒞n,k:=(pcn,k)c𝒞p_{\mathcal{C}}^{n,k}:=(p_{c}^{n,k})_{c\in\mathcal{C}}. The fully discrete scheme reads as follows: For all n=1,,Nn=1,\ldots,N, given uhnu_{h}^{n}, vhn12v_{h}^{n-\frac{1}{2}} and vhn+12v_{h}^{n+\frac{1}{2}}, compute {uhn,k}k𝒦\{u_{h}^{n,k}\}_{k\in\mathcal{K}}, vhn+32v_{h}^{n+\frac{3}{2}}, {εp,𝒞n,k}k𝒦\{\varepsilon_{p,\mathcal{C}}^{n,k}\}_{k\in\mathcal{K}}, and {p𝒞}k𝒦\{p_{\mathcal{C}}\}_{k\in\mathcal{K}} such that

{uhn,k=uhn+(tn,ktn)vhn+12,k𝒦,(εp,cn,k,pcn,k)=PLAS_EXP(εp,cn,k1,pcn,k1,εcn,k),k𝒦,c𝒞,12mh(vhn+32vhn12,v~h)=k𝒦ωn,k(lh(tn,k,v~h)ah(εp,𝒞n,k;uhn,k,v~h)),v~hVh0,\left\{\begin{aligned} &u_{h}^{n,k}=u_{h}^{n}+(t_{n,k}-t_{n})v_{h}^{n+\frac{1}{2}},&\quad&\forall k\in\mathcal{K},\\ &(\varepsilon_{p,c}^{n,k},p_{c}^{n,k})=\texttt{PLAS\_EXP}(\varepsilon_{p,c}^{n,k-1},p_{c}^{n,k-1},\varepsilon_{c}^{n,k}),&\quad&\forall k\in\mathcal{K},\ \forall c\in\mathcal{C},\\ &\frac{1}{2}m_{h}(v_{h}^{n+\frac{3}{2}}-v_{h}^{n-\frac{1}{2}},\tilde{v}_{h})=\sum_{k\in\mathcal{K}}\omega_{n,k}\Big{(}l_{h}(t_{n,k},\tilde{v}_{h})-a_{h}(\varepsilon_{p,\mathcal{C}}^{n,k};u_{h}^{n,k},\tilde{v}_{h})\Big{)},&\quad&\forall\tilde{v}_{h}\in V_{h0},\\ \end{aligned}\right. (47)

where εcn,k:=εc((uhn,k))\varepsilon_{c}^{n,k}:=\varepsilon_{c}(\mathcal{R}(u_{h}^{n,k})). Moreover, mhm_{h} and lhl_{h} are, respectively, the discrete mass bilinear form and the discrete load linear form. For the first Gauss node k=1k=1, the first two arguments in PLAS_EXP come from the previous time step or the initial condition. The initial displacement uh0u_{h}^{0} and the initial velocity vh12v_{h}^{\frac{1}{2}} are evaluated by using the values of the prescribed initial displacement u0u_{0} and the prescribed initial velocity v0v_{0} at the cell barycentres and the boundary vertices.

The time step is restricted by the following CFL stability condition:

Δt<2μminλmax,\Delta t<2\sqrt{\frac{\mu_{\min{}}}{\lambda_{\max{}}}}, (48)

where μmin\mu_{\min{}} is the smallest entry of the diagonal mass matrix associated with the discrete mass bilinear form mh(,)m_{h}(\cdot,\cdot) and λmax\lambda_{\max{}} is the largest eigenvalue of the stiffness matrix associated the discrete stiffness bilinear form ah(0;,)a_{h}(0;\cdot,\cdot) (i.e., this maximal eigenvalue is computed in the worst-case scenario when there is no plasticity). The CFL condition (48) guarantees the stability of the time-integration scheme in the linear case [20], i.e., when there is no plasticity. We expect that this condition is still reasonable in the nonlinear case since plasticity does not increase the stiffness of the material.

Finally, let us write the discrete equivalent of the energy conservation property (11). Define the discrete elastic energy at tn+1t_{n+1} as

Eelas,hn+1:=12c𝒞|c|σcn+1:1:σcn+1,E_{\mathrm{elas},h}^{n+1}:=\frac{1}{2}\sum_{c\in\mathcal{C}}|c|\sigma_{c}^{n+1}:\mathbb{C}^{-1}:\sigma_{c}^{n+1},

with σcn+1:=:(εc((uhn+1))εp,cn+1)\sigma_{c}^{n+1}:=\mathbb{C}:(\varepsilon_{c}(\mathcal{R}(u_{h}^{n+1}))-\varepsilon_{p,c}^{n+1}), for all c𝒞c\in\mathcal{C}. The discrete kinetic energy at tn+1t_{n+1} is defined by

Ekin,hn+1:=12mh(vhn+3/2,vhn+1/2),E_{\mathrm{kin},h}^{n+1}:=\frac{1}{2}m_{h}(v_{h}^{n+3/2},v_{h}^{n+1/2}),

the discrete plastic dissipation at tn+1t_{n+1} is defined by

Eplas,hn+1:=c𝒞|c|(σ0pcn+1+ωp(pcn+1)),E_{\mathrm{plas},h}^{n+1}:=\sum_{c\in\mathcal{C}}|c|\left(\sigma_{0}p_{c}^{n+1}+\omega_{p}(p_{c}^{n+1})\right),

and finally the work of external loads at tn+1t_{n+1} is defined by

Eext,hn+1:=m=0nlh(tm+1;vhm+1/2)Δt.E_{\mathrm{ext},h}^{n+1}:=\sum_{m=0}^{n}l_{h}(t_{m+1};v_{h}^{m+1/2})\Delta t.

Then assuming a homogeneous Dirichlet condition for simplicity, we have the following energy balance equation:

Eelas,hn+1+Ekin,hn+1+Eplas,hn+1=Eext,hn+1+Eelas,h0+Ekin,h0+𝒪(Δt2),E_{\mathrm{elas},h}^{n+1}+E_{\mathrm{kin},h}^{n+1}+E_{\mathrm{plas},h}^{n+1}=E_{\mathrm{ext},h}^{n+1}+E_{\mathrm{elas},h}^{0}+E_{\mathrm{kin},h}^{0}+\mathcal{O}(\Delta t^{2}), (49)

where the term 𝒪(Δt2)\mathcal{O}(\Delta t^{2}) results from the use of quadratures to compute the integral of forces (recall that Eplas,h0=0E_{\mathrm{plas},h}^{0}=0 in our setting). The interested reader is referred to [20] for further details on the effect of quadratures on the conservation properties of the integration method.

5.3 Numerical tests

This section contains two three-dimensional test cases: a beam in dynamic flexion and a beam in dynamic torsion. We use the midpoint quadrature for the integration of the forces in each time step within the time-integration scheme. We refer the reader to [20] for a study of the influence of the quadrature on the scheme accuracy for various nonlinear problems with Hamiltonian dynamics.

Although the material parameters are indicated below using physical units, they are best interpreted in terms of characteristic times. For instance, considering a one-dimensional domain of length LL, the characteristic time of the numerical experiments is Tref:=LρET_{\mathrm{ref}}:=L\sqrt{\frac{\rho}{E}}. The CFL condition (48) restricts the time-step as Δt<2μminλmax\Delta t<2\sqrt{\frac{\mu_{\min{}}}{\lambda_{\max{}}}}. Thus, one has

ΔtTref<2LμminEλmaxρ.\frac{\Delta t}{T_{\mathrm{ref}}}<\frac{2}{L}\sqrt{\frac{\mu_{\min{}}E}{\lambda_{\max{}}\rho}}.

Since the ratio Eλmax\frac{E}{\lambda_{\max}} is independent of EE, the same conclusion holds for ΔtTref\frac{\Delta t}{T_{\mathrm{ref}}}. Therefore we will report this time ratio in the computations.

5.3.1 Beam in dynamic flexion

This test case consists in computing the oscillations of an elastic and linearly isotropic plastic beam of length L=1mL=1\mathrm{m} with a rectangular section of 0.04×0.1m20.04\times 0.1\mathrm{m}^{2}. The simulation time is T=2.5sT=2.5\mathrm{s}. The beam is clamped at one end, it is loaded by a uniform vertical traction g(t)g(t) at the other end, and the four remaining lateral faces are stress free (σn=0\sigma\cdot n=0). The load term g(t)g(t) is defined as

g(t):={5t4exfor 0t45,0for 45tT.g(t):=\begin{cases}-\frac{5t}{4}e_{x}&\text{for $0\leq t\leq\frac{4}{5}$},\\ 0&\text{for $\frac{4}{5}\leq t\leq T$}.\end{cases} (50)

Figure 10 displays the problem setup. The material parameters are E=103PaE=10^{3}\mathrm{Pa} for the Young modulus, ν=0.3\nu=0.3 for the Poisson ratio, ρ=1kgm3\rho=1\mathrm{kg{\cdot}m^{-3}} for the density, σ0=25Pa\sigma_{0}=25\mathrm{Pa} for the yield stress, and Et=1100EE_{t}=\frac{1}{100}E for the tangent plastic modulus. The present three-dimensional implementation used as a starting point [4], where P1P^{1}-Lagrange FE and an implicit time-integration scheme are considered for a purely elastic material.

LLg(t)g(t)σn=0\sigma\cdot n=0u=0u=0
Figure 10: Beam in dynamic flexion: problem setup.

The proposed DEM is compared to penalised Crouzeix–Raviart FE [16]. This method is chosen as reference since it is known to be robust in the incompressible limit as ν0.5\nu\to 0.5. The penalty parameter is chosen as η=βμ\eta=\beta\mu with β=0.5\beta=0.5. The reference computation is performed using 14,37614,376 vector-valued dofs and a time-step Δt=20μs\Delta t=20\mathrm{\mu s}. Two computations are performed with the proposed DEM. The first uses a coarse mesh containing 4,6684,668 vector-valued dofs and a time-step Δt=1.4μs\Delta t=1.4\mathrm{\mu s}, which is stable for the explicit integration. The second uses a fine mesh containg 13,30213,302 vector-valued dofs and a time-step Δt=1.1μs\Delta t=1.1\mathrm{\mu s}, also stable for the explicit integration. Thus one has: 4.4107ΔtTref8.01064.4\cdot 10^{-7}\leq\frac{\Delta t}{T_{\mathrm{ref}}}\leq 8.0\cdot 10^{-6}. The penalty parameter for both computations is similar to the reference computation with β=0.5\beta=0.5. As already mentioned, we used a midpoint quadrature of the forces. Higher-order symmetric quadratures have been found to give overlapping results with respect to the midpoint quadrature. In all the computations, the time-discretization error is actually smaller than the space-discretization error, but larger time-steps cannot be considered owing to the CFL restriction.

Refer to caption
(a)
Refer to caption
(b)
Figure 11: Beam in dynamic flexion: comparison between the proposed scheme (DEM) on a coarse and a fine mesh and the reference solution (CR). Left: Displacement at the loaded tip of the beam. Right: Velocity at the same point.
Refer to caption
(a)
Refer to caption
(b)
Figure 12: Beam in dynamic flexion: energies during the simulation. Left: DEM (fine mesh). Right: reference solution (CR).

The displacement and the velocity at the center of the loaded tip of the beam are compared in Figure 11. We notice the excellent agreement between the DEM prediction on the fine mesh and the reference computation. Figure 12 shows the balance of energies for the reference computation and the fine DEM computation. One can first notice that the total energy for both DEM and Crouzeix–Raviart space semi-discretizations is well preserved by the time-integrator [20] since the total mechanical energy (kinetic energy, elastic energy and plastic dissipation) and the work of the external load are perfectly balanced at all times. We also notice that the amount of plastic dissipation is rather significant at the end of the simulation.

Refer to caption
(a)
Refer to caption
(b)
Refer to caption
(c)
Refer to caption
(d)
Refer to caption
(e)
Refer to caption
(f)
Refer to caption
(g)
Refer to caption
(h)
Refer to caption
(i)
Figure 13: Beam in dynamic flexion: DEM on the fine mesh. Von Mises equivalent stress (left column), pp (middle column) and tr(σ)\mathrm{tr}(\sigma) (right column) at t=110Tt=\frac{1}{10}T (top line), t=12Tt=\frac{1}{2}T (middle line) and t=Tt=T (bottom line).

Figure 13 presents some further results of the DEM computations on the fine mesh so as to visualize at three different times during the simulation the spatial localization of the von Mises equivalent stress, the cumulated plastic strain, and the trace of the stress tensor. One can see that the plastic strain is concentrated close to the clamped tip of the beam, where the material undergoes the greatest stresses. The method does not exhibit any locking due to plastic incompressibility as indicated by the smooth behavior of the trace of the stress tensor.

5.3.2 Beam in dynamic torsion

The setting is similar to the quasi-static torsion test case presented in Section 4.3.2. The two differences are the material parameters and the plastic law which are similar to Section 5.3.1, and the boundary conditions on one side of the beam. Figure 14 shows the problem setup. On one of its extremities the beam is clamped, and on the other extremity the following normal stress is imposed:

g(t)=μα(t)rLeθ,g(t)=\mu\alpha(t)\frac{r}{L}e_{\theta}, (51)

where rr and eθe_{\theta} are defined in Section 4.3.2. The angle α(t)\alpha(t) is increased from 0 at t=0t=0 to 5αy5\alpha_{y} at t=T=0.5st=T=0.5\mathrm{s}, where αy\alpha_{y} is the yield angle defined in Section 4.3.2. The plastic parameters are the same as those in Section 5.3.1.

u=0u=0σn=0\sigma\cdot n=0σn=g(t)\sigma\cdot n=g(t)g(t)=μα(t)rLeθg(t)=\mu\alpha(t)\frac{r}{L}e_{\theta}LL
Figure 14: Beam in dynamic torsion: problem setup.

Three different space discretizations are considered for this test case: P1P^{1}-Lagrange FE, penalised Crouzeix–Raviart FE and the proposed DEM. The Crouzeix–Raviart computations are used as reference since the method is known to be robust with respect to the incompressible limit. The Lagrange FE computations are used to illustrate their inability to deal with large plastic (deviatoric) strains. The goal of this test case is to show the ability of the proposed DEM to deal with deviatoric plasticity. The computations are not performed on the same meshes but rather with meshes leading to a similar number of dofs so as to give comparable results for DEM and Lagrange FE, whereas the meshes used with penalised Crouzeix–Raviart FE lead to twice as many dofs since they are employed to obtain a reference solution. The number of dofs and the time-steps used in the computations are presented in Table 5.

Method DEM Lagrange FE penalised CR FE
Computation coarse fine coarse fine fine very fine
Vectorial dofs 6,9786,978 14,43814,438 6,5846,584 12,85312,853 13,05213,052 27,71127,711
Δt (μs)\Delta t\text{ (}\mu s) 4.14.1 1.31.3 3.93.9 2.62.6 2.32.3 0.420.42
Table 5: Beam in dynamic torsion: number of vectorial dofs and time-step for all the computations.

One thus has: 8.4107ΔtTref8.21068.4\cdot 10^{-7}\leq\frac{\Delta t}{T_{\mathrm{ref}}}\leq 8.2\cdot 10^{-6}. All the reported time-steps are compatible with the CFL restriction. Also, for all computations, we have verified that the time discretization error is negligible with respect to the space discretization error. The time-integration scheme [20] is used with a midpoint quadrature of the forces for the coarse computations and with a Gauss-Legendre quadrature of the forces of order 5 for the fine computations. For details on the effect of the quadrature rule, see [20].

The comparison between the methods is performed by considering the displacement and the velocity of the point of coordinates (0.9R,0,16L)(0.9R,0,\frac{1}{6}L) over the simulation time TT. The results are reported in Figure 15.

Refer to caption
(a)
Refer to caption
(b)
Figure 15: Beam in dynamic torsion: comparison between DEM and FEM. Left: Displacement at the chosen point. Right: Velocity at the same point.

The angular velocity plot indicates for times t0.2t\leq 0.2s the presence of elastic waves with a small magnitude travelling through the beam. The wave of larger amplitude arriving afterwards is a plastic wave whose velocity is ten times smaller than the elastic waves since Et=E100E_{t}=\frac{E}{100}. We notice that the value for the simulation time is too long for the simulation to remain physically relevant within the small strain assumption owing to the large value reached by the angular displacement of the reference point. However this setting allows us to reach substantial amounts of plastic dissipation and thereby to probe the robustness of the space semi-discretization methods with respect to incompressibility. Recall that the remanent plastic strain tensor is trace-free, so that the stress tensor is nearly deviatoric in the entire beam at the end of the simulation. Such a situation is challenging for the P1P^{1}-Lagrange FEM since this method is known to lock in the incompressible limit. To highlight the volumetric locking incurred by Lagrange FE, Figure 16 displays at the time t=12Tt=\frac{1}{2}T the trace of the stress tensor predicted by Lagrange FE (fine mesh) and penalised Crouzeix–Raviart FE (coarse mesh), for a similar number of dofs.

Refer to caption
(a)
Refer to caption
(b)
Figure 16: Beam in dynamic torsion: tr(σ)\mathrm{tr}(\sigma) at t=12Tt=\frac{1}{2}T. Left: Lagrange FE (fine mesh). Right: Penalised Crouzeix–Raviart FE (fine mesh).

For Lagrange FE, significant oscillations are visible in the whole beam (the amplitude of these oscillations is about ten times the maximal value of the von Mises equivalent stress). Also, the amplitudes of the oscilliations of the trace tensor are about four times larger than for penalised Crouzeix–Raviart FE. Figure 17 reports the energies on the fine meshes for the DEM, Lagrange FE and penalised Crouzeix–Raviart FE. First, we notice as in the previous test case the prefect balance of the work of external loads with the different components of the mechanical energy. The orders of magnitude of the energies and plastic dissipations are similar for the three methods. However, a significant discrepancy in the plastic dissipation can be observed for Lagrange FE with respect to penalised Crouzeix–Raviart FE and DEM which both give a plastic dissipation similar to the reference computation.

Refer to caption
(a)
Refer to caption
(b)
Refer to caption
(c)
Figure 17: Beam in dynamic torsion: energies during the simulation on the fine meshes. Left: DEM. Middle: Lagrange FE. Right: penalised Crouzeix–Raviart FE.
Refer to caption
(a)
Refer to caption
(b)
Refer to caption
(c)
Refer to caption
(d)
Refer to caption
(e)
Refer to caption
(f)
Refer to caption
(g)
Refer to caption
(h)
Refer to caption
(i)
Figure 18: Beam in dynamic torsion: DEM on the fine mesh. Von Mises equivalent stress (left column), pp (middle column) and tr(σ)\mathrm{tr}(\sigma) (right column) at t=110Tt=\frac{1}{10}T (top line), t=12Tt=\frac{1}{2}T (middle line) and t=Tt=T (bottom line).

Figure 18 presents some further results of the DEM computations on the fine mesh so as to visualize at three different times during the simulation the spatial localization of the von Mises equivalent stress, the cumulated plastic strain, and the trace of the stress tensor. We can see in the first row that the von Mises stress is nonzero in the entire beam and thus the elastic waves have already travelled through the entire beam whereas the cumulative plastic strain is still zero and thus no plastic flow has occurred. In the second row, we can see that a plastic wave has started to propagate from one end of the beam. In the last row, we see that the plastic wave has reached the other side of the beam at the end of the simulation. Also, regarding the robustness with respect to ν0.5\nu\to 0.5, the magnitude of the oscillations of the trace of the stress tensor is similar to penalised Crouzeix–Raviart FE. Indeed for the DEM, the extreme values of the trace of the stress tensor are 3102Pa-3\cdot 10^{2}\mathrm{Pa} and 3102Pa3\cdot 10^{2}\mathrm{Pa} at t=T2t=\frac{T}{2} and 9102Pa-9\cdot 10^{2}\mathrm{Pa} and 7102Pa7\cdot 10^{2}\mathrm{Pa} at t=Tt=T whereas for penalised Crouzeix–Raviart FE the extermes values are 2102Pa-2\cdot 10^{2}\mathrm{Pa} and 2102Pa2\cdot 10^{2}\mathrm{Pa} at t=T2t=\frac{T}{2} and 6102Pa-6\cdot 10^{2}\mathrm{Pa} and 6102Pa6\cdot 10^{2}\mathrm{Pa} at t=Tt=T. Comparatively, for the P1P^{1}-Lagrange FE computations, the extreme values of the trace of the stress tensor are 8102Pa-8\cdot 10^{2}\mathrm{Pa} and 9102Pa9\cdot 10^{2}\mathrm{Pa} for t=T2t=\frac{T}{2} and 2103Pa-2\cdot 10^{3}\mathrm{Pa} and 2103Pa2\cdot 10^{3}\mathrm{Pa} for t=Tt=T.

6 Conclusion

We have presented a new Discrete Element Method which is a variational discretization of a Cauchy continuum and which only requires continuum macroscopic parameters as the Young modulus and the Poisson ratio for its implementation. The displacement degrees of freedom are attached to the barycentres of the mesh cells and to the boundary vertices. The key idea is to reconstruct displacements on the mesh facets and then to use a discrete Stokes formula to devise a piecewise constant gradient and linearized strain reconstructions. A simple geometric pre-processing has been devised to ensure that for almost all the mesh facets, the reconstruction is based on an interpolation (rather than extrapolation) formula and we have shown by numerical experiments that this choice can produce highly beneficial effects in terms of the largest eigenvalue of the stiffness matrix, and thus on the time step restriction within explicit time-marching schemes. Moreover, in the case of elasto-plastic behavior, the internal variables for plasticity are piecewise-constant in the mesh cells. The scheme has been tested on quasi-static and dynamic test cases using a second-order, explicit, energy-conserving time-marching scheme. Future work can include adapting the present framework to dynamic cracking and fragmentation as well as to Cosserat continua. An extension to large strain solid dynamics could also be performed by working in the reference configuration.

Acknowledgements

The authors would like to thank K. Sab (Navier, ENPC) and J.-P. Braeunig and L. Aubry (CEA) for fruitful discussions. The authors would also like to thank J. Bleyer (Navier, ENPC) for his help in dealing with the Fenics implementations. The PhD fellowship of the first author was supported by CEA.

Conflict of interest

The authors declare no conflict of interest.

References

  • [1] D. André, J. Girardot, and C. Hubert. A novel DEM approach for modeling brittle elastic media based on distinct lattice spring model. Computer Methods in Applied Mechanics and Engineering, 350:100–122, 2019.
  • [2] D. André, M. J., I. Iordanoff, J.-L. Charles, and J. Néauport. Using the discrete element method to simulate brittle fracture in the indentation of a silica glass with a blunt indenter. Computer Methods in Applied Mechanics and Engineering, 265:136–147, 2013.
  • [3] D. Arnold. An interior penalty finite element method with discontinuous elements. SIAM journal on numerical analysis, 19(4):742–760, 1982.
  • [4] J. Bleyer. Numerical tours of computational mechanics with FEniCS, 2018. https://zenodo.org/record/1287832#.Xbsqdvco85k.
  • [5] M. Budninskiy, B. Liu, Y. Tong, and M. Desbrun. Power coordinates: a geometric construction of barycentric coordinates on convex polytopes. ACM Transactions on Graphics (TOG), 35(6):241, 2016.
  • [6] C. Carstensen. Numerical analysis of the primal problem of elastoplasticity with hardening. Numerische Mathematik, 82(4):577–597, 1999.
  • [7] M. A. Celigueta, S. Latorre, F. Arrufat, and E. Oñate. Accurate modelling of the elastic behavior of a continuum with the discrete element method. Comput. Mech., 60(6):997–1010, 2017.
  • [8] P. Cundall and O. Strack. A discrete numerical model for granular assemblies. geotechnique, 29(1):47–65, 1979.
  • [9] D. A. Di Pietro. Cell centered Galerkin methods for diffusive problems. ESAIM: Mathematical Modelling and Numerical Analysis, 46(1):111–144, 2012.
  • [10] D. A. Di Pietro and A. Ern. Mathematical aspects of discontinuous Galerkin methods, volume 69. Springer Science & Business Media, 2011.
  • [11] J. Droniou, R. Eymard, T. Gallouët, C. Guichard, and R. Herbin. The gradient discretisation method, volume 82. Springer, 2018.
  • [12] R. Eymard, T. Gallouët, and R. Herbin. A finite volume scheme for anisotropic diffusion problems. Comptes Rendus Mathématique, 339(4):299–302, 2004.
  • [13] R. Eymard, T. Gallouët, and R. Herbin. Discretization of heterogeneous and anisotropic diffusion problems on general nonconforming meshes SUSHI: a scheme using stabilization and hybrid interfaces. IMA Journal of Numerical Analysis, 30(4):1009–1043, 2009.
  • [14] W. Han and X. Meng. Error analysis of the reproducing kernel particle method. Comput. Methods Appl. Mech. Engrg., 190(46-47):6157–6181, 2001.
  • [15] W. Han and B. D. Reddy. Plasticity: mathematical theory and numerical analysis, volume 9. Springer Science & Business Media, 2012.
  • [16] P. Hansbo and M. Larson. Discontinuous galerkin and the crouzeix–raviart element: application to elasticity. ESAIM: Mathematical Modelling and Numerical Analysis, 37(1):63–72, 2003.
  • [17] W.G. Hoover, W.T. Ashurst, and R.J. Olness. Two-dimensional computer studies of crystal stability and fluid viscosity. The Journal of Chemical Physics, 60(10):4043–4047, 1974.
  • [18] M. Jebahi, D. André, I. Terreros, and I. Iordanoff. Discrete element method to model 3D continuous materials. John Wiley & Sons, 2015.
  • [19] C. Labra and E. Oñate. High-density sphere packing for discrete element method simulations. Comm. Numer. Methods Engrg., 25(7):837–849, 2009.
  • [20] F. Marazzato, A. Ern, C. Mariotti, and L. Monasse. An explicit pseudo-energy conserving time-integration scheme for hamiltonian dynamics. Comput. Methods Appl. Mech. Engrg., 347:906 – 927, 2019.
  • [21] L. Monasse and C. Mariotti. An energy-preserving Discrete Element Method for elastodynamics. ESAIM: Mathematical Modelling and Numerical Analysis, 46:1527–1553, 2012.
  • [22] H. Nilsen, I. Larsen, and X. Raynaud. Combining the modified discrete element method with the virtual element method for fracturing of porous media. Comput. Geosci., 21(5-6):1059–1073, 2017.
  • [23] J. C. Simo and R. L. Taylor. Consistent tangent operators for rate-independent elastoplasticity. Computer methods in applied mechanics and engineering, 48(1):101–118, 1985.
  • [24] N. Q. Son. On the elastic plastic initial-boundary value problem and its numerical integration. International Journal for Numerical Methods in Engineering, 11(5):817–832, 1977.
  • [25] M. Spellings, R. L. Marson, J. A. Anderson, and S. C. Glotzer. GPU accelerated discrete element method (DEM) molecular dynamics for conservative, faceted particle simulations. J. Comput. Phys., 334:460–467, 2017.