dem_atom
Per-atom DEM data and material property management for MDDEM.
DemAtom
DemAtom stores per-atom DEM-specific fields as flat arrays:
radius: Vec<f64>— particle radiusdensity: Vec<f64>— particle density
Implements the AtomData trait (via #[derive(AtomData)]) for automatic MPI pack/unpack, bin-sort reordering, and restart serialization.
MaterialTable
MaterialTable manages named material types with per-material and per-pair precomputed properties:
- Per-material:
youngs_mod,poisson_ratio,restitution,friction - Per-pair:
beta_ij(damping coefficient from restitution),friction_ij(Coulomb friction coefficient)
Pair properties use geometric-mean mixing (LAMMPS convention): e_ij = sqrt(e_i * e_j), mu_ij = sqrt(mu_i * mu_j).
Configuration
[[]]
= "glass"
= 8.7e9
= 0.3
= 0.95
= 0.4
[[]]
= "steel"
= 200e9
= 0.28
= 0.8
= 0.3
Usage
DemAtomPlugin is included in GranularDefaultPlugins. It registers DemAtom with the AtomDataRegistry and builds MaterialTable from config at plugin build time.
Part of the MDDEM workspace.