Skip to main content
Glama

DEM Flow Submit

dem_flow_submit

Simulate hopper discharge of spheres with YADE discrete-element method, measure the steady mass-flow rate, and check the Beverloo 2.5 scaling exponent.

Instructions

Discharge spheres from a flat-bottomed hopper box through a central orifice with the REAL YADE discrete-element engine and measure the steady mass-flow rate — gated against granular_screen('beverloo') (flow ∝ outlet^2.5). Submit two outlet_m sizes and feed the (outlet, flow) pair to granular_screen('beverloo_exponent') to check the Beverloo 2.5 exponent (vs the Torricelli 2.0 of a draining fluid). YADE is GPL-3.0 and is run ONLY in a subprocess; runs OFF the MCP channel via a background job.

box_m is the [Lx, Ly, Lz] hopper box (m; default [0.10, 0.10, 0.20]); outlet_m the central orifice diameter; settle_steps/flow_steps the DEM step budgets. Returns {job_id, status, cache_hit, oracle}; the job result carries the Beverloo oracle PLUS {mass_flow_kg_s, n_discharged, discharge_time_s, positions:[...]}. Absent YADE: {ok:false, reason, install, oracle}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
box_mNo
densityNo
outlet_mNo
radius_mNo
young_paNo
n_spheresNo
flow_stepsNo
friction_degNo
settle_stepsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false, openWorldHint=false, destructiveHint=false. The description adds valuable behavioral traits: YADE is GPL-3.0, runs only in a subprocess, operates off the MCP channel via a background job, returns a job_id, and handles the case of absent YADE with an ok:false payload. This goes well beyond annotations and helps the agent manage expectations.

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?

The description is detailed and uses structured formatting (backticks for parameters, clear return types). It front-loads the main purpose before diving into specifics. While it is longer than minimal, it earns its length by covering purpose, workflow, execution model, and return values without fluff.

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

Completeness3/5

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

Given the tool's complexity (9 parameters, no output schema, no parameter descriptions in schema), the description provides essential context: return format (job_id, status, cache_hit, oracle, and result details), error handling for absent YADE, and the Beverloo workflow. However, it fails to document five of the nine parameters and does not describe how the simulation is configured (e.g., density, friction). This leaves an agent with gaps when setting up a proper run.

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 compensate. It explains box_m (as [Lx, Ly, Lz] with default), outlet_m (orifice diameter), and settle_steps/flow_steps as DEM step budgets. However, it omits density, radius_m, young_pa, n_spheres, and friction_deg, which are critical simulation parameters. The partial explanation helps but is not comprehensive.

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?

The description clearly states a specific purpose: discharging spheres from a hopper through an orifice using the YADE engine and measuring mass-flow rate. It also distinguishes itself from likely siblings like dem_pack_submit by focusing on flow-rate measurement and referencing granular_screen gating. The verb-resource pair is specific and not a tautology.

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?

The description provides explicit usage guidance: 'Submit two outlet_m sizes' and feed results to granular_screen('beverloo_exponent'). It also warns that YADE runs in a subprocess and off the MCP channel, implying asynchronous handling. While it doesn't explicitly name alternatives or state when not to use this tool, the workflow is clear enough for an agent to know how to invoke it.

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