This file provides guidance for AI coding agents working in this repository.
This repo is a curated collection of example simulations for Aspherix, a DEM (Discrete Element Method) particle-simulation solver by DCS Computing GmbH. There is no application source code here — each subdirectory is a self-contained simulation case consisting of an Aspherix input script, metadata, and any supporting geometry/data files. This is not a software project to build/compile/test in the traditional sense; changes here are almost always about adding, fixing, or documenting example cases.
Examples are grouped by topic into top-level directories:
basic/— minimal starter examples (e.g. chute wear, conveyor)contact_models/— particle-particle contact law examples (bonded particles, cohesion, hysteresis)heat_transfer/— thermal simulation examplesinsertion/— particle insertion methods (streams, regions, packing, growing particles)mesh_handling/— mesh/geometry features (moving meshes, servo walls, 6DOF, deformation)particle_distribution/— particle size/shape distribution examplesparticle_shape/— non-spherical particle shapes (convex, concave, multisphere, superquadric, fibers)post_processing/— output/analysis features (residence time, stress-strain, contact networks)simulation_control/— simulation control examples (e.g. bed compaction)advanced/— more complex/composite examples, including external coupling (Elmer FEM, one-way CFD coupling via CSV/point-cloud data), powder compaction, laser, electrical conductivity
Each top-level category has its own README.md listing and briefly describing every case inside
it — read that first when looking for an example on a given topic. Each individual case directory
also has its own README.md (what the case demonstrates, key .asx commands used, and the role of
its supporting files) — read that before the .asx script itself for a quick orientation.
Each example directory typically contains:
- One or more
*.asxfiles — the Aspherix input script(s) in Aspherix's own DSL. This is the actual "code" of an example: it defines materials, contact models, geometry (meshes or primitive walls), particle templates/distributions, insertion, and simulation run commands, in a declarative, line-oriented syntax (see any.asxfile for the pattern — e.g.basic/chute_wear/chute_wear.asx). Some directories contain several.asxvariants of the same case (e.g.advanced/one_way_coupling/has 6 variants for different drag-law/particle-shape combinations). example.xml— internal cataloguing metadata (not important to document or maintain by hand).meshes/— STL (and occasionally other) geometry files referenced by the.asxscript.data/— auxiliary input data referenced by the script: particle template definitions (e.g.particle3.txt), multisphere clump definitions (ms_*.txt), or external field/coupling data (e.g.cfd_field.csv,pointCloud.txt).
advanced/finite_element_coupling/ additionally couples to Elmer FEM and includes Elmer-specific files
(data/elmer_script.sif, ELMERSOLVER_STARTINFO, meshes/mesh.*).
- These are plain-text, whitespace/line-based scripts, not a general-purpose programming language —
each line is a command (e.g.
particle_shape,simulation_domain,material_properties,particle_contact_model,mesh,particle_template,insertion,simulate). Comments start with#. - Scripts follow a consistent ordering convention: particle shape → domain → materials → contact
models → mesh/geometry loading → particle templates/distribution → insertion → output settings →
simulate. Preserve this convention when editing or adding examples. - File paths inside
.asxscripts (meshes/...,data/...) are relative to the script's own directory — keep referenced files alongside the script. - There is no local Aspherix binary/build step in this repo; these scripts are meant to be run against a separately-installed Aspherix solver. Do not attempt to "build" or "run tests" here — validate changes by checking internal consistency (referenced files exist, syntax matches sibling examples).