Skip to main content
Glama

Impact Dynamics Submit

impact_dynamics_submit

Simulate a part drop onto a rigid floor to compute transient impact forces, stresses, and failure checks. Returns a job ID to poll for results.

Instructions

Transient DROP / IMPACT dynamics — the solve drop_impact escalates to. Meshes body, flies it at velocity_m_s (or the free-fall speed of drop_height_mm — exactly one) along direction into a fixed rigid floor through penalty contact, and integrates the motion with CalculiX *DYNAMIC. Async: returns a job — poll job_result. Degrades to {ok:false, reason, install} when ccx is absent.

direction is the way the part TRAVELS: '-z' (default), '+x', … or any 3-vector — [-1,-1,-1] is a corner drop (the floor turns, the part is not re-meshed). Material from material or explicit youngs_mpa/poisson/density_kg_m3 (required, no defaults — the answer scales with √(E·ρ)). yield_mpa arms the stress criterion; plastic=True (+ tangent_mpa, bilinear) lets it yield instead. deceleration_limit_g arms the fragility criterion. method: 'implicit' (default; HHT-α, ccx steps adaptively — right for ms-scale drops) | 'explicit' (central difference at the stable step — for stress-wave events ≲ 100 µs; first-order tets). time_step_s on an implicit run switches to a FIXED step: several times faster where contact comes on smoothly, but ccx stops if an increment diverges (a flat face landing all at once does). duration_s defaults to free flight + 10 wave round trips along the drop — enough for a stiff body; a compliant one needs more, and the gate says so. samples is the single output cadence ccx allows (force history AND stress frames; default sized to the mesh). contact: 'auto' (default) | 'face' | 'node' — measured: ccx's face-to-face penalty never engages a corner strike (the part falls through) and its node-to-face one locks up on a broad flat landing, so 'auto' uses face contact down to a 45° edge and node contact for anything sharper. engagement_lag_mm reports how far the strike point sank before the contact pushed back.

Validated against the exact St-Venant bar (bar_impact): face force ρ·c₀·v₀·A, contact duration 2L/c₀, restitution 1 and the plastic-wave cap all within ~1–3 %. A real part is banded (~20 %): peak force depends on the penalty stiffness and mesh, a stress peak AT the strike point is mesh-dependent, and a sharp wave front rings ~20 % high. No friction, failure or erosion.

Returns the degradation dict, or {job_id, status, cache_hit}; poll job_result for {ok, returncode, solver, case_dir, nodes, tets, method, direction, velocity_m_s, drop_height_mm, duration_s, time_step_s, mass_g, strike_node, contact_faces, contact, strike_alignment, plastic, bar_stress_mpa, peak_force_n, peak_force_median3_n, peak_force_time_s, peak_g, impulse_n_s, contact_start_s, contact_duration_s, separated, arrested, rebound_velocity_m_s, restitution, energy_end_ratio, energy_min_ratio, mass_check, samples, contact_samples, engagement_lag_mm, peak_von_mises_mpa, peak_stress_node, peak_stress_time_s, peak_stress_location_mm, force_history, gate} where gate is {pass, score, fidelity:"solve", band_pct, checks, utilisation, warnings} — a run that ends before the fall is arrested, or whose energy grows, FAILS.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYes
gap_mmNo
methodNoimplicit
contactNoauto
gravityNo
plasticNo
poissonNo
samplesNo
materialNo
directionNo-z
yield_mpaNo
duration_sNo
youngs_mpaNo
tangent_mpaNo
time_step_sNo
velocity_m_sNo
density_kg_m3No
char_length_mmNo
drop_height_mmNo
max_time_step_sNo
deceleration_limit_gNo
contact_stiffness_mpa_mmNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.5.6

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false, openWorldHint=false, destructiveHint=false — they carry almost no behavioral burden. The description discloses: async job submission, degradation to {ok:false, reason, install} when ccx is absent, the fact that 'auto' contact switches based on edge angle, the fixed-step divergence failure mode, the ~20% banding accuracy caveats, and the gate failure conditions (run ends before arrest or energy grows). It also discloses that no friction/failure/erosion is modeled. This is exemplary behavioral disclosure.

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 long but information-dense; every sentence adds a distinct fact. It is front-loaded with the core purpose and async behavior, then parameter semantics, then validation/accuracy caveats, then return shape. The only minor deduction is that the return-value enumeration is very long and could arguably be summarized, but it is valuable for an agent parsing job_result.

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?

For a 22-parameter async solver with no output schema, the description is remarkably complete: it covers input semantics, defaults, failure modes, accuracy expectations, validation basis, and the full return payload including the gate object. The only thing not detailed is the exact job_status polling mechanics, but the description explicitly says 'poll job_result' and sibling job_status/job_result tools exist. Nothing an agent needs to call this correctly is missing.

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

Parameters5/5

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

Schema description coverage is 0%, so the description carries the full burden of explaining 22 parameters. It explains the velocity_m_s vs drop_height_mm exclusivity ('exactly one'), the direction semantics ('the way the part TRAVELS', with corner-drop example), material vs explicit youngs/poisson/density, yield_mpa and plastic/tangent_mpa, deceleration_limit_g, method, time_step_s, duration_s default logic, samples, contact modes, and engagement_lag_mm. Nearly every parameter is given meaning beyond its name and type.

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 opens with a specific verb and resource: 'Transient DROP / IMPACT dynamics — the solve `drop_impact` escalates to.' It clearly distinguishes this tool as the async submit variant of drop_impact, and the first sentence names the sibling it escalates from. The scope (meshes body, flies it at velocity or drop height into a fixed rigid floor, integrates with CalculiX *DYNAMIC) is concrete and unambiguous.

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

Usage Guidelines5/5

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

The description explicitly states when to use this tool vs alternatives: it is the solve that `drop_impact` escalates to, and it is async ('returns a job — poll job_result'). It also gives method-selection guidance ('implicit' for ms-scale drops, 'explicit' for stress-wave events ≲ 100 µs), and explains when fixed time_step_s is appropriate. The contact mode guidance ('auto' vs 'face' vs 'node') is also usage-oriented. This is rich, actionable routing information.

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