Skip to content

Add lunar regolith JKR adhesion angle of repose benchmark#58

Open
SueHeir wants to merge 2 commits intomainfrom
researcher/bench-lunar-regolith
Open

Add lunar regolith JKR adhesion angle of repose benchmark#58
SueHeir wants to merge 2 commits intomainfrom
researcher/bench-lunar-regolith

Conversation

@SueHeir
Copy link
Copy Markdown
Owner

@SueHeir SueHeir commented Mar 17, 2026

Summary

  • New benchmark examples/bench_lunar_regolith/ validating JKR adhesion under reduced gravity
  • Column-collapse test: particles settle in a narrow column, walls removed, pile collapses
  • Final pile angle depends on friction, JKR surface energy, and gravity (Bond number scaling)
  • Parametric study script runs 8 cases: {Earth, Moon} × {0, 5, 20, 50 mJ/m²} surface energy

Test plan

  • cargo build --no-default-features --example bench_lunar_regolith compiles
  • Single-case demo runs to completion (~6s in release mode)
  • All 350 particles retained throughout simulation
  • Column walls correctly removed at collapse stage start
  • Full parametric study: python run_benchmark.py
  • Validation: python validate.py (angle increases with adhesion, steeper on Moon)

🤖 Generated with Claude Code

SueHeir and others added 2 commits March 16, 2026 19:16
Column-collapse benchmark validating JKR adhesion in reduced gravity.
Particles settle in a narrow column, then walls are removed and the pile
collapses. The final pile profile depends on friction, JKR surface energy,
and gravity (Bond number scaling).

Includes:
- main.rs: Two-stage simulation (settling + collapse) with wall removal
- config.toml: Default config for lunar gravity with moderate adhesion
- run_benchmark.py: Parametric study over {Earth,Moon} x {0,5,20,50 mJ/m^2}
- validate.py: Checks angle trends vs adhesion and gravity
- plot.py: Publication plots of angle vs surface energy and Bond number
- README.md: Physics documentation and usage instructions

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The column collapse approach did not produce a meaningful angle of repose —
non-cohesive particles just spread flat and hit the box walls. This rewrite:

- Uses rate-based insertion (10 particles/500 steps) from a narrow slot
  above center, forming a natural conical pile
- Uses shrink-wrap boundary in z to track pile height
- Measures angle by binning particles by |x|, finding surface heights,
  and fitting a line (atan of |slope|)
- Simplifies main.rs (no stage transitions or wall removal needed)
- Keeps same parametric study: {Earth, Moon} × {0, 5, 20, 50 mJ/m²}

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant