Hostname: page-component-745bb68f8f-kw2vx Total loading time: 0 Render date: 2025-02-06T15:04:02.225Z Has data issue: false hasContentIssue false

Continuum modelling and simulation of granular flows through their many phases

Published online by Cambridge University Press:  18 August 2015

Sachith Dunatunga
Affiliation:
Department of Mechanical Engineering, Massachusetts Institute of Technology, Cambridge, MA 02139, USA
Ken Kamrin*
Affiliation:
Department of Mechanical Engineering, Massachusetts Institute of Technology, Cambridge, MA 02139, USA
*
Email address for correspondence: kkamrin@mit.edu

Abstract

We propose and numerically implement a constitutive framework for granular media that allows the material to traverse through its many common phases during the flow process. When dense, the material is treated as a pressure-sensitive elasto-viscoplastic solid obeying a yield criterion and a plastic flow rule given by the ${\it\mu}(I)$ inertial rheology of granular materials. When the free volume exceeds a critical level, the material is deemed to separate and is treated as disconnected, stress-free media. A material point method (MPM) procedure is written for the simulation of this model and many demonstrations are provided in different geometries, which highlight the ability of the numerical model to handle transitions through dense and disconnected states. By using the MPM framework, extremely large strains and nonlinear deformations, which are common in granular flows, are representable. The method is verified numerically and its physical predictions are validated against many known experimental phenomena, such as Beverloo’s scaling in silo flows, jointed power-law scaling of the run-out distance in granular-column-collapse problems, and various known behaviours in inclined chute flows.

Type
Papers
Copyright
© 2015 Cambridge University Press 

1. Background

Granular materials present several modelling challenges when considering a continuum approach. During dense flow, the material can be characterized as an elasto-viscoplastic material with a frictional yield criterion. Extremely high levels of strain often occur, which challenge certain computational techniques, but the material can also behave as a solid, able to support shear loads in a static configuration. Moreover, because dry grains do not support tension, their constitutive behaviour changes from that of a dense plastic media to a gas-like disconnected state during extension, a dramatic switch that is difficult to represent in a unified modelling and numerical framework.

Several approaches have been used to simulate granular flow. One of the most accurate methods is the discrete-element method (DEM), first described in Cundall & Strack (Reference Cundall and Strack1979). While accurate, DEM solves the classical equations of motion on each grain individually, resulting in untenable computational expense over the large physical domains in many industrial and geological applications. A recent set of continuum rheological models for granular flow, such as the ${\it\mu}(I)$ relation in da Cruz et al. (Reference da Cruz, Emam, Prochnow, Roux and Chevoir2005) (later extended to three dimensions in Jop, Forterre & Pouliquen (Reference Jop, Forterre and Pouliquen2006)) and the non-local extension in Kamrin & Koval (Reference Kamrin and Koval2012), offer a number of improvements over the commonly used rate-independent Drucker–Prager and Mohr–Coulomb models for problems with zones of dense, rapid flow (as is common in industrial settings) where rate sensitivity is more pronounced and particle size effects can play a role. The incompressible Navier–Stokes solver Gerris has been used in Staron, Lagrée & Popinet (Reference Staron, Lagrée and Popinet2012) and Staron, Lagrée & Popinet (Reference Staron, Lagrée and Popinet2014) with the ${\it\mu}(I)$ relation, while the commercial finite-element software Abaqus was used in Kamrin (Reference Kamrin2010) and appended with the non-local model in Henann & Kamrin (Reference Henann and Kamrin2013, Reference Henann and Kamrin2014). While both methods can yield good results in certain regimes, the fluid solvers have difficulties with extensional disconnection, and truly static zones cannot be represented, while the finite-element method (FEM) has issues when mesh distortion becomes large. Fixes such as arbitrary-Lagrangian Eulerian (ALE) re-meshing may cause loss of conservation guarantees and lead to severe errors in non-trivial constitutive relations.

The material point method (MPM) combines the strengths of both fluids solvers and FEM. First described in Sulsky, Chen & Schreyer (Reference Sulsky, Chen and Schreyer1994), MPM is a derivative of the fluid-implicit-particle (FLIP) method (Brackbill, Kothe & Ruppel Reference Brackbill, Kothe and Ruppel1988), which is based on the particle-in-cell (PIC) method (Harlow Reference Harlow1964). The key idea behind MPM is that the state of the simulation is contained in Lagrangian material points, while the equations of motion are solved on a background computational mesh in a manner similar to FEM. Importantly, since the state is saved at material points, the mesh can be reset at the beginning of each step. Using the updated Lagrangian formulation allows large deformations to accumulate on material points, while the mesh generated at each step deforms only a small amount. Despite the use of this computational scratchpad, MPM falls into the ‘meshless’ category of methods, as the connectivity between material points is not fixed and changes dynamically during the simulation. While the basic idea of MPM has been retained, variants exist which exhibit more accurate integration than the original formulation at the expense of more computation such as the generalized interpolation material point (GIMP) method (Bardenhagen & Kober Reference Bardenhagen and Kober2004), the convected particle domain interpolation (CPDI) method (Sadeghirad, Brannon & Burghardt Reference Sadeghirad, Brannon and Burghardt2011) and its improved variant CPDI2 (Sadeghirad, Brannon & Guilkey Reference Sadeghirad, Brannon and Guilkey2013). Alternatively, one can modify the background mesh as in dual-domain MPM from Zhang, Ma & Giguere (Reference Zhang, Ma and Giguere2011), which can suppress grid-crossing errors.

The natural ability of MPM to allow large deformations while retaining the ability of FEM to correctly handle elasto-static zones makes it attractive for modelling materials where both behaviours are present, such as in granular flow. Recent work from Abe, Soga & Bandara (Reference Abe, Soga and Bandara2013) and Bandara & Soga (Reference Bandara and Soga2015) shows that a coupled MPM works well for saturated soil problems involving large deformations, however, other models are needed for dry granular materials when a gas phase is possible. In Andersen & Andersen (Reference Andersen and Andersen2009), simulation of a collapsing soil column is done with MPM, however, no mention is made of possible tensile stress states. Previous studies using MPM for studying granular flow during silo drainage (Więckowski Reference Więckowski2003, Reference Więckowski2004; Więckowski & Kowalska-Kubsik Reference Więckowski and Kowalska-Kubsik2011) have prevented the material from entering a tensile stress state by assuming all extension can be reconciled as plastic dilatation (with viscous regularization) per soil mechanics models (Schofield & Wroth Reference Schofield and Wroth1968). However, Reynolds plastic dilatation of this type is of a different fundamental nature from gas-like disconnection of grains, where the ability to support stress is essentially lost until the material collapses back to a dense state. Our goal in this work is to produce a well-posed continuum model and corresponding simulation method that combines a realistic rate-dependent granular rheology with a disconnected state representation, permitting us to simulate in one setting a wide range of granular behaviours spanning several ‘phases’: solid-like static behaviour, plastic flow (up to very large strains), as well as separation and reconsolidation of the material. Accounting for all these behaviours produces a robust method able to handle a large range of engineering problems, which we demonstrate through a variety of tests and examples.

2. Theory

We use the standard notation for continuum mechanics defined in Gurtin, Fried & Anand (Reference Gurtin, Fried and Anand2010), with the exception that the Cauchy stress is denoted by ${\bf\sigma}$ and the spatial gradient and spatial divergence operators are given by $\boldsymbol{{\rm\nabla}}$ and $\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }$ , respectively. Material time derivatives are represented by an overdot and constitutive functions are sometimes clarified with a $\hat{\,}$ . The trace of a tensor $\unicode[STIX]{x1D63C}$ is given by $\text{tr}\,\unicode[STIX]{x1D63C}$ , the transpose by $\unicode[STIX]{x1D63C}^{\text{T}}$ , and the deviator by $\unicode[STIX]{x1D63C}_{0}=\unicode[STIX]{x1D63C}-((\text{tr}\,\unicode[STIX]{x1D63C})\unicode[STIX]{x1D644})/3$ (when in three dimensions).

The equation for momentum balance is

(2.1) $$\begin{eqnarray}\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }{\bf\sigma}+{\it\rho}\boldsymbol{b}={\it\rho}\dot{\boldsymbol{v}},\end{eqnarray}$$

where ${\it\rho}$ is the density, $\boldsymbol{b}$ is the specific body force, and $\dot{\boldsymbol{v}}$ is the material rate of change of the velocity. We define the spatial velocity gradient as

(2.2) $$\begin{eqnarray}\unicode[STIX]{x1D647}=\boldsymbol{{\rm\nabla}}\boldsymbol{v},\end{eqnarray}$$

which can be decomposed into the spin tensor $\unicode[STIX]{x1D652}$ and strain-rate tensor $\unicode[STIX]{x1D63F}$ given by

(2.3a,b ) $$\begin{eqnarray}\unicode[STIX]{x1D652}={\textstyle \frac{1}{2}}(\unicode[STIX]{x1D647}-\unicode[STIX]{x1D647}^{\text{T}}),\quad \unicode[STIX]{x1D63F}={\textstyle \frac{1}{2}}(\unicode[STIX]{x1D647}+\unicode[STIX]{x1D647}^{\text{T}}),\end{eqnarray}$$

The local form of mass balance can be written in terms of the density as

(2.4) $$\begin{eqnarray}\dot{{\it\rho}}=-{\it\rho}\text{tr}\,\unicode[STIX]{x1D647}.\end{eqnarray}$$

When the material is dense, our constitutive model resembles that of a Maxwell model whose damper obeys a Bingham-like rheology. That is, we suppose a stiff elastic mechanism in series with a plastic flow mechanism, which permits us to maintain a well-defined stress even in subyield zones of material, without plastic flow. To this aim, we adopt a rate-based, hypoelastic–plastic approach assuming an additive decomposition of the velocity gradient into elastic and plastic parts, $\unicode[STIX]{x1D647}=\unicode[STIX]{x1D647}^{e}+\unicode[STIX]{x1D647}^{p}$ . The elastic and plastic parts can each be decomposed into their own spin and strain-rate tensors, denoted by $\unicode[STIX]{x1D63F}^{e},\unicode[STIX]{x1D63F}^{\,p}$ , and $\unicode[STIX]{x1D652}^{e},\unicode[STIX]{x1D652}^{p}$ , respectively. Although hypoelastic models do not explicitly utilize an elastic strain-energy potential, they more easily permit modelling large inhomogeneous plastic deformations, since reliance on the deformation gradient tensor is avoided. Deleterious artefacts of hypoelasticity are minimized when elastic stretches are small or, more broadly, when only the eigenvalues of the elastic part of the reference stretch change. These criteria are easily met in a dense granular flow of stiff grains.

We will adopt plastic flow relation of the form

(2.5) $$\begin{eqnarray}\unicode[STIX]{x1D647}^{p}=\unicode[STIX]{x1D63F}^{\,p}=\hat{\unicode[STIX]{x1D63F}}^{\,p}({\bf\sigma}).\end{eqnarray}$$

In the case of codirectionality and isochoric plastic deformation, we can write

(2.6) $$\begin{eqnarray}\hat{\unicode[STIX]{x1D63F}}^{p}({\bf\sigma})=\frac{1}{\sqrt{2}}\dot{\bar{{\it\gamma}}}^{p}({\bf\sigma})\frac{{\bf\sigma}_{0}}{\Vert {\bf\sigma}_{0}\Vert },\end{eqnarray}$$

where $\dot{\bar{{\it\gamma}}}^{p}$ is the equivalent plastic shear strain rate. Reasonable codirectionality (with rotations of the principal axes only a handful of degrees apart) between $\unicode[STIX]{x1D63F}^{\,p}$ and ${\bf\sigma}_{0}$ in dense granular flow of stiff grains has been observed in DEM simulations by Silbert et al. (Reference Silbert, Ertaş, Grest, Halsey and Levine2001), da Cruz et al. (Reference da Cruz, Emam, Prochnow, Roux and Chevoir2005) and Koval et al. (Reference Koval, Roux, Corfdir and Chevoir2009). The isochoric assumption assumes the critical state of constant-volume flow is rapidly approached given the high strains and rates we will be modelling. Using this simplification, we can reduce our problem to that of determining $\dot{\bar{{\it\gamma}}}^{p}$ given a stress state.

For pressure, we use an equation of state given by

(2.7) $$\begin{eqnarray}p({\it\rho})=\left\{\begin{array}{@{}ll@{}}0\quad & \text{if}~{\it\rho}<{\it\rho}_{c}\\ \displaystyle \frac{K_{c}}{{\it\rho}}({\it\rho}-{\it\rho}_{c})\quad & \text{if}~{\it\rho}\geqslant {\it\rho}_{c}\end{array}\right.\end{eqnarray}$$

for $K_{c}$ a compressive bulk modulus. The critical density ${\it\rho}_{c}$ is the density of the material when grains are beginning to lose contact (when the pressure has just become zero); below ${\it\rho}_{c}$ we model the material to be disconnected. The stress-free approximation when the density is below ${\it\rho}_{c}$ can be analysed for accuracy in the context of kinetic theory. For details, please see appendix A.

Since we will use a hypoelastic–plastic model for the dense flowing phase ( ${\it\rho}>{\it\rho}_{c}$ ), we must choose an objective rate for the stress evolution equation, and the resulting form must be consistent with our equation of state for the pressure, equation (2.7). We use the Jaumann rate here, which is defined by

(2.8) $$\begin{eqnarray}\mathop{{\bf\sigma}}^{\triangle }\equiv \dot{{\bf\sigma}}-\unicode[STIX]{x1D652}\boldsymbol{\cdot }{\bf\sigma}+{\bf\sigma}\boldsymbol{\cdot }\unicode[STIX]{x1D652}.\end{eqnarray}$$

Since we will be implementing an explicit scheme where time steps are sufficiently small, the numerical integration of the Jaumann rate maintains objectivity without the need for enhanced integration procedures such as in Weber et al. (Reference Weber, Lush, Zavaliangos and Anand1990) and Rashid (Reference Rashid1993). The constitutive relation is then written as a relation between the elastic strain rate, $\unicode[STIX]{x1D63F}^{e}=\unicode[STIX]{x1D63F}-\unicode[STIX]{x1D63F}^{\,p}$ , and the stress rate, i.e.

(2.9) $$\begin{eqnarray}\mathop{{\bf\sigma}}^{\triangle }=\mathbb{C}\boldsymbol{ : }\unicode[STIX]{x1D63F}^{e}\equiv \frac{E}{1+{\it\nu}}\left[(\unicode[STIX]{x1D63F}-\unicode[STIX]{x1D63F}^{\,p})+\frac{{\it\nu}}{1-2{\it\nu}}\text{tr}\,(\unicode[STIX]{x1D63F}-\unicode[STIX]{x1D63F}^{\,p})\unicode[STIX]{x1D644}\right]\end{eqnarray}$$

where $\mathbb{C}$ is the fourth-order elastic stiffness tensor, which depends on Poisson’s ratio ${\it\nu}$ and Young’s modulus $E=3K_{c}(1-2{\it\nu})$ . More explanation on the connection between (2.7) and (2.9) is in appendix A.

We define the Drucker–Prager friction coefficient ${\it\mu}$ as $\bar{{\it\tau}}/p$ , where in three dimensions, the quantities $\bar{{\it\tau}}$ and $p$ are defined from the stress tensor via

(2.10a,b ) $$\begin{eqnarray}\bar{{\it\tau}}=\sqrt{{\textstyle \frac{1}{2}}({\bf\sigma}_{0}\boldsymbol{ : }{\bf\sigma}_{0})},\quad p=-{\textstyle \frac{1}{3}}\text{tr}\,{\bf\sigma},\end{eqnarray}$$

and $\boldsymbol{ : }$ denotes the tensorial contraction (defined for tensors $\unicode[STIX]{x1D63C}$ and $\unicode[STIX]{x1D63D}$ as $\unicode[STIX]{x1D63C}\boldsymbol{ : }\unicode[STIX]{x1D63D}=\sum _{i}\sum _{j}\unicode[STIX]{x1D608}_{ij}\unicode[STIX]{x1D609}_{ij}$ ). Although the model we are using is a fully three-dimensional formulation, our examples are done in plane strain (that is, $\unicode[STIX]{x1D63F}_{zz}=0$ but ${\bf\sigma}_{zz}\neq 0$ ).

The local model presented in Jop et al. (Reference Jop, Forterre and Pouliquen2006), which has been validated experimentally in that work and numerically in da Cruz et al. (Reference da Cruz, Emam, Prochnow, Roux and Chevoir2005), relates the inertial number $I$ given by

(2.11) $$\begin{eqnarray}I=\dot{\bar{{\it\gamma}}}^{p}\frac{\sqrt{d^{2}{\it\rho}_{s}}}{\sqrt{p}}\end{eqnarray}$$

to the friction coefficient ${\it\mu}$ through the equation

(2.12a,b ) $$\begin{eqnarray}{\it\mu}={\it\mu}(I)={\it\mu}_{s}+\frac{{\it\mu}_{2}-{\it\mu}_{s}}{I_{0}/I+1}\quad \text{if}~I>0,\quad \text{and}\quad {\it\mu}\leqslant {\it\mu}_{s}\quad \text{if}~I=0.\end{eqnarray}$$

Here $I_{0}$ is a material constant, ${\it\rho}_{s}$ is the density of solid grains, and $d$ is the mean particle size (which serves only to scale the rate sensitivity, i.e. it is not an intrinsic length scale in the model).

Although the simplifications made in (2.7) and (2.6) neglect flow-induced dilatation effects in dense shear flow, the above works have also found a ${\it\Phi}(I)$ relation, which relates the packing fraction to the inertial number in steady flows. More discussion of this, and how the ${\it\Phi}(I)$ relation can be used post-facto to correct the density field prediction in our computed results, can be found in appendix A.

Since ${\it\mu}$ is related to the stress through $\bar{{\it\tau}}$ and $p$ , and $I$ is related to $\dot{\bar{{\it\gamma}}}^{p}$ , the above is a closed rheological relation. We can rewrite this into a rate-dependent form for the equivalent shear stress, given by

(2.13a,b ) $$\begin{eqnarray}\bar{{\it\tau}}=\bar{{\it\tau}}(p,\dot{\bar{{\it\gamma}}}^{p})=p\left({\it\mu}_{s}+\frac{{\it\mu}_{2}-{\it\mu}_{s}}{{\it\xi}\sqrt{p}/\dot{\bar{{\it\gamma}}}^{p}+1}\right)\quad \text{if}~\dot{\bar{{\it\gamma}}}^{p}>0,\quad \text{and}\quad \bar{{\it\tau}}\leqslant p{\it\mu}_{s}\quad \text{if}~\dot{\bar{{\it\gamma}}}^{p}=0\end{eqnarray}$$

where ${\it\xi}=I_{0}/\sqrt{d^{2}{\it\rho}_{s}}$ . We observe that ${\it\mu}_{s}$ is a static friction coefficient; no plastic flow occurs when ${\it\mu}<{\it\mu}_{s}$ . Our plasticity model is defined solely through (2.6) and (2.12a,b ); plastic transients are neglected by assuming the shear required to reach a ‘critical state’ is negligible compared to the expected deformation levels.

Combining the behaviour in the solid, flowing and gas phases, if the material is below the critical density, the material is disconnected and treated as stress-free. Otherwise, the material is dense and has a positive pressure, so we are able to use the elasto-viscoplastic relation. Altogether, we write

(2.14) $$\begin{eqnarray}\displaystyle & {\bf\sigma}=\mathbf{0}\quad \text{if}~{\it\rho}<{\it\rho}_{c} & \displaystyle\end{eqnarray}$$
(2.15) $$\begin{eqnarray}\displaystyle & \mathop{{\bf\sigma}}^{\triangle }=\mathbb{C}\boldsymbol{ : }(\unicode[STIX]{x1D63F}-\hat{\unicode[STIX]{x1D63F}}^{p}({\bf\sigma}))\quad \text{otherwise}, & \displaystyle\end{eqnarray}$$
where $\hat{\unicode[STIX]{x1D63F}}^{p}$ is obtained from (2.6) and (2.13). Since $\hat{\unicode[STIX]{x1D63F}}^{p}({\bf\sigma})$ vanishes when ${\it\mu}<{\it\mu}_{s}$ , giving an elastic state without plastic flow, we recognize the above rule as essentially a three-phase constitutive relation that can transition between elastic solid-like behaviour, viscoplastic fluid-like flow, and dilute disconnected granular behaviour.

Figure 1. (a) The steps needed to perform an explicit MPM step. Reading from left to right shows the order in which properties are modified within a time step. Material point properties are drawn with a circle, while nodal properties are drawn with squares. The diagram above the timeline shows the collective behaviour of many material points and nodes, and is synchronized with the lower part of the diagram. Solid lines are projections using either the shape functions or gradient of shape functions, dashed lines are update operations, and dotted lines are a combination of projection and update. Note that multiple sources are needed for the calculation of some quantities. The thick dashed lines are the components of the stress update algorithm (diagram inspired by one in Buzzi, Pedroso & Giacomini (Reference Buzzi, Pedroso and Giacomini2008)). (b) The stress update algorithm. All operations take place on the material point level. Subscripts have been dropped.

3. Algorithm

3.1. Material point method implementation

Numerically implementing our proposed system requires a robust framework. We propose to use MPM, a topic of active research, which has many variants. The basic idea of MPM is to store the mechanical information, such as stress, momentum and mass, on a set of Lagrangian material points. As visualized in figure 1(a), a few steps take place during a time step, with the end goal of updating the positions of the points and the quantities stored on them. First, a background finite-element mesh is introduced (we choose a simple Cartesian mesh), and the mechanical quantities stored on the points are projected onto the nodes of the mesh. The mesh now has the needed information to conduct a single finite-element update step; the constitutive relation and the equations of motion are used to move the mesh itself and update the quantities stored on the nodes. The solution from the finite-element mesh is projected back onto the material points, which updates their internal state and moves them. Once the material points have been updated and moved, the distorted finite-element mesh is destroyed; in the next step, a new Cartesian mesh is introduced. In this manner, mesh entanglement issues are avoided. In MPM, the material points are the persistent Lagrangian domain of the scheme and the mesh appears mid-step, temporarily, only to organize the update of the points’ motion and state.

The diagram of information flow for our algorithm is shown in figure 1. Typically, the particle volume does not directly enter the stress update step, however, this is a key feature of the current work. We use the same notation as in Bardenhagen & Kober (Reference Bardenhagen and Kober2004). In our case, we use scaled delta functions for the particle characteristic functions, as in the original MPM formulation from Sulsky et al. (Reference Sulsky, Chen and Schreyer1994). Although more accurate schemes exist, they usually involve spreading the influence of the material point (GIMP, DDMP) or rely on the deformation gradient tensor at a material point (CPDI).

First-order elements are used for the background mesh, as second-order elements have issues unique to MPM, as noted in Andersen & Andersen (Reference Andersen and Andersen2010). For a regular Cartesian mesh with spacing ${\rm\Delta}x$ , the shape functions and gradients in one dimension for node $i$ are given by

(3.1) $$\begin{eqnarray}\displaystyle & \displaystyle S_{i}(x)=\max \left[0,\left(1-\frac{1}{{\rm\Delta}x}|x_{i}-x|\right)\right] & \displaystyle\end{eqnarray}$$
(3.2) $$\begin{eqnarray}\displaystyle & \displaystyle \boldsymbol{{\rm\nabla}}S_{i}(x)=\left\{\begin{array}{@{}ll@{}}\displaystyle \frac{1}{{\rm\Delta}x}\text{sgn}(x_{i}-x)\quad & \text{if }|x_{i}-x|\leqslant {\rm\Delta}x\\ 0\quad & \text{otherwise}\end{array}\right. & \displaystyle\end{eqnarray}$$
respectively, where $x_{i}$ is the position of the node. Products of these functions can be used to generate the shape functions for higher dimensions. When combined with the scaled delta functions, the one-dimensional mapping functions and gradient mapping functions for material point $p$ are given simply by
(3.3a,b ) $$\begin{eqnarray}S_{ip}=S_{i}(x_{p}),\quad \boldsymbol{{\rm\nabla}}S_{ip}=\boldsymbol{{\rm\nabla}}S_{i}(x_{p}),\end{eqnarray}$$

where $x_{p}$ is the position of the material point.

At the beginning of an MPM step, we produce the nodal quantities from material point quantities via the sums

(3.4ad ) $$\begin{eqnarray}m_{i}^{n}=\mathop{\sum }_{p}S_{ip}m_{p},\quad (m\boldsymbol{v})_{i}^{n}=\mathop{\sum }_{p}S_{ip}m_{p}\boldsymbol{v}_{p}^{n},\quad \boldsymbol{b}_{i}^{n}=\mathop{\sum }_{p}S_{ip}m_{p}\boldsymbol{b}_{p}^{n},\quad \boldsymbol{f}_{i}^{n}=\mathop{\sum }_{p}-v_{p}{\bf\sigma}_{p}^{n}\boldsymbol{\cdot }\boldsymbol{{\rm\nabla}}S_{ip},\end{eqnarray}$$

where $m_{p}$ is the (constant) particle mass, and $\boldsymbol{v}_{p}^{n}$ , $\boldsymbol{b}_{p}^{n}$ and ${\bf\sigma}_{p}^{n}$ are the particle velocity, specific body force and Cauchy stress, respectively, at the beginning of the time step. The nodal quantities, indexed by $i$ , are given in order as the mass, momentum, body force and internal forces at the beginning of the time step. The change in momentum on the nodes is then given by

(3.5) $$\begin{eqnarray}\dot{(m\boldsymbol{v})}_{i}^{n}=\boldsymbol{b}_{i}^{n}+\boldsymbol{f}_{i}^{n}.\end{eqnarray}$$

Using a forward Euler integration, we write the nodal momentum as

(3.6) $$\begin{eqnarray}(m\boldsymbol{v})_{i}^{n+1}=(m\boldsymbol{v})_{i}^{n}+{\rm\Delta}t\dot{(m\boldsymbol{v})}_{i}^{n}.\end{eqnarray}$$

Since the nodal mass remains constant within a time step, we can then write the nodal acceleration and velocity, respectively, as

(3.7a,b ) $$\begin{eqnarray}\dot{\boldsymbol{v}}_{i}^{n+1}=\frac{\dot{(m\boldsymbol{v})}_{i}^{n}}{m_{i}},\quad \boldsymbol{v}_{i}^{n+1}=\frac{(m\boldsymbol{v})_{i}^{n+1}}{m_{i}}.\end{eqnarray}$$

These nodal quantities are then mapped back onto the material points via the equations

(3.8ac ) $$\begin{eqnarray}\boldsymbol{v}_{p}^{n+1}=\boldsymbol{v}_{p}^{n}+{\rm\Delta}t\mathop{\sum }_{i}S_{ip}\dot{\boldsymbol{v}}_{i}^{n+1},\quad \unicode[STIX]{x1D647}_{p}^{n+1}=\mathop{\sum }_{i}\boldsymbol{v}_{i}^{n+1}\otimes \boldsymbol{{\rm\nabla}}S_{ip},\quad \boldsymbol{x}_{p}^{n+1}=\boldsymbol{x}_{p}^{n}+{\rm\Delta}t\mathop{\sum }_{i}S_{ip}\boldsymbol{v}_{i}^{n+1}.\end{eqnarray}$$

Although the sums in these equations are over all the nodes, in practice the particles only contribute to a very small subset of nodes and vice versa. With our implementation, each particle exists at most in one quadrilateral, so there are at most four non-zero values of $S_{ip}$ per particle.

We use the particle velocity gradient to update the particle stress through the constitutive update, which will be detailed in a later section. Others (Sadeghirad et al. Reference Sadeghirad, Brannon and Burghardt2011; Nair & Roy Reference Nair and Roy2012) have used the deformation gradient $\unicode[STIX]{x1D641}$ to update the particle stress, e.g. in a hyperelastic model, however, as stated before, we wish to avoid reliance on $\unicode[STIX]{x1D641}$ due to the large inhomogeneous deformations.

For constitutive purposes it is also important to track particle-level density, which we achieve by updating the local volume of each material point. For a constant velocity gradient $\unicode[STIX]{x1D647}$ , the analytical solution for (2.4) is given by ${\it\rho}(t)={\it\rho}_{0}\exp (-t\,\text{tr}\,\unicode[STIX]{x1D647})$ where ${\it\rho}_{0}={\it\rho}(0)$ is the initial density. Since the mass of a material point remains constant, the density ${\it\rho}_{p}$ is inversely proportional to $v_{p}$ , the volume of the material point. Substituting this result, and considering the velocity gradient to be a constant over one time step, we can obtain a rule for evolving the volume of a material point, which in turn gives the material point density:

(3.9) $$\begin{eqnarray}v_{p}^{n+1}=v_{p}^{n}\exp ({\rm\Delta}t\,\text{tr}\,\unicode[STIX]{x1D647}^{n}),\quad \Longrightarrow \quad {\it\rho}_{p}^{n+1}=\frac{m_{p}}{v_{p}^{n+1}}.\end{eqnarray}$$

3.2. Stress update

The last quantity that is updated during an MPM step is the stress, ${\bf\sigma}_{p}^{n+1}$ , which we calculate using (2.14) and (2.15), as discretized in terms of ${\it\rho}_{p}^{n+1}$ , $\unicode[STIX]{x1D647}_{p}^{n+1}$ and ${\bf\sigma}_{p}^{n}$ . For the rest of this section, we neglect the $p$ subscript for ease.

By (2.14), in the simplest case where ${\it\rho}^{n+1}$ is below a critical value ${\it\rho}_{c}$ , we set ${\bf\sigma}^{n+1}=\mathbf{0}$ . For all other cases, we proceed with an analogue of the elastic trial step commonly used in numerical plasticity. In this manner, we follow the method of Kamrin (Reference Kamrin2010), with modifications for using linear elasticity in hypoelastic–plastic form instead of the hyperelastic Jiang–Liu model (Jiang & Liu Reference Jiang and Liu2003). The ‘trial stress’ at a material point is calculated from

(3.10) $$\begin{eqnarray}{\bf\sigma}^{tr}={\bf\sigma}^{n}+{\rm\Delta}t(\mathbb{C}\boldsymbol{ : }\unicode[STIX]{x1D63F}^{n+1}+\unicode[STIX]{x1D652}^{n+1}\boldsymbol{\cdot }{\bf\sigma}^{n}-{\bf\sigma}^{n}\boldsymbol{\cdot }\unicode[STIX]{x1D652}^{n+1}).\end{eqnarray}$$

This allows us to resolve the other portion of the conditional in (2.14) in a simple manner. We first define ${\rm\Delta}p=p^{tr}-p^{n}$ . Expanding (3.10) and taking the trace yields ${\rm\Delta}p=-K{\rm\Delta}t\,\text{tr}\,\unicode[STIX]{x1D63F}$ , where $K\equiv E/(3(1-2{\it\nu}))$ is the bulk modulus. Upon examination of (2.4), we note that both $\dot{{\it\rho}}$ and ${\rm\Delta}p$ are proportional to $\text{tr}\,\unicode[STIX]{x1D647}$ , since $\text{tr}\,\unicode[STIX]{x1D647}=\text{tr}\,\unicode[STIX]{x1D63F}$ . Since the pressure at the critical density is zero, if the material is currently at the critical density, the pressure at the end of the trial step is ${\rm\Delta}p$ . Hence, if the trial pressure is negative, the density is decreasing through ${\it\rho}_{c}$ , so ${\bf\sigma}^{n+1}=\mathbf{0}$ by (2.14).

If the material point passes both checks, it is in the correct regime to use (2.15). Defining

(3.11ae ) $$\begin{eqnarray}S_{0}={\it\mu}_{s}p^{tr},\quad S_{2}={\it\mu}_{2}p^{tr},\quad {\it\alpha}={\it\xi}G{\rm\Delta}t\sqrt{p^{tr}},\quad B=S_{2}+\bar{{\it\tau}}^{tr}+{\it\alpha},\quad H=S_{2}\bar{{\it\tau}}^{tr}+S_{0}{\it\alpha},\end{eqnarray}$$

the material point is in the elastic regime (no plastic flow) if $\bar{{\it\tau}}^{tr}\leqslant S_{0}$ . In this case we set ${\bf\sigma}^{n+1}={\bf\sigma}^{tr}$ .

If $\bar{{\it\tau}}^{tr}>S_{0}$ , then plastic flow must occur and we must determine the value $\dot{\bar{{\it\gamma}}}^{p}$ . For stability reasons we utilize an implicit constitutive update, which means the equivalent plastic shear flow rate $\dot{\bar{{\it\gamma}}}^{p}$ is consistent with the value of ${\it\mu}$ at the end of the step, i.e.  ${\it\mu}(I)={\it\mu}^{n+1}$ , where $I={\it\xi}^{-1}\dot{\bar{{\it\gamma}}}^{p}/\sqrt{p^{n+1}}$ . Since we assume plastic incompressibility, we know that the trial pressure $p^{tr}$ , calculated assuming the entire deformation were elastic, is the final pressure $p^{n+1}$ . To find the relation for the equivalent shear stress $\bar{{\it\tau}}^{n+1}$ , we first note that we can write the stress as

(3.12) $$\begin{eqnarray}{\bf\sigma}^{n+1}={\bf\sigma}^{tr}-{\rm\Delta}t\mathbb{C}\boldsymbol{ : }\unicode[STIX]{x1D63F}^{\,p}.\end{eqnarray}$$

Define the shear modulus $G$ as $E/(2(1+{\it\nu}))$ . Noting that $\mathbb{C}\boldsymbol{ : }\unicode[STIX]{x1D63F}^{\,p}=2G\unicode[STIX]{x1D63F}^{\,p}$ , and that ${\bf\sigma}_{0}^{tr}$ and ${\bf\sigma}_{0}^{n+1}$ are codirectional, we can write the equation for $\bar{{\it\tau}}^{n+1}$ as

(3.13) $$\begin{eqnarray}\bar{{\it\tau}}^{n+1}=\bar{{\it\tau}}^{tr}-G{\rm\Delta}t\dot{\bar{{\it\gamma}}}^{p}.\end{eqnarray}$$

We can rewrite (2.13) simply as the quadratic

(3.14) $$\begin{eqnarray}(\bar{{\it\tau}}^{n+1})^{2}-B\bar{{\it\tau}}^{n+1}+H=0,\end{eqnarray}$$

where $\bar{{\it\tau}}^{n+1}$ is the only unknown. Solving for $\bar{{\it\tau}}^{n+1}$ gives us two roots; only the negative root has physical meaning, as the positive root implies a negative equivalent plastic shear strain rate.

There are some numerical subtleties in carrying out the described update of $\bar{{\it\tau}}$ and the subsequent update of ${\bf\sigma}$ . The numerical stiffness of (3.14) near ${\it\mu}={\it\mu}_{2}$ is high. Moreover, in the flowing state, the plastic strain-rate tensor $\unicode[STIX]{x1D63F}^{\,p}$ may be very close to the total strain-rate tensor $\unicode[STIX]{x1D63F}$ . Hence, the subtraction of the two tensors in (3.12) to obtain ${\bf\sigma}^{n+1}$ may be inaccurate due to the loss of many significant digits.

We remedy these issues as follows. Noting that $B$ is always positive, it is numerically advantageous to simplify the output of the quadratic equation when we solve for $\bar{{\it\tau}}^{n+1}$ . Specifically, we use

(3.15) $$\begin{eqnarray}\bar{{\it\tau}}^{n+1}=\frac{2H}{B+\sqrt{B^{2}-4H}}.\end{eqnarray}$$

This avoids the possible cancellation error of $B$ and $\sqrt{B^{2}-4H}$ . Although the discriminant may still prove to be a source of error, the numerical fix in that case is not quite as straightforward (Kahan Reference Kahan2004). Regarding ${\bf\sigma}^{n+1}$ , we simply use the answer obtained from $\bar{{\it\tau}}^{n+1}$ to scale the deviator of the trial stress. That is, we compute the particle stress at the end of the step as

(3.16) $$\begin{eqnarray}{\bf\sigma}^{n+1}=\frac{\bar{{\it\tau}}^{n+1}}{\bar{{\it\tau}}^{tr}}{\bf\sigma}_{0}^{tr}-p^{tr}\unicode[STIX]{x1D644}.\end{eqnarray}$$

In practice we have found that these two fixes significantly improved the quality and stability of the simulation compared to the naive implementation. The entire stress update procedure is shown in figure 1(b). This stress update procedure is particularly amenable to parallel computation, as each particle can be updated independently with no synchronization required. We took advantage of this in our implementation. Verification of our implementation of the numerical scheme is carried out in appendix B.

4. Results

Before showing a number of tests and demonstrations, we provide a brief discussion on how certain quantities are visualized. There are several ways to plot stress-related variables in MPM. High-frequency errors are seen in plotting raw material point stress data, and may lead to an anomaly in MPM termed kinematic locking by Mast et al. (Reference Mast, Mackenzie-Helnwein, Arduino, Miller and Shin2012). Techniques to remove this behaviour are developed in the same work, however, they do not consistently resolve the issue, and we do not implement those methods here. Instead, to plot what stress the grid interprets when solving the equations of motion we follow the recommendations in Andersen & Andersen (Reference Andersen and Andersen2013), who present a more thorough discussion on post-processing, and utilize a method which maps material point values to nodes, and then projects them back onto the material points for plotting purposes. Briefly, we use the mapping functions $S_{ip}$ and the material point mass to construct a mass-weighted nodal stress via

(4.1) $$\begin{eqnarray}(m{\bf\sigma})_{i}=\mathop{\sum }_{p}S_{ip}m_{p}{\bf\sigma}_{p}.\end{eqnarray}$$

The stress $\tilde{{\bf\sigma}}$ is then computed at the nodes as

(4.2) $$\begin{eqnarray}\tilde{{\bf\sigma}}_{i}=\frac{(m{\bf\sigma})_{i}}{m_{i}},\end{eqnarray}$$

which is projected back onto the material points using

(4.3) $$\begin{eqnarray}\tilde{{\bf\sigma}}_{p}=\mathop{\sum }_{i}S_{ip}\tilde{{\bf\sigma}}_{i}.\end{eqnarray}$$

We reiterate that this procedure is purely a post-processing operation for visualization purposes. This is only applied to stress-related variables, such as the pressure, and not to deformation-related variables such as equivalent plastic shear strain rate.

Several geometries are simulated using our method: granular column collapse, drainage of a silo, flow down an inclined plane, and the impact of a granular slug. The column-collapse problem has been studied extensively in the literature and provides a good benchmark against both experiments and other numerical methods. The silo drainage problem has been studied experimentally and with the DEM (and recently with the Gerris Navier–Stokes solver), but is typically outside the range of most continuum methods. Others have used MPM (Więckowski Reference Więckowski2003) in this context with different material models, however, we will provide a more quantitative test with the Beverloo correlation. Flow down an inclined plane is a good test for the verification of the ${\it\mu}(I)$ rheology in the code, as we can analytically determine the flow profile as well as average flow rate as a function of tilt angle. Finally, the impact of the granular slug, while non-quantitative, demonstrates the ability of the method to model multiple phases of granular flow simultaneously with physically realistic results.

Although the initial configurations have different geometries, the material points all begin from a stress-free state (that is, ${\bf\sigma}_{p}^{n=0}=\mathbf{0}$ ). We also apply gravity in a consistent manner across all simulations (excepting the granular slug example); gravity is ramped linearly from zero to its final value of $9.8~\text{m}~\text{s}^{-2}$ at 0.1 s, and then held at this constant value for the rest of the simulation. When we describe boundary conditions, fully rough walls are those in which a particle at the surface can neither move laterally along the boundary nor go through the boundary. In MPM, this is implemented as fixing all components of momentum along the boundary nodes to zero. Momentum updates are also suppressed on these nodes, and the effect of both operations is that the mesh displacement at these nodes is zero. Frictionless walls do not allow particles to go through a boundary, but do allow unrestrained motion laterally along the boundary. Here, we set the component of momentum perpendicular to the boundary to zero (and suppress the momentum update of this component as well), but we do not modify the parallel component of momentum. For our simulations, the symmetric boundary condition reduces to the same set of conditions as the frictionless wall. Periodic boundary conditions are implemented by mapping two distinct physical nodes (slave nodes) to the same logical node (master node), although the set of shape functions and shape function gradients remain distinct due to different physical positions. Thus, accessing or modifying either of the slave nodes will access or modify data on the same master node (again, excepting the shape functions and shape function gradients). This gives the slave nodes the same state as each other (due to the shared underlying master node) and automatically transfers information across the boundary. The modulo operator is applied to the material point position to wrap material points around the domain (i.e. materials points which leave one side of the periodic boundary will re-emerge on the other size).

The values of ${\it\nu}$ , ${\it\xi}$ , ${\it\mu}_{s}$ and ${\it\mu}_{2}$ were kept constant for all the simulations and given by the values in table 1. The plastic flow parameters correspond approximately to the glass bead parameters in Jop et al. (Reference Jop, Forterre and Pouliquen2006). The solid grain density throughout is set to ${\it\rho}_{s}=2450~\text{kg}~\text{m}^{-3}$ , which is a typical value for glass. In line with three-dimensional bead packings, we assume the material has a uniform initial packing fraction of ${\it\Phi}_{0}\approx 60\,\%$ , implying the initial density is ${\it\Phi}_{0}{\it\rho}_{s}={\it\rho}_{c}=1500~\text{kg}~\text{m}^{-3}$ . The specific value chosen for the critical packing fraction ${\it\Phi}_{c}={\it\rho}_{c}/{\it\rho}_{s}$ does not affect the results shown within a reasonable range for packing fraction (within a few per cent). The granular slug starts with a slightly lower density of $1200~\text{kg}~\text{m}^{-3}$ at a packing fraction of ${\it\Phi}\approx 49\,\%$ , however, the critical density remains the same as in the other simulations. Additional simulation parameters are presented in table 2.

Table 1. Common material parameters.

Table 2. Simulation parameters.

Figure 2. Column collapse: All particles shown are the material point markers (not grains). The half-height $w$ of each column is 20 cm, while the heights are 40, 20 and 10 cm from left to right. The resultant heaps follow the correct trend of higher aspect ratios leading to flatter heaps, and the repose angle is less than the value implied by the static friction coefficient. (a) Shows the equivalent plastic shear rate as the simulation progresses, while (b) shows the pressure distribution at the end of the simulation.

4.1. Column collapse

We first tested our method on the problem of a granular column collapsing into a heap. Due to the static yield criterion, the material must settle at or below the maximum repose angle of $\arctan ({\it\mu}_{s})$ . In our case, this is approximately $20.9^{\circ }$ . Columns with a larger aspect ratio of height to width will tend to flatten out more due to macro-inertial effects, which has been observed in discrete-element simulations by Lacaze & Kerswell (Reference Lacaze and Kerswell2009) and experimentally by Lube et al. (Reference Lube, Huppert, Sparks and Hallworth2004). This test is important as it indicates the dense ${\it\mu}(I)$ portion of the code is behaving as expected, and indeed we replicate the correct trend, as shown in figure 2. Consistent with other literature on the step collapse, we define the aspect ratio $a$ as the height over the half-width of the heap. The half-width is held constant at 0.20 m (only the right half of the symmetric problem is computed and shown). The bottom boundary condition is a fully rough surface, while the symmetric boundary on the left side of the figure allows particles to slide along the vertical axis freely but prevents motion across the boundary. The right ‘lip’ is also a frictionless wall. The variable plotted is $\dot{\bar{{\it\gamma}}}^{p}$ . At 0.5 s, the material has deformed significantly, as indicated in the second row. At 2.0 s, the heaps have largely reached their static configurations, indicated by the small strain rates; note that in all cases the repose angle is less than or equal to $\arctan ({\it\mu}_{s})$ . The two larger column-collapse simulations used a mesh size ${\rm\Delta}x$ of 0.0125 m, while the smallest used a mesh size ${\rm\Delta}x$ of 0.00625 m; the time step ${\rm\Delta}t$ of 3 × 10−6 s remained unchanged as it is stable for both mesh sizes. The elements are square, so ${\rm\Delta}x={\rm\Delta}y$ . We used 16 material points per occupied element for the initial distribution. For all the other simulations in this paper, we began with four material points per occupied element.

Most of the heap becomes static in a short time, however, in the true continuum limit, it can take an unboundedly long time for the material at the free surface to stop as the surface angle approaches $\arctan ({\it\mu}_{s})$ , due to the ${\it\mu}(I)$ rate-sensitivity function. The finite number of material points may allow it to reach the angle at a finite time, but even when the displacements appear to be small we may still observe a thin, slow-moving layer of particles at the free surface.

Figure 3. The non-dimensional run-out distance as a function of aspect ratio is plotted. Consistent with other literature, two regimes are observed. Comparisons to other studies, both experimental and numerical, are presented in table 3.

The fourth row of figure 2 shows the pressure distribution in each of the heaps at 2.0 s. Although Geng et al. (Reference Geng, Longhi, Behringer and Howell2001) show the pressure distribution depends on the preparation method, we see that using this particular numerical protocol the pressure dip found experimentally in Brockbank, Huntley & Ball (Reference Brockbank, Huntley and Ball1997) is replicated with MPM. The aforementioned procedure was used to plot the pressure, and simply using the material point values ‘as is’ results in significantly noisier data.

The simulations took approximately 20–30 min each on an Intel i5-4200U using four threads, taking more time for the larger heap and less for the smaller, due to the varying number of material points. We ran the simulations to 5 s for each heap, but found only 2 s were necessary before the simulation became static almost everywhere.

Additional tests were performed to compare the aspect ratio against the run-out length, which is the half-width of the final configuration minus the half-width of the initial configuration. This quantity is non-dimensionalized by the initial half-width, and the results are plotted in figure 3. Comparisons to other work in column collapse are shown in table 3. We reiterate that our simulations assume a three-dimensional material in plane strain, rather than a native two-dimensional material as is used in some of the existing numerical work. Although the role of the friction angle is debated, we are encouraged that the results from Staron & Hinch (Reference Staron and Hinch2005) (obtained using two-dimensional DEM) are similar, as the internal friction angle used in those simulations is nearly identical.

Table 3. Comparison of numerical and experimental run-out scalings to the current work (similar to that displayed in Mast et al. (Reference Mast, Arduino, Mackenzie-Helnwein and Miller2015)). We note that our MPM code matches well with data from Staron & Hinch (Reference Staron and Hinch2005), which used a similar internal friction angle.

4.2. Silo

Next we conducted simulations of silo discharge. Silos are interesting as they show the ability of the material to disconnect (near the free-fall arch). The Beverloo correlation, found in Beverloo, Leniger & van de Velde (Reference Beverloo, Leniger and van de Velde1961), is an empirical rule for relating mass flow rate to the orifice size. The flow rate is independent of the filling height (as long the geometry is large enough compared to the orifice size, see Nedderman (Reference Nedderman1992)), which is in stark contrast to Newtonian fluids. The Beverloo correlation in plane strain is given by

(4.4) $$\begin{eqnarray}Q=C{\it\rho}\sqrt{g}(D-kd)^{3/2},\end{eqnarray}$$

where $Q$ is the mass flow rate, ${\it\rho}$ is the bulk density, $d$ is the grain diameter and $D=2r$ is the diameter of the orifice. The parameters $C$ and $k$ are both geometry- and material-dependent.

Figure 4. Parameters for the silo simulations are given in table 2. The silos initially begin filled to a height of 1.0 m, and the base has a width of 1.0 m. Due to symmetry we only draw half of the geometry.

For our silo simulations, the width of the silo is 1 m and the height is 1 m (to keep the units consistent, the thickness is also taken to be 1 m). The bottom boundary is fully rough, while the sides are frictionless walls, drawn on the right side of each image. The symmetry boundary condition is represented by a dashed line on the left side of each image. We took the orifice size as the distance from the first to last vertically unrestrained node along the bottom left boundary. Although we only simulated half of the silo due to symmetry, we have already taken this into account when presenting the mass and mass flow rate results.

Figure 5. (a) The mass remaining in the silo for a few representative hole sizes, $M(t)$ . Markers are drawn more sparsely than the actual sampling rate. We label the region where the mass remaining in the silo is between 1200 and 900 kg as the steady flow region and we average only data from this region when calculating the flow rate. (b) The steady-state mass flow rate ${\dot{M}}_{ss}(D)$ is plotted against the hole size. $Q_{MPM}^{fit}$ is a best-fit function of the Beverloo form $C_{MPM}{\it\rho}\sqrt{g}D^{3/2}$ , where $C_{MPM}=1.42$ .

We plot a few representative samples of silo flow in figure 4. At 0 s, all of the silos are in the same state and are filled to the same height, however, at 2 s we can already see significant differences in the flow for each orifice size. At 5 s, the two largest orifice sizes have nearly finished draining and static heaps are forming, while the smallest orifice size still has over half of its material remaining.

Additional simulations were carried out to create a set of data for all orifice diameters from 6 to 20 cm in 2 cm increments. We looked at each output frame of data, occurring every 1∕60 s, and summed the mass of material left in the silo, which we then used to estimate the flow rate during steady flow. A subset of these results is shown in figure 5(a). We estimated the steady flow region to occur when the mass remaining in the silo was between 1200 and 900 kg, and performed a linear regression on the mass as a function of time over this range of data; the slope is then the mass flow rate. The results of these calculations are shown in figure 5(b), and indeed follow Beverloo scaling. Fitting the data yields $Q_{MPM}^{fit}=1.42{\it\rho}\sqrt{g}D^{3/2}$ .

Allowing the power of $r$ to vary as well yields similar results, where the constant $C_{MPM}=1.31$ and the power on the orifice diameter is 1.47. More complex constitutive models are needed to determine the parameter $k$ , which arises from particle size effects; the current model uses $k=0$ , as expected for a local relation. It is a major future goal to implement the non-local rheology of Kamrin and co-workers (Kamrin & Koval Reference Kamrin and Koval2012; Henann & Kamrin Reference Henann and Kamrin2013; Kamrin & Henann Reference Kamrin and Henann2014) within our MPM framework to extract the full Beverloo correlation from a continuum model.

Although similar scaling is observed in other frameworks, such as the incompressible Navier–Stokes solver Gerris in Staron et al. (Reference Staron, Lagrée and Popinet2012, Reference Staron, Lagrée and Popinet2014), unlike that approach our material model simulates the inertial rheology with a definitive yield criterion and is not restricted to incompressible flow. As extensional disconnection is a small effect during a large portion of the silo flow, however, we find that our flow rates are very similar to those found using Gerris, offering an outside check on our method.

We simulated to a total of 40 s for each orifice size. Each simulation took between 2.5 and 8 h on an Intel i5-2500k using four threads. As particles leave the system, fewer computations must be done in subsequent steps. Due to this effect, faster flowing silos actually take significantly less computational time to simulate. Even accounting for these gains, the large number of particles and the relatively fine grid size require a large amount of time to process; use of an unstructured or refined grid would help decrease the computation time immensely.

4.3. Drainage and reconsolidation

The hourglass-like examples in this section highlight the capability of the scheme to model media that flow plastically, undergo granular phase change to a disconnected state, reconsolidate, and support stress again as an elasto-plastic body. Other continuum solvers would have difficulty simulating the entirety of this process, but this is tractable in our scheme.

Figure 6. Parameters for the hourglass simulations are given in table 2. The dashed boundary indicates the symmetry condition.

For both examples, the height from the base to the orifice is 0.5 m. The width of the orifice’s image on the $x$ -axis in both cases is 0.02 m. Since we are using a Cartesian grid, the sloped boundary condition is implemented by fixing a staircase pattern of nodes and applying frictionless conditions.

The initial width of the flat hourglass is 1.0 m, while the width of the sloped hourglass is 0.5 m. The fill height of the top hourglass is 0.25 m, and the fill height of the sloped hourglass is 0.25 m. The bottom boundary condition is a fully rough wall in both cases; a frictionless wall is present at a radius of 0.25 m in the sloped hourglass while no side wall is used in the flat hourglass.

The hourglasses were simulated to a total of 10 s each, although both cases are nearly at the final configuration by the 5 s mark. Figure 6 shows the results of each simulation. The top half of the table shows the hourglass with a flat divider at 0 s (a), 1 s (b), 2 s (c), and 5 s (d). In (e), we see the results from the sloped hourglass at the same times from left to right. As with the heaps, we see that the simulations settle on a repose angle less than or equal to $\arctan ({\it\mu}_{s})$ .

We can look at the state of the particles during the simulation to confirm that our algorithm is using the appropriate behaviour in the different regimes. In order to plot the state, we first calculate the density on the nodal level. To do this, we project the mass to the nodes as usual. However, we also assign a nodal volume, which is defined as the fraction of filled neighbouring elements times the volume of the Voronoi cell around the node (with a regular Cartesian grid, this volume is the same as the volume of each element, excepting those nodes on edges which have half the elemental volume and corners which have a quarter of the elemental volume). The nodal density is then defined as the nodal mass over the nodal volume. We then project this density back to the material points using the shape functions. This is identical to the method presented in Więckowski (Reference Więckowski2004), except we only do this in post-processing (the density during the simulation is calculated on the material points using the exponential map). Plotting this nodal-based density allows us to see the average collective behaviour of the elements, to represent what behaviour enters the stress divergence of the momentum update. The values below ${\it\rho}_{c}$ are in the disconnected state, while above ${\it\rho}_{c}$ the material acts as an elasto-plastic body (i.e. the ‘dense’ state).

Figure 7 shows the instantaneous state. We see that the behaviour of the particles follows our intuition, in that material points which are splashing or in free-fall are in the disconnected state, while material points which support load are in the dense state.

Figure 7. Same simulations as in figure 6, however in these images we plot the state of the material. As expected, material points which are splashing or in the column of falling particles are in the disconnected state, while material points which support stress are in the dense state.

The hourglass simulations took approximately 50 min each on an Intel i5-2500k using four threads. Although the geometries are different, the number of material points is largely comparable between the simulations and the run time does not differ significantly.

4.4. Inclined plane

The inclined plane flow examples serve to highlight the rate-dependent nature of the dense flow model. Using a rate-independent constitutive equation such as the standard Drucker–Prager yield criterion will not capture a unique steady flow profile over a non-zero range of incline angles. The inertial rheology, which we use here, is able to capture this important phenomenon, which arises in many industrial contexts. In fact, the observation that granular flows down a rough incline achieve a steady-state velocity for inclinations ${\it\theta}$ between ${\it\theta}_{1}=\arctan ({\it\mu}_{s})$ and ${\it\theta}_{2}=\arctan ({\it\mu}_{2})$ was a major motivator in the historical development of the inertial rheology.

The problem is set up as a periodic inclined plane placed at an angle ${\it\theta}$ with respect to the horizontal (see figure 8 for geometric inputs). The material on top of the plane begins in an initially stress-free state and over time develops a unique steady-state profile.

Figure 8. A schematic of the set-up for the inclined plane problems. The global axes are $x^{\prime }$ and $y^{\prime }$ , while the axes $x$ and $y$ are parallel and perpendicular to the inclined plane, respectively.

The main variable of interest will be the velocity parallel to the incline, $v_{x}$ , as a function of the height measured perpendicular to the incline. In our simulations, the height of the material perpendicular to the inclined plane is 20 cm. As in the other simulations, gravity is not applied instantaneously but ramps up to its final value over the first tenth of a second. Because the solution is invariant in $x$ , we simulate a single column of elements, using periodic boundary conditions on the left and right sides of the element. The simulations were run at angles of $19^{\circ }$ to $34^{\circ }$ from the horizontal in $1^{\circ }$ increments. The analytical solution for the steady-state velocity profile, obtained by integrating rheology, yields the Bagnold profile given by

(4.5) $$\begin{eqnarray}\frac{v_{x}(y)}{\sqrt{gh}}=\frac{2}{3}{\it\xi}\frac{\tan {\it\theta}-{\it\mu}_{s}}{{\it\mu}_{2}-\tan {\it\theta}}\sqrt{{\it\rho}_{s}{\it\Phi}\cos ({\it\theta})}\frac{h^{3/2}-(h-y)^{3/2}}{h^{1/2}}.\end{eqnarray}$$

The Bagnold profile has been observed rather clearly in DEM simulations of inclined flows (Silbert et al. Reference Silbert, Ertaş, Grest, Halsey and Levine2001; Silbert, Landry & Grest Reference Silbert, Landry and Grest2003) when the height of the layer is sufficiently large compared to the grain size. The material parameters above are identical to those we have been using in the other simulations. Integrating equation (4.5) over the entire height and dividing by $h$ yields the depth-averaged velocity, given by

(4.6) $$\begin{eqnarray}\frac{\bar{v}_{x}}{\sqrt{gh}}=\frac{2}{5}{\it\xi}h\frac{\tan {\it\theta}-{\it\mu}_{s}}{{\it\mu}_{2}-\tan {\it\theta}}\sqrt{{\it\rho}_{s}{\it\Phi}\cos ({\it\theta})}.\end{eqnarray}$$

These equations only apply for angles between $\arctan ({\it\mu}_{s})$ and $\arctan ({\it\mu}_{2})$ . If the angle supplied is lower than $\arctan ({\it\mu}_{s})$ , there should be no flow. At angles above $\arctan ({\it\mu}_{2})$ , the system cannot find a steady state as the constitutive model renders it impossible to achieve equilibrium, and the material will continually accelerate. The results indicate very high velocities at high tilt angles due to the thickness of the layer, however, they match the analytical predictions of the ${\it\mu}(I)$ model (for an infinitely long chute with no drag sources). We first confirm that the system cannot find a steady-state velocity profile for angles above $\arctan ({\it\mu}_{2})$ . Figure 9 shows the evolution of the depth-averaged ${\it\mu}$ in the leftmost figure. For angles above $\arctan ({\it\mu}_{2})$ the value of ${\it\mu}$ approaches ${\it\mu}_{2}$ , but is prevented from exceeding it through the constitutive model. This necessitates that the material cannot satisfy quasistatic balance and must continuously accelerate. The middle and right images in figure 9 show the time evolution of average velocity and average acceleration, respectively, and also confirm that a steady state does not exist for angles above $\arctan ({\it\mu}_{2})$ (in our case, this is approximately $32.8^{\circ }$ ).

Figure 9. (a) Evolution of the stress ratio. For tilt angles between $\arctan ({\it\mu}_{s})$ and $\arctan ({\it\mu}_{2})$ , the friction coefficient evolves to match the value predicted by quasistatic analysis, ${\it\mu}=\tan {\it\theta}$ . For tilt angles above $\arctan ({\it\mu}_{2})$ , ${\it\mu}$ approaches ${\it\mu}_{2}$ per the restrictions of the constitutive relation. (b) Depth-averaged speed for multiple tilt angles. For tilt angles between $\arctan ({\it\mu}_{s})$ and $\arctan ({\it\mu}_{2})$ , the speed asymptotes to a finite value. When the tilt angle is above ${\it\mu}_{2}$ , the value of ${\it\mu}$ the flow accelerates indefinitely. (c) Depth-averaged acceleration. As expected, the acceleration drops to zero for angles between $\arctan ({\it\mu}_{s})$ and $\arctan ({\it\mu}_{2})$ , while above $\arctan ({\it\mu}_{2})$ the acceleration asymptotes to a non-zero value. Time evolution of $\bar{{\it\mu}}~(a)$ , $\bar{v}_{x}~(b)$ , $\bar{\dot{v}}_{x}~(c)$ .

We also confirm that our MPM simulations are able to reproduce the analytical solutions for both the Bagnold profile and the depth-averaged flow rate as a function of angle in figure 10. Although not shown, as expected we also found that angles less than $\arctan ({\it\mu}_{s})$ – approximately $20.9^{\circ }$ in our case – did not flow (to within machine precision) after the initial loading.

Figure 10. (a) The depth-averaged flow rate for multiple tilt angles (steady state $\bar{v}_{x}$ ). (b) The velocity profile from the MPM simulation for ${\it\theta}=25^{\circ }$ in comparison to the analytical solution.

Although this is a special case, note that the material points in the simulations with larger tilt angles reach shear strains with magnitudes exceeding 105. Attempting a similar analysis with a naive finite-element implementation would not be possible.

In order to ensure the ability to reach steady state, especially for tilt angles close to $\arctan ({\it\mu}_{2})$ , we simulated a total of 500 s for each simulation. Each simulation took approximately 5 h on an Intel E5645 using one thread (increasing threads does not help significantly as the amount of work per step is small in this case).

4.5. Granular slug

To further demonstrate our method’s ability to capture phase changes, we model a slug of loose granular material that is thrown against a rigid wall, causing it to reconsolidate and then plastically collapse into a heap on the floor. The slug begins as a disc of disconnected ( ${\it\rho}<{\it\rho}_{c}$ ) material and is given an initial velocity. The components of the initial velocity are $1.2~\text{m}~\text{s}^{-1}$ in the positive $x$ direction and $3.0~\text{m}~\text{s}^{-1}$ in the positive $y$ direction. For this simulation alone we did not ramp gravity, and instead it is held at the fixed value of $9.8~\text{m}~\text{s}^{-2}$ throughout the entire duration.

Figure 11 shows the results of the projectile simulation. We see that the projectile initially follows a parabolic path, as predicted from classical kinematics. However, as the material begins in a disconnected state, when the projectile impacts the rigid boundary it undergoes densification. This transition is captured in the propagating front shown in the figure. Finally, as the material collapses into a heap, we see that it remains in the dense state, as it must now support stress. As before, the walls are modelled with perfect slip conditions and the floor is modelled fully rough. The projectile simulation further highlights the ability of our MPM scheme to represent large inhomogeneous deformations of granular media while maintaining realistic results.

Figure 11. Granular slug simulation: The projectile initially follows the parabolic trajectory given by classical kinematics (a). When it begins to interact with the wall, the material undergoes densification, captured through the series of images (zoomed-in) in (bh) ( $t=0.55$  s (b), 0.57 (c), 0.58 s (d), 0.60 s (e), 0.62 s (f), 0.63 s (g), 1.00 s (h)). Finally, the material comes to rest and is able to support stress with a density higher than the critical value, forming a static heap (i) ( $t=2.00$  s).

5. Conclusion

We have developed a model and continuum simulation procedure for granular materials, specialized to handle the solid-like (elastic), liquid-like (viscoplastic) and gas-like (disconnected) behaviours that these materials frequently switch between. By tracking the material density, it allows the use of an elasto-plastic behaviour when the material is dense, while being able to transition into a disconnected state when the material is separated and stress free, and vice versa. Our stress update algorithm, which is designed to handle these phase transitions, has been implemented in the context of an MPM framework, which naturally allows for large inhomogeneous deformations, and the combination is able to successfully replicate a variety of phenomena with extremely large strain (e.g. silo drainage, long-time inclined chute flows) which would not be possible in a simple FEM implementation. The physicality has been validated a number of ways: through the runout scaling in collapsing heaps, the Beverloo scaling of silo drainage, and the proper range of steady flow inclinations (and corresponding flow profiles) in inclined chute flows. We have also demonstrated the ability of the scheme to handle transitions into and out of the dense phase.

A natural extension would be the verification and validation of the method in fully three-dimensional cases. Another useful component would be the implementation of moving Lagrangian intruders within a flow (e.g. for mixing problems). Although a solution which uses ‘boundary material points’ is provided in Ma et al. (Reference Ma, Zhang, Lian and Zhou2009), this effectively blurs the boundary condition over an element size. On the constitutive side, in the dense phase we can append a model for transient plastic flow effects, such as shear strengthening/weakening and shear dilatation, per a critical-state soil mechanics model (Schofield & Wroth Reference Schofield and Wroth1968). Finally, a major goal is the implementation of non-local granular models (e.g. that of Kamrin & Koval Reference Kamrin and Koval2012) in a similar manner, which would be an important component of a predictive continuum tool for simulating general granular flows.

Acknowledgements

K.K. would like to acknowledge support from NSF-CBET-1253228 and the MIT Department of Mechanical Engineering.

Appendix A. Derivation of equation of state and relation to kinetic theory

To examine our expression for the equation of state, we additively decompose the inverse density into elastic and flow contributions,

(A 1) $$\begin{eqnarray}\frac{1}{{\it\rho}}=\frac{v_{e}}{m}+\frac{v_{f}}{m}.\end{eqnarray}$$

The elastic component of volume relates to how much the grains are compacted in a densely packed body, which is given by a $\text{tr}\,\unicode[STIX]{x1D640}$ term. The flow component of volume relates to the bulk volume change due to grain structure physically dilating as grains move around each other. In reality, this includes effects such as Reynolds dilatation, but for our approximation we will take the flowing volume as a Heaviside function, which is unity when ${\it\rho}<{\it\rho}_{c}$ and zero otherwise. The accuracy of this approximation will be analysed in a moment.

For computing the elastic volume, we simply take the pressure in tension to be zero (since grains which are not in contact cannot transmit stresses). In compression, the slope of the pressure to elastic volume change curve is proportional to the bulk modulus. Scaled versions of both of these volume contributions compared to (scaled) pressure are shown in figure 12.

Figure 12. We approximate the actual ${\it\phi}(I)$ function, shown in the left panel by a solid line, by a much sharper step function, which can take on any value above a critical inverse packing fraction at zero pressure and take on any positive pressure when ${\it\rho}_{s}={\it\rho}_{c}$ . This approximate function is then used as the flowing volume. The elastic volume is given by linear elasticity in compression and zero in tension; the slope of the solid line in the left panel is the negative inverse of the bulk modulus of the material. The total inverse density is the sum of these two responses scaled by the solid density of the grains.

The sum of these two volumes can now be used to write an equation of state for the pressure as a function of the bulk density. However, the functional form necessarily has different domains due to this decoupling assumption, which creates a kink in the pressure, as shown in (2.7). Taking the time derivative of the equation of state yields an expression we may use to update the stress, which we will expand upon shortly. We can differentiate the equation of state to obtain the bulk modulus, given by

(A 2) $$\begin{eqnarray}K={\it\rho}\frac{\partial p}{\partial {\it\rho}}=\left\{\begin{array}{@{}ll@{}}0\quad & \text{if }{\it\rho}<{\it\rho}_{c}\\ \displaystyle \frac{K_{c}{\it\rho}_{c}}{{\it\rho}}\quad & \text{if }{\it\rho}\geqslant {\it\rho}_{c}.\end{array}\right.\end{eqnarray}$$

Thus, the parameter $K_{c}$ is seen to be the limit of the bulk modulus of the material at ${\it\rho}_{c}$ when approached from above. The time derivative of (2.7) is given by

(A 3) $$\begin{eqnarray}{\dot{p}}=\left\{\begin{array}{@{}ll@{}}0\quad & \text{if }{\it\rho}<{\it\rho}_{c}\\ \displaystyle K_{c}\frac{{\it\rho}_{c}\dot{{\it\rho}}}{{\it\rho}^{2}}\quad & \text{if }{\it\rho}\geqslant {\it\rho}_{c},\end{array}\right.\end{eqnarray}$$

and we can replace the $-\dot{{\it\rho}}/{\it\rho}$ term with $\text{tr}\,\unicode[STIX]{x1D647}$ due to the local form of mass balance in (2.4). Similarly, we can rearrange (2.7) to obtain the term $K_{c}{\it\rho}_{c}/{\it\rho}=K_{c}-p$ . Substitution of these quantities into the time derivative yields

(A 4) $$\begin{eqnarray}{\dot{p}}=\left\{\begin{array}{@{}ll@{}}0\quad & \text{if }{\it\rho}<{\it\rho}_{c}\\ -K_{c}\text{tr}\,\unicode[STIX]{x1D647}+p\,\text{tr}\,\unicode[STIX]{x1D647}\quad & \text{if }{\it\rho}\geqslant {\it\rho}_{c}.\end{array}\right.\end{eqnarray}$$

In the linear elastic limit the pressure is much smaller than the bulk modulus, so we can neglect this term and take the time derivative as ${\dot{p}}=-K_{c}\text{tr}\,\unicode[STIX]{x1D647}$ , which is the same as the expression obtained via linear elasticity with constant bulk modulus equal to $K_{c}$ . This rule is natively incorporated within the objective stress rate and density conditional of (2.15) and (2.14).

We are aware that the form of the flowing volume is approximate; we will now address when the approximation is valid and how to determine the level of errors incurred. Since we take the pressure as zero below ${\it\rho}_{c}$ , the approximation is valid when the true pressure is small compared to a characteristic pressure in the system for values of ${\it\rho}$ less than ${\it\rho}_{c}$ . In the general case, there are two regimes of flow which we can consider as model cases. The first case is steady-state shear flow, and the other is volumetric compression or expansion. First note that in the case of a steady-state shear flow, we can use the ${\it\Phi}(I)$ relation to determine the pressure given a shear strain rate and density. For the volumetric compression and expansion, we can use kinetic theory to model the granular gas and derive an expression for the pressure given a volumetric strain rate and density.

In both cases if the pressure calculated at ${\it\Phi}_{c}={\it\rho}_{c}/{\it\rho}_{s}$ is small compared to a reference pressure in the system, the approximation is valid.

To examine the validity of the stress-free approximation in the gas phase (when ${\it\rho}<{\it\rho}_{c}$ ), we reproduce the arguments and notation of Jenkins & Berzi (Reference Jenkins and Berzi2012) here. The equation of state for the pressure is given by

(A 5) $$\begin{eqnarray}p=4{\it\rho}\tilde{G}\tilde{F}T.\end{eqnarray}$$

Here, $\tilde{G}\equiv {\it\Phi}(1-{\it\Phi}/2)/(1-{\it\Phi})^{3}$ when ${\it\Phi}<0.49$ and $\tilde{G}\equiv 0.63{\it\Phi}/(0.6-{\it\Phi})$ when ${\it\Phi}\geqslant 0.49$ , $\tilde{F}=(1+{\it\epsilon})/2+1/(4\tilde{G})$ ( ${\it\epsilon}$ is the effective coefficient of restitution), and $T$ is the granular temperature (as before, ${\it\rho}$ is the density and $p$ is the pressure). This can be further decomposed into normal and tangential restitution coefficients, but for our purposes it suffices to consider ${\it\epsilon}$ simply as a value between zero and one. The pressure grows quickly when approaching ${\it\Phi}=0.60$ due the division in the expression for $\tilde{G}$ . Above this value, the kinetic stresses are dominated by enduring elastic contacts between grains. Below this value, the expression for pressure is linearly dependent on the granular temperature $T$ ; thus, as long as the temperature remains small, we can approximate the pressure as zero in comparison to the stresses experienced when the material is packed together.

We can take the expression for pressure and immediately derive an expression for the ${\it\Phi}(I)$ relation. Using the argument from da Cruz et al. (Reference da Cruz, Emam, Prochnow, Roux and Chevoir2005), the temperature is related to the fluctuations in velocity. In shear the temperature is given by

(A 6) $$\begin{eqnarray}T_{s}=\dot{{\it\gamma}}^{2}d^{2}\frac{1}{9I}.\end{eqnarray}$$

The shear contribution to the flowing volume is then

(A 7) $$\begin{eqnarray}\frac{v_{f}}{m}=\frac{4{\it\lambda}\tilde{G}({\it\Phi})+1}{p}\left(\dot{{\it\gamma}}^{2}d^{2}\frac{1}{9I}\right)\end{eqnarray}$$

where ${\it\lambda}=(1+{\it\epsilon})/2$ .

First we use ${\it\rho}={\it\rho}_{s}{\it\Phi}$ and collect terms (recalling that $I=\dot{{\it\gamma}}\sqrt{{\it\rho}_{s}d^{2}}/\sqrt{p}$ ) to arrive at

(A 8) $$\begin{eqnarray}(0.6-{\it\Phi})\frac{9}{I}=(2.52{\it\lambda}-1){\it\Phi}^{2}+0.6{\it\Phi}.\end{eqnarray}$$

Since the inverse density is related to the inverse packing fraction, we solve this quadratic equation for inverse packing fraction $1/{\it\Phi}$ to arrive at

(A 9) $$\begin{eqnarray}\frac{1}{{\it\Phi}}=\frac{1}{2}\left(\frac{I}{9}+\frac{1}{0.6}+\sqrt{\left(\frac{I}{9}+\frac{1}{0.6}\right)^{2}+\frac{4I}{5.4}(2.52{\it\lambda}-1)}\right).\end{eqnarray}$$

Given a shear strain rate, we can then compute the pressure as a function of packing fraction to be

(A 10) $$\begin{eqnarray}p({\it\Phi})=\frac{{\it\rho}_{s}{\it\Phi}^{2}}{81}\left(\frac{2.52{\it\lambda}{\it\Phi}}{0.6-{\it\Phi}}+1\right)^{2}\dot{{\it\gamma}}^{2}d^{2}\end{eqnarray}$$

if this were the only contribution to the volume. When we add the elastic part, we must solve the coupled system of equations

(A 11) $$\begin{eqnarray}\displaystyle & \displaystyle \frac{1}{{\it\Phi}}=\frac{1}{{\it\Phi}_{e}}+\frac{1}{{\it\Phi}_{f}} & \displaystyle\end{eqnarray}$$
(A 12) $$\begin{eqnarray}\displaystyle & \displaystyle -K_{c}{\it\Phi}_{e}=\frac{{\it\rho}_{s}{\it\Phi}_{f}^{2}}{81}\left(\frac{2.52{\it\lambda}{\it\Phi}_{f}}{0.6-{\it\Phi}_{f}}+1\right)^{2}\dot{{\it\gamma}}^{2}d^{2}, & \displaystyle\end{eqnarray}$$
where the physical solution occurs when ${\it\Phi}_{e}<0$ and ${\it\Phi}_{f}>0$ . The pressure at this packing fraction may then be calculated via the elastic packing fraction by the relation $p=-K_{c}{\it\Phi}_{e}$ . If we wish to consider a small range of density variation (given by a small range in packing fraction ${\it\delta}$ ) as constant density, we can take ${\it\Phi}+{\it\delta}$ instead of ${\it\Phi}$ in the first equation.

To obtain the contribution to flowing volume from volumetric strain rates, we use the temperature evolution equation from Jenkins & Berzi (Reference Jenkins and Berzi2012). This is used to obtain a maximum temperature as a function of volumetric strain rate. The balance of fluctuation energy yields a differential equation for the temperature given by

(A 13) $$\begin{eqnarray}(3/2){\it\rho}{\dot{T}}=\text{tr}({\bf\sigma}\unicode[STIX]{x1D63F})-\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }\boldsymbol{q}-{\it\Gamma},\end{eqnarray}$$

where $\boldsymbol{q}$ is the flux of the fluctuational energy and ${\it\Gamma}$ is the collisional dissipation. We consider here the case that there is no fluctuation energy flux entering the system, so the equation reduces to

(A 14) $$\begin{eqnarray}(3/2){\it\rho}{\dot{T}}=\text{tr}({\bf\sigma}\unicode[STIX]{x1D63F})-{\it\Gamma}.\end{eqnarray}$$

The form of ${\it\Gamma}$ is given by

(A 15) $$\begin{eqnarray}{\it\Gamma}=\frac{12}{\sqrt{{\rm\pi}}}\frac{{\it\rho}\tilde{G}}{d}(1-{\it\epsilon}^{2})T^{3/2}.\end{eqnarray}$$

Assuming an isotropic stress state, we can then rewrite (A 14) as

(A 16) $$\begin{eqnarray}(3/2){\it\rho}{\dot{T}}=4{\it\rho}\tilde{G}\tilde{F}T\,\text{tr}\,\unicode[STIX]{x1D63F}-\frac{12}{\sqrt{{\rm\pi}}}\frac{{\it\rho}\tilde{G}}{d}(1-{\it\epsilon}^{2})T^{3/2}.\end{eqnarray}$$

This is an ordinary differential equation of the form

(A 17) $$\begin{eqnarray}{\dot{T}}=AT-BT^{3/2}\end{eqnarray}$$

where

(A 18) $$\begin{eqnarray}\displaystyle & A=(8/3)\tilde{G}\tilde{F}\,\text{tr}\,\unicode[STIX]{x1D63F} & \displaystyle\end{eqnarray}$$
(A 19) $$\begin{eqnarray}\displaystyle & \displaystyle B=\frac{8}{\sqrt{{\rm\pi}}}\frac{\tilde{G}}{d}(1-{\it\epsilon}^{2}). & \displaystyle\end{eqnarray}$$

Note first that $T=0$ is a solution to this differential equation (for all times). Otherwise, the temperature decreases or remains at the current value when

(A 20) $$\begin{eqnarray}\frac{3}{d\sqrt{{\rm\pi}}}(1-{\it\epsilon}^{2})\sqrt{T}\geqslant \tilde{F}\,\text{tr}\,\unicode[STIX]{x1D63F}.\end{eqnarray}$$

We may also integrate the general form and rearrange to obtain the expression for the granular temperature as a function of time, given by

(A 21) $$\begin{eqnarray}T(t)=\frac{A^{2}\exp (At+AC)}{\left[1+B\exp \left(\displaystyle \frac{At+AC}{2}\right)\right]^{2}},\end{eqnarray}$$

where $C$ is a constant set by the initial conditions. In the limit of large times, even with a constant volumetric compression rate we note that the temperature is limited to $A^{2}/B^{2}$ . Thus, as long as the material initially begins with a zero temperature, experiences a short-duration compression event, or experiences a long-duration compression event where $A/B$ is small, the kinetic stresses remain small.

We then take the upper bound for this temperature as given by

(A 22) $$\begin{eqnarray}T_{c}=\frac{A^{2}}{B^{2}}=\frac{{\rm\pi}}{144({\it\lambda}-1)^{2}}\left(1+\frac{1}{4\tilde{G}{\it\lambda}}\right)^{2}\dot{{\it\epsilon}}_{v}^{2}d^{2}\end{eqnarray}$$

where we have written $\text{tr}\,\unicode[STIX]{x1D63F}$ as $\dot{{\it\epsilon}}_{v}$ .

A similar analysis can be done for the volumetric term as the shear term. The pressure is given by

(A 23) $$\begin{eqnarray}p({\it\Phi})=\frac{{\rm\pi}{\it\rho}_{s}{\it\Phi}(4\tilde{G}{\it\lambda}+1)}{144({\it\lambda}-1)^{2}}\left(1+\frac{1}{4\tilde{G}{\it\lambda}}\right)^{2}\dot{{\it\epsilon}}_{v}^{2}d^{2}.\end{eqnarray}$$

The inverse relation can be used to obtain ${\it\Phi}(p,\dot{{\it\epsilon}}_{v})$ , however, unlike in the shear case, the equation is quartic in ${\it\Phi}$ and is cumbersome to manipulate algebraically.

As before, this expression can be combined with the elastic contribution given by

(A 24) $$\begin{eqnarray}\frac{v_{e}}{m}=\frac{-p}{{\it\rho}_{s}K_{c}}\end{eqnarray}$$

in a manner analogous to the shear case to obtain a pressure $p$ at a given ${\it\Phi}$ for given values of $\dot{{\it\gamma}}$ and $\dot{{\it\epsilon}}$ . Since errors occur in our approximation when $p({\it\Phi}_{c})$ is large, this value may be calculated at each instant to obtain an estimate of the error incurred in taking the pressure as zero below the critical value of ${\it\rho}_{c}={\it\rho}_{s}{\it\Phi}_{c}$ . The calculation may be done in a fully coupled manner, where the inverse packing fraction contributions come from elasticity, a shear flowing part, and a volumetric flowing part, or the calculation can be done for a reduced system (with the elastic part combined with only the shear term or only the volumetric term). For a conservative a priori estimation we can take the strain rate as $u_{c}/d$ , where $u_{c}$ is the maximum velocity in the system.

Although we do not track the evolution of flowing density when at a non-zero pressure, we may wish to reconstruct the density variation in the steady state. A typical post-processing method (e.g. mentioned in Pouliquen & Forterre Reference Pouliquen and Forterre2009) to compute the density variation is to use the inertial number $I$ which is obtained in simulation and use the ${\it\phi}(I)$ relationship to recover ${\it\phi}$ . This does not impact the mass balance as long as the modified ${\it\rho}$ satisfies

(A 25) $$\begin{eqnarray}0=-\boldsymbol{v}\boldsymbol{\cdot }\boldsymbol{{\rm\nabla}}{\it\rho}-{\it\rho}\boldsymbol{{\rm\nabla}}\boldsymbol{\cdot }\boldsymbol{v},\end{eqnarray}$$

which is the Eulerian form for mass conservation in steady-state conditions. We may estimate the error incurred in performing this conversion by computing how closely the steady-state fields satisfy this equation.

Appendix B. Verification of constitutive integration scheme

Testing our stress update procedure against an exact solution given some simple, time-dependent velocity gradient allows us to determine error in the constitutive integration. While dense, we know that the stress state evolves according to (2.15). If we write this in component form and combine terms, we can find (nonlinear) ODEs for the stress components given a velocity gradient. Even in the simplest cases, analytical solutions to these ODEs are difficult to obtain; instead, we will consider a high-order numerical solution as a reference solution. We used the fourth-order Runge–Kutta integrator in the SciPy package from Jones, Oliphant & Peterson (Reference Jones, Oliphant and Peterson2001), which implements the algorithm described in Dormand & Prince (Reference Dormand and Prince1980). We use the parameters in table 1, with the exception of the Young’s modulus, which is reduced to 10 000 Pa to lessen the time step size restriction. The applied velocity gradient is given over the time interval $t=0~\text{s}$ to $t=1.25~\text{s}$ , and the components are chosen as

(B 1) $$\begin{eqnarray}\unicode[STIX]{x1D647}(t)=\unicode[STIX]{x1D647}_{shear}+[H(t-0.25)-H(t-0.5)]\unicode[STIX]{x1D647}_{com}+[H(t-0.75)-H(t-1)]\unicode[STIX]{x1D647}_{ext}\end{eqnarray}$$

where

(B 2ac ) $$\begin{eqnarray}\displaystyle & \unicode[STIX]{x1D647}_{shear}=\left[\begin{array}{@{}ccc@{}}0 & 0.05 & 0\\ 0 & 0 & 0\\ 0 & 0 & 0\end{array}\right],\quad \unicode[STIX]{x1D647}_{com}=(|8t-3|-1)\left[\begin{array}{@{}ccc@{}}1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 0\end{array}\right],\quad & \displaystyle \nonumber\\ \displaystyle & \unicode[STIX]{x1D647}_{ext}=(1-|8t-7|)\left[\begin{array}{@{}ccc@{}}1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 0\end{array}\right], & \displaystyle\end{eqnarray}$$

and $H(t)$ is the Heaviside step function. This represents steady planar shearing combined with time-varying compression. The results of our constitutive integration algorithm are plotted in figure 13(ac), which are in good agreement with the results from the fourth-order Runge–Kutta integrator (differences in df). Note that our test is different from the method of manufactured solutions (MMS) as explained in Kamojjala et al. (Reference Kamojjala, Brannon, Sadeghirad and Guilkey2013), which exercises the entire code path and performs a comprehensive test of an implementation itself. The verification presented here only extends to the numerical integration of the stress as a function of velocity gradient.

Figure 13. The results of our constitutive integration algorithm (ac) and the comparison to the fourth-order Runge–Kutta scheme (df). The input is the velocity gradient, $\unicode[STIX]{x1D647}$ , and the outputs are the stress and the plastic strain-rate tensor. The results of our constitutive integration closely track those of the fourth-order Runge–Kutta scheme and converge with first-order error in the time step.

References

Abe, K., Soga, K. & Bandara, S. 2013 Material point method for coupled hydromechanical problems. Geoenviron. Engng 140 (3), 116.Google Scholar
Andersen, S. & Andersen, L.2009 Analysis of stress updates in the material-point method. In Proceedings of the 22nd Nordic Seminar on Computational Mechanics, pp. 129–134. Aalborg.Google Scholar
Andersen, S. & Andersen, L. 2010 Analysis of spatial interpolation in the material-point method. Comput. Struct. 88 (7–8), 506518.Google Scholar
Andersen, S. & Andersen, L.2013 Post-processing in the material-point method. Tech. Rep. Aalborg: Aalborg University.Google Scholar
Balmforth, N. J. & Kerswell, R. R. 2005 Granular collapse in two dimensions. J. Fluid Mech. 538, 399428.CrossRefGoogle Scholar
Bandara, S. & Soga, K. 2015 Coupling of soil deformation and pore fluid flow using Material Point Method. Comput. Geotech. 63, 199214.Google Scholar
Bardenhagen, S. G. & Kober, E. M. 2004 The generalized interpolation material point method. Comput. Model. Engng Sci. 5 (6), 477495.Google Scholar
Beverloo, W. A., Leniger, H. A. & van de Velde, J. 1961 The flow of granular solids through orifices. Chem. Engng Sci. 15 (3–4), 260269.Google Scholar
Brackbill, J., Kothe, D. & Ruppel, H. 1988 FLIP: a low-dissipation, particle-in-cell method for fluid flow. Comput. Phys. Commun. 48, 2538.Google Scholar
Brockbank, R., Huntley, J. M. & Ball, R. C. 1997 Contact force distribution beneath a three-dimensional granular pile. J. Phys. II 7 (10), 15211532.Google Scholar
Buzzi, O., Pedroso, D. M. & Giacomini, A. 2008 Caveats on the implementation of the generalized material point method. Comput. Model. Engng Sci. 1 (1), 121.Google Scholar
Cundall, P. A. & Strack, O. D. L. 1979 A discrete numerical model for granular assemblies. Geotechnique 29 (1), 4765.Google Scholar
da Cruz, F., Emam, S., Prochnow, M., Roux, J. & Chevoir, F. 2005 Rheophysics of dense granular materials: discrete simulation of plane shear flows. Phys. Rev. E 72 (2), 021309.Google Scholar
Dormand, J. & Prince, P. 1980 A family of embedded Runge–Kutta formulae. J. Comput. Appl. Maths 6 (1), 1926.CrossRefGoogle Scholar
Geng, J., Longhi, E., Behringer, R. & Howell, D. 2001 Memory in two-dimensional heap experiments. Phys. Rev. E 64 (6), 060301.Google Scholar
Gurtin, M. E., Fried, E. & Anand, L. 2010 The Mechanics and Thermodynamics of Continua. Cambridge University Press.CrossRefGoogle Scholar
Harlow, F. H. 1964 The particle-in-cell computing method for fluid dynamics. Meth. Comput. Phys. 3 (3), 319343.Google Scholar
Henann, D. L. & Kamrin, K. 2013 A predictive, size-dependent continuum model for dense granular flows. Proc. Natl Acad. Sci. USA 110 (17), 67306735.CrossRefGoogle ScholarPubMed
Henann, D. L. & Kamrin, K. 2014 Continuum modeling of secondary rheology in dense granular materials. Phys. Rev. Lett. 113 (17), 178001.CrossRefGoogle ScholarPubMed
Jenkins, J. T. & Berzi, D. 2012 Kinetic theory applied to inclined flows. Granul. Matt. 14, 7984.CrossRefGoogle Scholar
Jiang, Y. & Liu, M. 2003 Granular elasticity without the Coulomb condition. Phys. Rev. Lett. 91 (14), 144301.CrossRefGoogle ScholarPubMed
Jones, E., Oliphant, T. & Peterson, P.2001 SciPy: Open source scientific tools for Python. URL: http://www.scipy.org/ (visited on 07/28/2014).Google Scholar
Jop, P., Forterre, Y. & Pouliquen, O. 2006 A constitutive law for dense granular flows. Nature 441 (7094), 727730.Google Scholar
Kahan, W.2004 On the cost of floating-point computation without extra-precise arithmetic. URL: http://www.cs.berkeley.edu/∼wkahan/Qdrtcs.pdf (visited on 10/06/2014).Google Scholar
Kamojjala, K., Brannon, R., Sadeghirad, A. & Guilkey, J. 2013 Verification tests in solid mechanics. Engng Comput 31 (2), 193213.CrossRefGoogle Scholar
Kamrin, K. 2010 Nonlinear elasto-plastic model for dense granular flow. Intl J. Plast. 26 (2), 167188.Google Scholar
Kamrin, K. & Henann, D. 2015 Nonlocal modeling of granular flows down inclines. Soft Matter 11 (1), 179185.Google Scholar
Kamrin, K. & Koval, G. 2012 Nonlocal constitutive relation for steady granular flow. Phys. Rev. Lett. 108 (17), 178301+.Google Scholar
Koval, G., Roux, J., Corfdir, A. & Chevoir, F. 2009 Annular shear of cohesionless granular materials: from the inertial to quasistatic regime. Phys. Rev. E 79 (2), 021306.Google Scholar
Lacaze, L. & Kerswell, R. 2009 Axisymmetric granular collapse: a transient 3D flow test of viscoplasticity. Phys. Rev. Lett. 102 (10), 108305.Google Scholar
Lagrée, P.-Y., Staron, L. & Popinet, S. 2011 The granular column collapse as a continuum: validity of a two-dimensional Navier–Stokes model with a ${\it\mu}(\text{I})$ -rheology. J. Fluid Mech. 686, 378408.CrossRefGoogle Scholar
Lube, G., Huppert, H., Sparks, R. & Hallworth, M. 2004 Axisymmetric collapses of granular columns. J. Fluid Mech. 508, 175199.Google Scholar
Lube, G., Huppert, H., Sparks, R. & Freundt, A. 2005 Collapses of two-dimensional granular columns. Phys. Rev. E 72 (4), 110.Google Scholar
Ma, S., Zhang, X., Lian, Y. & Zhou, X. 2009 Simulation of high explosive explosion using adaptive material point method. 39 2, 101123.Google Scholar
Mast, C. M., Mackenzie-Helnwein, P., Arduino, P., Miller, G. R. & Shin, W. 2012 Mitigating kinematic locking in the material point method. J. Comput. Phys. 231 (16), 53515373.CrossRefGoogle Scholar
Mast, C. M., Arduino, P., Mackenzie-Helnwein, P. & Miller, G. R. 2015 Simulating granular column collapse using the Material Point Method. Acta Geotech. 10, 101116.Google Scholar
Nair, A. & Roy, S. 2012 Implicit time integration in the generalized interpolation material point method for finite deformation hyperelasticity. Mech. Adv. Mater. Struct. 19 (6), 465473.CrossRefGoogle Scholar
Nedderman, R. M. 1992 Statics and Kinematics of Granular Materials. Cambridge University Press.Google Scholar
Pouliquen, O. & Forterre, Y. 2009 A non-local rheology for dense granular flows. Phil. Trans. R. Soc. A 367 (1909), 50915107.CrossRefGoogle ScholarPubMed
Rashid, M. 1993 Incremental kinematics for finite element applications. Intl J. Numer. Meth. Engng 36 (April), 39373956.Google Scholar
Sadeghirad, A., Brannon, R. M. & Burghardt, J. 2011 A convected particle domain interpolation technique to extend applicability of the material point method for problems involving massive deformations. Intl J. Numer. Meth. Engng 86 (12), 14351456.CrossRefGoogle Scholar
Sadeghirad, A., Brannon, R. M. & Guilkey, J. E. 2013 Second-order convected particle domain interpolation (CPDI2) with enrichment for weak discontinuities at material interfaces. Intl J. Numer. Meth. Engng 95 (11), 928952.Google Scholar
Schofield, A. & Wroth, P. 1968 Critical State Soil Mechanics. McGraw-Hill.Google Scholar
Silbert, L., Ertaş, D., Grest, G., Halsey, T. & Levine, D. 2001 Granular flow down an inclined plane: Bagnold scaling and rheology. Phys. Rev. E 64 (5), 051302.Google Scholar
Silbert, L. E., Landry, J. W. & Grest, G. S. 2003 Granular flow down a rough inclined plane: transition between thin and thick piles. Phys. Fluids 15 (1), 110.Google Scholar
Staron, L. & Hinch, E. J. 2005 Study of the collapse of granular columns using DEM numerical simulation. J. Fluid Mech. 545, 127; arXiv:0501022 [physics].CrossRefGoogle Scholar
Staron, L., Lagrée, P.-Y. & Popinet, S. 2012 The granular silo as a continuum plastic flow: The hour-glass vs the clepsydra. Phys. Fluids 24 (10), 103301.Google Scholar
Staron, L., Lagrée, P.-Y. & Popinet, S. 2014 Continuum simulation of the discharge of the granular silo: a validation test for the ${\it\mu}(\text{I})$ visco-plastic flow law. Eur. Phys. J. E 37 (1), 5.Google Scholar
Sulsky, D., Chen, Z. & Schreyer, H. L. 1994 A particle method for history-dependent materials. Comput. Meth. Appl. Mech. Engng 118 (1–2), 179196.Google Scholar
Weber, G. G., Lush, A. M., Zavaliangos, A. & Anand, L. 1990 An objective time-integration procedure for isotropic rate-independent and rate-dependent elastic-plastic constitutive equations. Intl J. Plast. 6 (6), 701744.Google Scholar
Więckowski, Z. 2003 Modelling of silo discharge and filling problems by the material point method. Task Quart. 4 (4), 701721.Google Scholar
Więckowski, Z. 2004 The material point method in large strain engineering problems. Comput. Meth. Appl. Mech. Engng 193 (39–41), 44174438.Google Scholar
Więckowski, Z. & Kowalska-Kubsik, I. 2011 Non-local approach in modelling of granular flow by the material point method. In Computer Methods in Mechanics, p. 069.Google Scholar
Zhang, D. Z., Ma, X. & Giguere, P. T. 2011 Material point method enhanced by modified gradient of shape function. J. Comput. Phys. 230 (16), 63796398.Google Scholar
Figure 0

Figure 1. (a) The steps needed to perform an explicit MPM step. Reading from left to right shows the order in which properties are modified within a time step. Material point properties are drawn with a circle, while nodal properties are drawn with squares. The diagram above the timeline shows the collective behaviour of many material points and nodes, and is synchronized with the lower part of the diagram. Solid lines are projections using either the shape functions or gradient of shape functions, dashed lines are update operations, and dotted lines are a combination of projection and update. Note that multiple sources are needed for the calculation of some quantities. The thick dashed lines are the components of the stress update algorithm (diagram inspired by one in Buzzi, Pedroso & Giacomini (2008)). (b) The stress update algorithm. All operations take place on the material point level. Subscripts have been dropped.

Figure 1

Table 1. Common material parameters.

Figure 2

Table 2. Simulation parameters.

Figure 3

Figure 2. Column collapse: All particles shown are the material point markers (not grains). The half-height $w$ of each column is 20 cm, while the heights are 40, 20 and 10 cm from left to right. The resultant heaps follow the correct trend of higher aspect ratios leading to flatter heaps, and the repose angle is less than the value implied by the static friction coefficient. (a) Shows the equivalent plastic shear rate as the simulation progresses, while (b) shows the pressure distribution at the end of the simulation.

Figure 4

Figure 3. The non-dimensional run-out distance as a function of aspect ratio is plotted. Consistent with other literature, two regimes are observed. Comparisons to other studies, both experimental and numerical, are presented in table 3.

Figure 5

Table 3. Comparison of numerical and experimental run-out scalings to the current work (similar to that displayed in Mast et al. (2015)). We note that our MPM code matches well with data from Staron & Hinch (2005), which used a similar internal friction angle.

Figure 6

Figure 4. Parameters for the silo simulations are given in table 2. The silos initially begin filled to a height of 1.0 m, and the base has a width of 1.0 m. Due to symmetry we only draw half of the geometry.

Figure 7

Figure 5. (a) The mass remaining in the silo for a few representative hole sizes, $M(t)$. Markers are drawn more sparsely than the actual sampling rate. We label the region where the mass remaining in the silo is between 1200 and 900 kg as the steady flow region and we average only data from this region when calculating the flow rate. (b) The steady-state mass flow rate ${\dot{M}}_{ss}(D)$ is plotted against the hole size. $Q_{MPM}^{fit}$ is a best-fit function of the Beverloo form $C_{MPM}{\it\rho}\sqrt{g}D^{3/2}$, where $C_{MPM}=1.42$.

Figure 8

Figure 6. Parameters for the hourglass simulations are given in table 2. The dashed boundary indicates the symmetry condition.

Figure 9

Figure 7. Same simulations as in figure 6, however in these images we plot the state of the material. As expected, material points which are splashing or in the column of falling particles are in the disconnected state, while material points which support stress are in the dense state.

Figure 10

Figure 8. A schematic of the set-up for the inclined plane problems. The global axes are $x^{\prime }$ and $y^{\prime }$, while the axes $x$ and $y$ are parallel and perpendicular to the inclined plane, respectively.

Figure 11

Figure 9. (a) Evolution of the stress ratio. For tilt angles between $\arctan ({\it\mu}_{s})$ and $\arctan ({\it\mu}_{2})$, the friction coefficient evolves to match the value predicted by quasistatic analysis, ${\it\mu}=\tan {\it\theta}$. For tilt angles above $\arctan ({\it\mu}_{2})$, ${\it\mu}$ approaches ${\it\mu}_{2}$ per the restrictions of the constitutive relation. (b) Depth-averaged speed for multiple tilt angles. For tilt angles between $\arctan ({\it\mu}_{s})$ and $\arctan ({\it\mu}_{2})$, the speed asymptotes to a finite value. When the tilt angle is above ${\it\mu}_{2}$, the value of ${\it\mu}$ the flow accelerates indefinitely. (c) Depth-averaged acceleration. As expected, the acceleration drops to zero for angles between $\arctan ({\it\mu}_{s})$ and $\arctan ({\it\mu}_{2})$, while above $\arctan ({\it\mu}_{2})$ the acceleration asymptotes to a non-zero value. Time evolution of $\bar{{\it\mu}}~(a)$, $\bar{v}_{x}~(b)$, $\bar{\dot{v}}_{x}~(c)$.

Figure 12

Figure 10. (a) The depth-averaged flow rate for multiple tilt angles (steady state $\bar{v}_{x}$). (b) The velocity profile from the MPM simulation for ${\it\theta}=25^{\circ }$ in comparison to the analytical solution.

Figure 13

Figure 11. Granular slug simulation: The projectile initially follows the parabolic trajectory given by classical kinematics (a). When it begins to interact with the wall, the material undergoes densification, captured through the series of images (zoomed-in) in (bh) ($t=0.55$  s (b), 0.57 (c), 0.58 s (d), 0.60 s (e), 0.62 s (f), 0.63 s (g), 1.00 s (h)). Finally, the material comes to rest and is able to support stress with a density higher than the critical value, forming a static heap (i) ($t=2.00$  s).

Figure 14

Figure 12. We approximate the actual ${\it\phi}(I)$ function, shown in the left panel by a solid line, by a much sharper step function, which can take on any value above a critical inverse packing fraction at zero pressure and take on any positive pressure when ${\it\rho}_{s}={\it\rho}_{c}$. This approximate function is then used as the flowing volume. The elastic volume is given by linear elasticity in compression and zero in tension; the slope of the solid line in the left panel is the negative inverse of the bulk modulus of the material. The total inverse density is the sum of these two responses scaled by the solid density of the grains.

Figure 15

Figure 13. The results of our constitutive integration algorithm (ac) and the comparison to the fourth-order Runge–Kutta scheme (df). The input is the velocity gradient, $\unicode[STIX]{x1D647}$, and the outputs are the stress and the plastic strain-rate tensor. The results of our constitutive integration closely track those of the fourth-order Runge–Kutta scheme and converge with first-order error in the time step.