Skip to main content
Glama

dem_pack_submit

Submit a YADE discrete-element simulation to settle monodisperse spheres under gravity, measuring the random close-packing fraction and returning a job ID for background polling.

Instructions

Pour N monodisperse spheres into a box and settle them under gravity with the REAL YADE discrete-element engine, then measure the random close-packing fraction φ of the settled bed — gated against granular_screen('packing') (RCP band 0.60–0.66, well below the crystalline 0.7405). YADE is GPL-3.0 and is run ONLY in a subprocess (the parent never imports it — same arm's-length isolation as the GPL Elmer/OpenFOAM binaries). Runs OFF the MCP channel via a background job, so a multi-second settle never blocks the worker.

box_m is the [Lx, Ly] floor footprint (m; default [0.06, 0.06]); the column height is sized to hold n_spheres. friction_deg is the inter-particle friction angle; young_pa the contact modulus; density the grain density. Returns {job_id, status, cache_hit, oracle} (poll job_status / job_result); the job result carries the oracle band PLUS the measured {packing_fraction, in_band, n_settled, settled_height_m, mean_coordination, positions:[[x,y,z,r]]}. Absent YADE: {ok:false, reason, install, oracle}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
box_mNo
stepsNo
densityNo
radius_mNo
young_paNo
n_spheresNo
friction_degNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations present, the description carries the full burden and does so richly: YADE is GPL-3.0 and runs only in a subprocess, the job runs off the MCP channel so a multi-second settle never blocks the worker, and it documents the async job_id/status/cache_hit polling contract plus the absent-YADE failure payload.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and result are front-loaded in the first sentence, and the rest is information-dense rather than padded. The GPL arm's-length isolation aside is somewhat expansive for tool selection but arguably useful transparency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description fully specifies the return shape ({job_id, status, cache_hit, oracle}), the async polling path (job_status / job_result), the downstream result fields (packing_fraction, in_band, n_settled, settled_height_m, mean_coordination, positions), and the failure case. Nothing essential for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must supply all parameter meaning. It documents box_m (footprint and default), friction_deg (inter-particle friction angle), young_pa (contact modulus), and density (grain density), but steps, radius_m, and n_spheres (only implied via 'N monodisperse spheres') remain unexplained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb chain (pour, settle, measure) on a specific resource (DEM sphere packing of N monodisperse spheres with the YADE engine) and explicitly ties the result to granular_screen('packing') RCP band 0.60–0.66. An agent can immediately distinguish this from siblings like dem_flow_submit or granular_screen.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context: it is the packing-fraction oracle run off-channel as a background job, with a defined fallback when YADE is absent. However, it never explicitly contrasts when to pick this versus dem_flow_submit or pack_check, leaving alternative selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools