MercuryDPM  Trunk
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Evaluation of continuum fields

This page describes the mathematical formulas used to extract continuum fields from particle data.

Discrete particle simulations create a large amount of data, such as the position and velocities of each interactable (particle/wall), and the forces created by each interaction. This data completely describes the system you are simulating, but it is difficult to draw any physically relevant conclusions from it.

Therefore, granular assemblies are often described using continuum fields, like density \(\rho\), momentum \(\vec j=\rho \vec V\), stress \(\mathbf \sigma\) and temperature. Continuum descriptions have been very sucessful in describing the macroscopic physical behavior of granular systems, and describe many phenomena as diverse as plastic/inertial flow, soil mechanics, or segregation. Other phenomena such as fracturing, jamming/force chains, crystallization have so far resisted efforts to be described by continuum theories. However, we can still learn a lot from evaluation their continuum properties by developing special continuum fields such as fabric, displacement, or orientation.

Defining the basic coarse-grained fields

Density, momentum, and stress, in particular, are strongly related to each other, as they observe the equations describing conservation of mass and momentum,

\[\partial_t\rho + \nabla\cdot(\rho \vec V) = 0,\]

\[\partial_t(\rho \vec V) + \nabla\cdot(\rho \vec V \vec V) = \nabla \mathbf \sigma + \rho \vec g.\]

While traditional micro-macro methods begin by defining density, momentum, and stress and then show that they satisfy ass and momentum balance in a statistical sense (ie. by ensemble averaging), coarse-graining takes a different approach:


In coarse-graining, density is defined first, as the sum over all particle masses weighted by the distance to the evaluated position:

\[\rho(\vec r)=\sum_i m_i \phi(\vec r,\vec r_i),\]

with position \(r\), particle position \(r_i\). The coarse-graining function \(\phi\) (aslo called weighting or kernel function) is not uniquely defined, but often a Gauss function of width \(w\) is used,

\[ \phi(\vec r,\vec r_i) = c \exp(-\frac{|\vec r-\vec r_i|^2}{2w^2}),\]

where the prefactor \(c\) is chosen such that \(\int \phi(\vec r) d\vec r = 1\).


Next, the momentum at a given position is defined as the sum over all particle moments weighted by the distance to the position:

\[\vec j(\vec r)=\sum_i m_i \phi(\vec r,\vec r_i),\]

Thus, the velocity is defined as

\[\vec V(\vec r) = \frac{\vec j(\vec r,t)}{\rho(\vec r)}.\]

One can easily show that the density and momentum density fields satisfy the mass conservation equation by definition.

Kinetic and contact stress

Similarly, the stress tensor can be defined such that it identically satisfies the conservation of momentum. For that, we define the stress as the sum of the contact stress and the kinetic stress,

\[ \mathbf \sigma=\mathbf \sigma^{c}+\mathbf \sigma^{c}. \]

The kinetic stress can be calculated from momentum flux and density as

\[\mathbf \sigma^{k} = \mathbf k - \rho \vec V \otimes \vec V,\]

where the momentum density is defined as the sum over all particles i

\[\mathbf k(\vec r,t)=\sum_i m_i \vec v_i \otimes \vec v_i\phi(\vec r,\vec r_i),\]

with particle momentum flux \(m_i\vec v_i \otimes \vec v_i\) and kernel function \(\phi(\vec r,\vec r_i)\).

The contact stress is has a slightly more complex definition:

\[\mathbf \sigma^{c}(\vec r,t)=\sum_{ij} \vec f_{ij} \otimes \vec l_{ij} \psi(\vec r,\vec r_i,\vec r_j),\]

with contact force \(\vec f_{ij}\), branch vector \(\vec l_{ij}= \vec c_{ij}-\vec r_i\), particle position \(\vec r_i\), contact point \(\vec c_{ij}\), and a line integral over the kernel function,

\[ \psi(\vec r,\vec r_i,\vec r_j) = \int_{0}^{1} \phi(\vec r - \vec r_I + s r_{IP}) ds.\]

One can show that this stress definition satisfies the momentum conservation equation by definition.