Skip to content
ColtonKawamura edited this page Sep 16, 2026 · 2 revisions

GranE — Function Reference

Granular Eigenvalue — eigenvalue problem of granular packings. Continuation of GranMA.

This wiki has one page per function in src/. Each page shows the default syntax, every option, a one-line description of what it does, and runnable examples.

Typical workflow

  1. Generate a packing → pack
  2. Compute damped eigenmodes → processEigenModesDampedPara (or build the matrices yourself with matSpringDampMass)
  3. Plot the spectra → plotModes
  4. Simulate a single mode → simEigenmode
  5. Plot the wave speed → eigenWavespeed
  6. Inspect the saved variables → Output files

Functions

Function What it does
pack Generate a jammed 2D/3D packing (Hooke or Hertz, optional friction, optional eigenmodes, optional tiling)
packRepeatTile Tile a saved 2D packing in x and/or y
matSpringDampMass Build the stiffness / damping / mass matrices K, Γ, M
processEigenModesDampedPara Parallel sweep: damped eigenmodes for every packing × damping
plotModes Plot attenuation vs. frequency for all results files in a directory
simEigenmode Excite one eigenmode in a Verlet sim and check its frequency/attenuation
cleanRats Remove rattlers (frictionless + frictional variants)
findNeighbors3D Build the candidate contact-pair list for a 3D cell list
rebuildCellList3D Re-bucket 3D positions into a periodic cell list
eigenWavespeed Plot wave speed c_n = ω_n/k_n vs. frequency (file eigenWavespeed.m, fn plotEigenWavespeed)
scriptDebug Demo script driving simEigenmode on example files (not a function)

Reference

  • Output files — variables saved in packing / results .mat files

All functions live in src/. Run MATLAB from the project root and addpath('src'). Tests in tests/ exercise the low-level helpers.

Clone this wiki locally