Skip to main content
Glama

fem_set_nonlinear_material

Attach an elastoplastic hardening curve to a linear FEM material and switch CalculiX to nonlinear solving for post-yield plastic analysis.

Instructions

Attach an elastoplastic (*PLASTIC) hardening curve to a linear FEM material and switch the CalculiX solve to nonlinear — the material-nonlinearity half of the nonlinear FEM path (contact_setup is the geometric/contact half). No new solver: this promotes the CCX MaterialNonlinearity / GeometricalNonlinearity flags the FEM path already exposes. base_material is the handle from fem_set_material (its YoungsModulus/PoissonRatio stay the elastic branch).

Give the post-yield curve either as yield_points ([[stress_MPa, plastic_strain], ...], first point at plastic_strain 0 = initial yield) or from yield_mpa (+ optional tangent_modulus_mpa linear-hardening slope and max_plastic_strain). With no tangent modulus the curve is elastic–perfectly-plastic and caps the stress at σ_y exactly. hardening: 'isotropic' (monotonic) or 'kinematic' (cyclic/Bauschinger). Set geometric_nonlinearity=true to combine plasticity with large deflection (*NLGEOM). ramp_increments sub-divides the load step so ccx's plastic return-mapping converges. Run fem_run + fem_results after; gate against plastic_collapse (perfectly-plastic stress saturates at σ_y, collapse at M_p).

Returns {handle, name, hardening, yield_points, n_points, solver_material_nonlinear, solver_geometric_nonlinear, ramp_increments}.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNoNonlinearMaterial
analysisYes
hardeningNoisotropic
yield_mpaNo
yield_pointsNo
base_materialYes
ramp_incrementsNo
max_plastic_strainNo
tangent_modulus_mpaNo
geometric_nonlinearityNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden and delivers: it clarifies 'No new solver' and that it 'promotes the CCX MaterialNonlinearity / GeometricalNonlinearity flags', explains that base_material comes from fem_set_material, details how elastic-perfectly-plastic behavior arises without a tangent modulus, and lists the exact return fields. This is unusually rich behavioral disclosure for a mutation/configuration tool.

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

Conciseness5/5

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

The purpose is front-loaded in the first sentence, and the remaining text is dense with useful technical detail. Every sentence contributes to correct invocation, parameter meaning, or workflow integration, and the length is justified by 10 parameters and zero annotation support.

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?

Given the tool's complexity, lack of annotations, and lack of an output schema, the description is substantially complete: it explains the solver-flag effect, parameter formats, the downstream fem_run/fem_results workflow, and the returned fields. The main omission is any explanation of the required 'analysis' parameter or how it relates to an FEM analysis object, which would help an agent call the tool correctly.

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 description coverage is 0%, so the description must compensate, and it does so for most parameters: it defines yield_points as [[stress_MPa, plastic_strain], ...] with first point at plastic_strain 0, explains yield_mpa with optional tangent_modulus_mpa and max_plastic_strain, and covers hardening, ramp_increments, and geometric_nonlinearity. However, the required 'analysis' parameter and the 'name' parameter are not described at all, leaving a gap in an otherwise strong semantic explanation.

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 uses the specific verb 'Attach' and names the exact resource: an elastoplastic (PLASTIC) hardening curve applied to a linear FEM material, while switching the solve to nonlinear. It explicitly distinguishes itself from its closest sibling by saying it is 'the material-nonlinearity half of the nonlinear FEM path (contact_setup is the geometric/contact half).' An agent can identify the tool's role without opening the schema.

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?

It states exactly when to use it (material nonlinearity, as opposed to geometric/contact nonlinearity handled by contact_setup) and describes the downstream workflow: 'Run fem_run + fem_results after; gate against plastic_collapse.' The alternative tool is named and its complementary condition is explicit.

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