Metadata-Version: 2.4
Name: milldem
Version: 0.3.0
Summary: Cross-platform soft-sphere DEM for tumbling-mill charge motion and power (2D charge shape + thin-3D-slab power validated vs Hogg-Fuerstenau; no C++/WSL).
Author: Felipe Santibanez-Leal
License: MIT
Project-URL: Homepage, https://github.com/fsantibanezleal/CAOS_MillDEM
Project-URL: Repository, https://github.com/fsantibanezleal/CAOS_MillDEM
Project-URL: Changelog, https://github.com/fsantibanezleal/CAOS_MillDEM/blob/main/CHANGELOG.md
Keywords: DEM,discrete element method,tumbling mill,SAG,ball mill,comminution,charge motion,mineral processing
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Physics
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: numpy<2.3,>=2.0
Requires-Dist: scipy>=1.13
Provides-Extra: jit
Requires-Dist: numba>=0.61; extra == "jit"
Provides-Extra: train
Requires-Dist: numba>=0.61; extra == "train"
Requires-Dist: torch-geometric>=2.5; extra == "train"
Requires-Dist: matplotlib>=3.8; extra == "train"
Requires-Dist: tqdm>=4.66; extra == "train"
Provides-Extra: dev
Requires-Dist: pytest>=8.0; extra == "dev"
Requires-Dist: matplotlib>=3.8; extra == "dev"
Requires-Dist: build>=1.0; extra == "dev"

# CAOS_MillDEM

A cross-platform 2D soft-sphere **discrete element method (DEM)** engine for tumbling-mill charge motion and
power. No C++ toolchain, no WSL: pure NumPy with an optional Numba JIT and an optional Torch-CUDA path.

It simulates a rotating mill disc slice (the Govender et al. 2015 reduced setup, width = one particle
diameter) with a soft-sphere contact law (linear Hookean or Hertzian, Coulomb friction, restitution damping)
and reports the DEM charge shape (toe/shoulder), the motion regime (cascading / cataracting / centrifuging),
and the net power via the van Nierop (2001) torque route `P = 2*pi*T*N`.

```python
from milldem import simulate, MillConfig
m = simulate(MillConfig(diameter_m=5.0, phi_c=0.75, fill=0.30), sim_time=2.0)
print(m.net_power_kw, m.regime, m.toe_deg, m.shoulder_deg)
```

CLI: `milldem run --D 5 --phi 0.75 --J 0.30 --time 2.0 --json out.json`

See [`docs/VALIDATION.md`](docs/VALIDATION.md) for the honest validated-scope statement, and `docs/` for the contact-model equations, the power routes, and the validation against the classical
Hogg-Fuerstenau and Morrell power models. MIT licensed.
