Thank you for your comment,
Initialize isn't hanging, just slow (up to ~10–17 min for our setup). But we hit a new serious issue tied to small particle radius (1mm):
After Initialize() succeeds, the run either:
crashes: GPU Assertion: an illegal memory access was encountered (DEMStaticDeviceUtilities.cuh:27), or
halts: On average a sphere has NNN contacts, more than the max allowance (100)
Tested (DEME 2.3.3, pip, single GPU, WSL Ubuntu 22.04, CUDA 12.8, 2306 particles, radius=1mm):
. Sweeping SetInitBinSize(MULT*radius): small/medium bin counts (2541, 432 bins) → crash
large bin (225–250 bins) → no crash, but avg-contacts error instead (809–2118, exceeds even a raised allowance of 2000).
. DEME's own default bin choice (no explicit SetInitBinSize, ~986k bins) → crash.
. Finer wall mesh (1580+2600 tris vs. 42+129) → same crash, so mesh coarseness isn't it.
. SetForceCalcThreadsPerBlock(128) (per your troubleshooting doc, for register-starved force kernels)
→ tried at both 986k bins and 432 bins → still crashes either way.
Also a related question on step size: we're using SetInitTimeStep around 1e-6 – 2e-7s for 1mm particles (scaled down from a larger-particle baseline).
Is there a recommended way to derive a safe/stable time step as a function of particle radius (e.g., some fraction of the Rayleigh time step),
rather than trial-and-error shrinking it every time we go smaller?
we're considering testing even smaller particles (sub-1mm) next. If there's a known best-practice combination of bin sizing + time step scaling for very small particles that avoids this crash, that would be extremely helpful before we go further.
Best regards
Sunho Park
2026년 7월 8일 수요일 오전 5시 53분 14초 UTC+9에 Ruochun Zhang님이 작성: