Guth
NewsDocs
Page actions
View as Markdown ↗
Explore MCP tools ↗

instrument mechanism / verified-clean

Diffraction Grating Calculator mechanism

The inspectable method record for Diffraction Grating Calculator, kept separate from implementation and qualification.

Status: VERIFIED_CLEANLifecycle: verified-clean

Model scope

NEEDS_REVIEW because the incidence geometry is unspecified: the supplied equation assumes normal incidence, while oblique incidence requires the incident-angle term. The angle unit and signed-versus-magnitude output convention are also unspecified. The honest_label field is n/a; the interface should honestly state the normal-incidence assumption, unit requirements, integer-order restriction, and non-propagating-order behavior.

  • The stated equation d sin(theta) = m lambda is correct only for normal incidence and a transmission/reflection geometry with the appropriate sign convention; the general grating equation is d(sin(theta_m) - sin(theta_i)) = m lambda.
  • To compute an angle, the implementation must explicitly use theta_m = arcsin(m lambda / d).
  • The maximum observable integer order is |m|max = floor(d/lambda) for positive d and lambda, subject to the diffraction condition |m lambda/d| <= 1.
  • The specification does not define whether reported angles are signed angles, positive magnitudes, or both symmetric angles ±theta for a nonzero order.
  • The specification does not state the angle output unit; the test vectors below assume degrees.

Units and conventions

  • d and lambda must use identical length units before evaluating m lambda/d.
  • When d is supplied in lines/mm, the spacing is d = 1/(lines per mm) mm; for example, 800 lines/mm = 0.00125 mm = 1250 nm.
  • m is a dimensionless integer diffraction order, including m = 0.
  • The test-vector angles are reported in degrees, with arcsin values rounded to 4 decimal places where necessary.
  • The calculations assume normal incidence, so theta_i = 0.

Inspectable vector

One of 4 source-bound review vectors:

{
  "inputs": {
    "grating_spacing": {
      "value": 1,
      "unit": "micrometres"
    },
    "wavelength": {
      "value": 500,
      "unit": "nanometres"
    },
    "order": 1
  },
  "expected_outputs": {
    "diffraction_angles_degrees": [
      -30,
      30
    ],
    "maximum_visible_order": 2
  },
  "working": "Convert d: 1.0 micrometre = 1000 nm. Compute sin(theta) = m lambda/d = (1 x 500 nm)/1000 nm = 0.5. Therefore theta = arcsin(0.5) = 30 degrees, giving symmetric angles -30 degrees and +30 degrees. Maximum order = floor(d/lambda) = floor(1000/500) = floor(2) = 2."
}

Failure boundary

BREAK_CLAIMED · SELF_FLAGGED

A zero grating spacing produces division by zero and must be rejected. The specification also requires an explicit branch for orders with |mλ/d|>1, which have no real diffraction angle, and an explicit sign convention for negative orders.

Other records

Sources and evidence

These pointers bind the page to evidence. They do not grant authority or collapse verification into deployment.

  • VERIFIED_LEDGER.json
  • evidence-tranche5/tranche5-results.json
  • BOUNDARY_HAZARD_CATALOG.json