Skip to content

Latest commit

 

History

History
63 lines (51 loc) · 4.53 KB

AGENTS.md

File metadata and controls

63 lines (51 loc) · 4.53 KB

AGENTS.md

This file provides guidance for AI coding agents working in this repository.

Repository purpose

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.

Repository layout

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 examples
  • insertion/ — 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 examples
  • particle_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 *.asx files — 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 .asx file for the pattern — e.g. basic/chute_wear/chute_wear.asx). Some directories contain several .asx variants 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 .asx script.
  • 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.*).

Working with .asx files

  • 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 .asx scripts (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).