Loading-dependent microscale measures control bulk properties in granular material: an experimental test of the Stress-Force-Fabric relation
Data files
Aug 07, 2025 version files 78.79 MB
-
figure2.zip
12.42 KB
-
figure3_4.zip
59.18 KB
-
rawData.zip
78.71 MB
-
README.md
4.94 KB
Abstract
The bulk behaviour of granular materials is tied to its mesoscale and particle-scale features: strength properties arise from the buildup of various anisotropic structures at the particle-scale induced by grain connectivity, force transmission, and frictional mobilization. More fundamentally, these anisotropic structures work collectively to define features like the bulk friction coefficient and the stress tensor at the macroscale and can be explained by the Stress-Force-Fabric (SFF) relationship stemming from the microscale arrangement of the forces and fabric. Although the SFF relation has been extensively verified by discrete numerical simulations, a laboratory realization has remained elusive due to the challenge of measuring both normal and frictional contact forces. In this study, we analyze experiments performed on a photoelastic granular system under four different loading conditions: uniaxial compression, isotropic compression, pure shear, and annular shear. During these experiments, we record particle locations, contacts, and normal and frictional forces to measure the particle-scale response to progressing strain. We experimentally assess the Stress-Force-Fabric (SFF) relation across multiple loading conditions in a 2D photoelastic granular system. We track microscale measures like the packing fraction, average coordination number, and average normal force, along with anisotropic distributions of contacts and forces. We then connect these particle-scale anisotropies to bulk behavior using the SFF relation, which provides compact expressions for both the stress tensor and the bulk friction coefficient in terms of fabric and force anisotropies. Our results demonstrate that these expressions accurately capture the bulk stress and friction across different loading histories, validating the predictive power of the SFF framework. Additionally, we test the assumption that contact and force anisotropies contribute equally to load transmission in our granular packings and show that this assumption is sufficient at large strain values and can be applied to areas like rock mechanics, soft colloids, or cellular tissue where force information is inaccessible.
Dataset DOI: 10.5061/dryad.mcvdnck95
Description of the data and file structure
This repository contains three folders corresponding to the data (at different stages of processing) for three cartesian loading schemes for photoelastic particles on an airtable.
Files and variables
File: figure2.zip
Description: The data in this folder contains three files corresponding to the angular distributions of the contact, normal forces and tangential forces that are plotted in figure2 of the paper.
Ec(theta).txt columns correspond:
-angle: angle corresponding to \theta as defined in the text. Units radians
-eps = 0.xx : column labels indicate the strain step at which each distribution is measured
columns beyond the first angle column corresponds to $E^c(\theta)$, the contact probability density.
Fn(theta).txt columns correspond:
-angle: angle corresponding to \theta as defined in the text. Units radians
-eps = 0.xx : column labels indicate the strain step at which each distribution is measured
columns beyond the first angle column corresponds to $<fn(theta)/f0$, the average normal force within the angle bin, normalized by the total average normal force f_0.
Ft(theta).txt columns correspond:
-angle: angle corresponding to \theta as defined in the text. Units radians
-eps = 0.xx: column labels indicate the strain step at which each distribution is measured
columns beyond the first angle column corresponds to $<ft(theta)/f0$, the average tangential force within the angle bin, normalized by the total average normal force f_0.
File: figure3_4.zip
Description: This folder contains the two files required to recreate figures 3 and 4 in the text, for each rectilinear loading (uniaxial compression, isotropic compression and pure shear). ___stresstensor.txt contains data that corresponds to the bulk measures like the stress tensor. ___SFF.txt contains the relevant parameters for the particle scale comparison.
__stresstensor.txt has the following columns:
strain: shear strain step
mu: calculated from equation 2 in the paper
sigma_xx: the x-x component of the stress tensor in Pa m
sigma_yy: the yy component of the stress tensor in Pa m
sigma_xy: the radial-theta component of the stress tensor in Pa m
sigma_yx: the radial-theta component of the stress tensor in Pa m
nu: the packing density at each strain step
z: mean coordination number
zwo: mean coordination number calculated without rattlers
f_0: mean normal force (Newtons)
d: average particle diameter (meters)
xxxSFF.txt contains the following columns
strain :hear strain step
a: the magnitude of anisotropy for the contacts probability distribution, averaged over the strain step.
-std(a): standard deviation of the magnitude of anisotropy for the contacts, averaged over the strain step.
-a_n: the magnitude of anisotropy for the normal force distribution, averaged over the strain step.
-std(a_n): standard deviation of the magnitude of anisotropy for the normal force distribution, averaged over the strain step.
-a_t: the magnitude of anisotropy for the tangential force distribution, averaged over the strain step.
-std(a_t): standard deviation of the magnitude of anisotropy for the tangential force distribution, averaged over the strain step.
-f0 nu z / pi d*:* the prefactor calculated in equation 5. Units of Pa m
File: rawData.zip
Description: Loading protocol -> Dataset -> Adjacency list, particle positions, image values (for IsotropicCompression, PureShear and Uniaxial Compression). A conversion file for the Daniels lab use is also included with the filename dryad2eno.txt
centers_tracked.txt
The format is :frame number, particleID, x, y, r, edge.
Frame number corresponds to the relevant image, particleID is the unique particle number, x, y are the coordinates in pixels, r is the radius of the particle in pixels and edge is a binary flag whether the particle is at an edge or not.
Pixel to meter conversion is 0.00019853 m/pixel
Adjacency_list.txt
The format is: frame number, particleID1, particleID2, tangential force, normal force
Frame number corresponds to the relevant image, particleID is the unique particle number for each in contact. The normal and tangential forces correspond to the force from particle 1 to particle 2.
image_segments.txt
This format is :frame 1, frame 2
Where the first frame indicates the starting frame for the relevant loading (where the forces start) and the second is where the loading ends.
dryad2eno.txt
A file for the Daniels lab to use to match this dataset to the data stored on the lab server, eno. It matches the name of the data set presented here to the name of the data as stored on the server.
Photoelastic granular images were taken using colour images and analysed using the PhotoElastic Grain Solver algorithm to determing the particle positions and contact forces.
Four distinct loading histories are recorded, packings in a rectangular chamber are subject to pure shear, isotropic compression and uniaxial compression, where particles in an annular chamber are annular shear.
Each loading history has a number of datasets, in which are the particle positions, adjacency matrix and in the case of the rectangular chambers are the valid images. See README for a further description
