Skip to main content
Glama

femm_add_boundary

Define boundary conditions for a FEMM physics model and assign them to selected segments or arcs, including periodic, fixed voltage, heat flux, and sliding-band gap pairs.

Instructions

Define a boundary condition for the current physics and (optionally) assign it.

Magnetics bc_type (mi_addboundprop, 12 args): prescribed_a (A = a0 + a1x + a2y, phase phi; A=0 is the usual outer boundary), small_skin_depth (mu = relative permeability, sigma MS/m), mixed (c0, c1 complex OK), strategic_dual_image, periodic, antiperiodic, periodic_air_gap / antiperiodic_air_gap (sliding band: inner_angle/outer_angle = rotor/stator shift in degrees). Assign it to BOTH concentric arcs of the gap annulus and put a "" block label inside the annulus (verified: without it the solver stops with "a region has no material assigned"). Electrostatics: fixed_voltage (value = V), mixed (c0, c1), surface_charge (flux = C/m^2), periodic, antiperiodic. Currentflow: fixed_voltage (value), mixed, surface_current (flux), periodic, antiperiodic. Heatflow: fixed_temperature (value = K), heat_flux (flux W/m^2), convection (h W/m^2K, t_inf K), radiation (beta emissivity, t_inf_rad K), periodic, antiperiodic. segments / arcs: [[x, y], ...] points ON the segments/arcs (e.g. midpoints) to assign this boundary to (each picks the nearest). Periodic pairs need one boundary per pair, assigned to both sides. For an unbounded open boundary see femm_call('mi_makeABC').

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hNo
a0No
a1No
a2No
c0No
c1No
muNo
phiNo
arcsNo
betaNo
fluxNo
nameYes
sigmaNo
t_infNo
valueNo
bc_typeNoprescribed_a
sessionNomain
segmentsNo
t_inf_radNo
arc_maxsegNo
inner_angleNo
outer_angleNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations the description carries the full burden and delivers high-value behavioral facts: the verified requirement to place a '<No Mesh>' block label inside the gap annulus or the solver aborts with 'a region has no material assigned', that assignment resolves each point to the nearest segment/arc, and the periodic-pairing pairing rule. It omits return behavior, idempotency, and session scope.

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 text is long but deliberately structured per physics and front-loaded with the one-line purpose; the dense bc_type inventories are justified given 22 parameters and zero schema descriptions. Minor redundancy (periodic/antiperiodic repeated per physics) is a small cost.

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?

For a 22-param mutation tool with no annotations, no output schema, and 0% schema coverage, the description supplies the argument semantics, the assignment workflow, and a critical failure-mode warning. Gaps remain around arc_maxseg/session and the interaction with femm_set_segment_prop, but nothing essential to calling it 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% across 22 parameters, so the description must compensate, and it largely does: it explains a0/a1/a2/phi, mu/sigma, c0/c1, value, flux, h/t_inf, beta/t_inf_rad, inner_angle/outer_angle, and the segments/arcs point-list semantics. Only arc_maxseg and session are left undefined.

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 and resource ('Define a boundary condition') and adds the important qualifier that assignment is optional, which tells the agent this tool both creates and can bind the property. It is clearly distinguished from geometry/property siblings like femm_set_segment_prop and femm_add_block_label.

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 explicit conditional routing: which bc_type applies to magnetics vs electrostatics vs currentflow vs heatflow, the rule that periodic pairs need one boundary per pair assigned to both sides, and it names an alternative for open boundaries ('see femm_call(\'mi_makeABC\')'). It does not state when not to use this tool relative to other property-setting siblings.

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