Skip to main content
Glama

Acoustic Radiation Submit

acoustic_radiation_submit

Submit an exterior acoustics boundary-element solve for radiation or scattering on a sphere or FreeCAD model, returning a job ID for async results.

Instructions

Exterior-acoustics boundary-element solve on Bempp, asynchronous (OFF the MCP channel) — the real-field twin of the analytic monopole_sphere / rigid_sphere_scattering oracles. Bempp is MIT but needs meshio>=4 (clashing with solidspy's meshio==3 in the shared venv), so it is run ONLY out-of-process via ankusdrive/bempp_runner.py under a dedicated .venv-bempp; degrades to {ok:false, reason, install} when no bempp venv resolves.

problem='radiation' (default): a pulsating (monopole) sphere of radius a_m, uniform surface velocity u_amp at freq_hz, into air (rho,c), mesh size h (fraction of a). The result's radiated_power_w / farfield_pressure_x_r vs the monopole_sphere oracle (ratio≈1) IS the gate. problem='scattering': a rigid sphere insonified by a unit plane wave; sweep ka_list, report the far-field form function at theta_deg angles (h_per_wl elements/wavelength) — gated against the rigid_sphere_scattering Mie oracle. problem='mesh_solve': a radiation solve on a REAL FreeCAD model (handle), tessellated to a surface mesh here and fed to the BEM engine (scale_to_m mm→m, linear_deflection mesh tolerance).

Returns the degradation dict, or {job_id, status, cache_hit}; poll job_result for {ok, ka, radiated_power_w, farfield_pressure_x_r, surface_pressure_abs_mean, n_elements, wall_s} (radiation/mesh_solve) or {results:[{ka, form_function_abs{}, backscatter_abs, n_elements}]} (scattering).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cNo
hNo
a_mNo
r_mNo
rhoNo
modelNo
u_ampNo
freq_hzNo
ka_listNo
problemNoradiation
timeoutNo
h_per_wlNo
theta_degNo
scale_to_mNo
linear_deflectionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations only provide readOnlyHint=false and destructiveHint=false, so the description carries the burden of explaining async out-of-process behavior, dependency conflicts, and degradation on missing venv. It does not fully disclose what happens to stale jobs, cache behavior, or potential resource consumption, but it covers the key operational facts.

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 dense and information-rich, but it is fairly long and packs many details into a single paragraph without clear structure. It front-loads the core purpose and async caveat, though the parenthetical details about meshio and venv could be more compact. Overall, every sentence adds value, so it earns a 4 rather than a 5 for structure.

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

Completeness4/5

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

The description covers the three modes, the gating oracles, return shapes, degradation behavior, and the relationship to acoustic_fem_submit. However, there is no output schema and the description doesn't explicitly explain how the returned job_id should be polled or what timeout means in the async context. For a 15-parameter asynchronous tool with no output schema, it is close but not fully complete.

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

Parameters4/5

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

Schema coverage is 0%, so the description must compensate. It explains many parameters in context: a_m, u_amp, freq_hz, rho, c, h, ka_list, theta_deg, h_per_wl, model, scale_to_m, linear_deflection, problem. It still leaves timeout and some optional fields' exact ranges unexplained, but the major usage semantics are covered.

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 that this tool performs an exterior-acoustics boundary-element solve on Bempp, covering three problem modes (radiation, scattering, mesh_solve), and contrasts itself with analytic oracles and the acoustic_fem_submit sibling. It is specific about the resource and the operation.

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 explains when to use this tool: for exterior-acoustics BEM problems, and explicitly says it is the twin of monopole_sphere and rigid_sphere_scattering analytic oracles, with gating criteria. It also warns when it should not be used or when it degrades to a failure dict due to missing Bempp venv, which effectively guides an agent away from relying on it in unsupported environments.

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