Source: https://guthlabs.ai/docs/instruments/shear-moment-diagram-plotter/implementation/

instrument implementation / implementation-contract

# Shear & Moment Diagram Plotter implementation

A source-bound implementation contract for Shear & Moment Diagram Plotter; deployment and executable qualification remain separate.

Status: **VERIFIED_WITH_ERRATA**Lifecycle: **implementation-contract**

## Binding contract

This record describes what an executable surface must bind and validate. It does not claim that a public calculator, package, or production route is deployed.

**Record owner**: Guth Instruments

**Lifecycle**: verified-with-binding-errata

**Evidence ID**: t6-034

**Effect**: Computation or source lookup only

## Input and validation requirements

A zero-length beam with coincident supports produces a 0/0 reaction calculation and has no determinate beam solution. The instrument must reject that input; accepting it would create undefined reactions and invalid diagrams.

## Required corrections

````
[
  {
    "vector": 4,
    "field": "sampled M@1.75",
    "wrong": 2.9375,
    "correct": 2.8125,
    "cause": "own working computes 6.125-3.0625-0.25=2.8125 then field ships 2.9375"
  }
]
````

## Inspectable interface fixture

The sample below is evidence for interface and validation tests, not a production implementation.

````
{
  "inputs": {
    "beam_length_m": 6,
    "supports": [
      {
        "type": "pin",
        "position_m": 0
      },
      {
        "type": "roller",
        "position_m": 6
      }
    ],
    "loads": [
      {
        "type": "point_load",
        "position_m": 3,
        "magnitude_kN": 12,
        "direction": "downward"
      }
    ],
    "sign_convention": "sagging_M_positive",
    "integration": "exact_piecewise",
    "sampled_x_m": [
      0,
      2,
      3,
      "3+",
      "4",
      6
    ]
  },
  "expected_outputs": {
    "reactions": {
      "R_A_kN": 6,
      "R_B_kN": 6
    },
    "sampled_points": [
      {
        "x_m": 0,
        "V_kN": 6,
        "M_kNm": 0
      },
      {
        "x_m": 2,
        "V_kN": 6,
        "M_kNm": 12
      },
      {
        "x_m": "3-",
        "V_kN": 6,
        "M_kNm": 18
      },
      {
        "x_m": "3+",
        "V_kN": -6,
        "M_kNm": 18
      },
      {
        "x_m": 4,
        "V_kN": -6,
        "M_kNm": 12
      },
      {
        "x_m": 6,
        "V_kN": -6,
        "M_kNm": 0
      }
    ],
    "Mmax": {
      "location_m": 3,
      "value_kNm": 18,
      "location_note": "continuous M; V changes from +6 to -6 at x=3"
    }
  },
  "working": "Equilibrium: R_A+R_B-12=0. Taking moments about A: 6R_B-12(3)=0, so R_B=36/6=6 kN and R_A=12-6=6 kN. For 0<=x<3, w=0, so V=6 kN and M(x)=6x; M(2)=6(2)=12 kN·m and M(3-)=6(3)=18 kN·m. At x=3, the downward point load causes V(3+)=V(3-)-12=6-12=-6 kN, while M is continuous, so M(3+)=18 kN·m. For 3<x<=6, M(x)=18-6(x-3); M(4)=18-6(1)=12 kN·m and M(6)=18-6(3)=0. Since V is positive before x=3 and negative after it, Mmax=18 kN·m at x=3."
}
````

## Other records

[01**Overview**](<https://guthlabs.ai/docs/instruments/shear-moment-diagram-plotter/>)[02**Mechanism**](<https://guthlabs.ai/docs/instruments/shear-moment-diagram-plotter/mechanism/>)[04**Qualification**](<https://guthlabs.ai/docs/instruments/shear-moment-diagram-plotter/qualification/>)

## Sources and evidence

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

- `VERIFIED_LEDGER.json`

- `evidence-tranche6/tranche6-results.json`

- `tranche errata record`
