{
  "capability_id": "mechanical.statics.transverse_shear",
  "calculation_version": "1.0.0",
  "protocol_version": "1.0.0-proposed",
  "protocol_document_status": "proposed",
  "verification_revision": "2026-09-27.o2-o3",
  "oracle": {
    "class": "O3",
    "library": "mpmath 1.4.1",
    "mpmath_dps": 80,
    "backend": null,
    "rounding": null,
    "generator_id": "transverse-shear-mpmath-o3",
    "generator_version": "1.0.0",
    "generator_sha256": "566db03c8fcdea4a011224f7b3450a12680235b95d74b30ceaea70b113bb207e",
    "table_sha256": "97f190e8c8a16b73cebeabb44c92f7e1f3f56eb49c405d014773a423755ac33e",
    "seed": "20260927.transverse-shear-o3",
    "independent_of_iut": true
  },
  "claim_scope": "O2: tau vs a separate-module identity (≤2 ULP). Not a rectangle from b·h, not a circle, and not beam deflection. ≤2 ULP vs O3 applies only to the published tabulated transverse-shear vectors.",
  "commands": {
    "regenerate_table": "python3 generate-transverse-shear-o3.py",
    "regenerate_table_repo": "python3 scripts/lib/cvp/oracles/generate-transverse-shear-o3.py",
    "independent_rest": "Compare POST /api/v1/calc/transverse-shear against /developers/cvp/reproduce/transverse-shear-o3-tables.json",
    "run_cvp": "npm run cvp:run -- --capability mechanical.statics.transverse_shear",
    "rest_example": "POST https://www.calculatorx.com/api/v1/calc/transverse-shear"
  },
  "public_files": {
    "table": "/developers/cvp/reproduce/transverse-shear-o3-tables.json",
    "table_url": "https://www.calculatorx.com/developers/cvp/reproduce/transverse-shear-o3-tables.json",
    "generator": "/developers/cvp/reproduce/generate-transverse-shear-o3.py",
    "generator_url": "https://www.calculatorx.com/developers/cvp/reproduce/generate-transverse-shear-o3.py",
    "checker": "/developers/cvp/reproduce/check-math-o3-rest.py",
    "checker_url": "https://www.calculatorx.com/developers/cvp/reproduce/check-math-o3-rest.py",
    "manifest": "/evidence/mechanical.statics.transverse_shear/1.0.0.cvp.json",
    "this_file": "/evidence/mechanical.statics.transverse_shear/reproduce.json"
  },
  "result_summary": {
    "passed": 8,
    "total": 8,
    "failed": 0,
    "max_error_ulp": 0,
    "threshold_ulp": 2,
    "max_threshold_ulp": 2
  },
  "vectors": [
    {
      "id": "o3-unit",
      "kind": "unit",
      "inputs": {
        "V": "12",
        "Q": "4",
        "I": "8",
        "b": "2"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "tau": 3,
        "V": 12,
        "Q": 4,
        "I": 8,
        "b": 2
      },
      "actual": {
        "model": "transverse_shear",
        "V": 12,
        "Q": 4,
        "I": 8,
        "b": 2,
        "tau": 3,
        "solver": "jourawski",
        "convention": "τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-alias",
      "kind": "alias",
      "inputs": {
        "shear": "24",
        "first_moment": "6",
        "Ix": "10",
        "t": "3"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "tau": 4.8,
        "V": 24,
        "Q": 6,
        "I": 10,
        "b": 3
      },
      "actual": {
        "model": "transverse_shear",
        "V": 24,
        "Q": 6,
        "I": 10,
        "b": 3,
        "tau": 4.8,
        "solver": "jourawski",
        "convention": "τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-awkward",
      "kind": "awkward",
      "inputs": {
        "V": "13.7",
        "Q": "2.5",
        "I": "7.2",
        "b": "1.8"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "tau": 2.642746913580247,
        "V": 13.7,
        "Q": 2.5,
        "I": 7.2,
        "b": 1.8
      },
      "actual": {
        "model": "transverse_shear",
        "V": 13.7,
        "Q": 2.5,
        "I": 7.2,
        "b": 1.8,
        "tau": 2.642746913580247,
        "solver": "jourawski",
        "convention": "τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-neg",
      "kind": "signed",
      "inputs": {
        "V": "-12",
        "Q": "4",
        "I": "8",
        "b": "2"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "tau": -3,
        "V": -12,
        "Q": 4,
        "I": 8,
        "b": 2
      },
      "actual": {
        "model": "transverse_shear",
        "V": -12,
        "Q": 4,
        "I": 8,
        "b": 2,
        "tau": -3,
        "solver": "jourawski",
        "convention": "τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-statical",
      "kind": "statical",
      "inputs": {
        "V": "50",
        "statical_moment": "0.01",
        "I": "0.002",
        "b": "0.05"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "tau": 5000,
        "V": 50,
        "Q": 0.01,
        "I": 0.002,
        "b": 0.05
      },
      "actual": {
        "model": "transverse_shear",
        "V": 50,
        "Q": 0.01,
        "I": 0.002,
        "b": 0.05,
        "tau": 5000,
        "solver": "jourawski",
        "convention": "τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-small",
      "kind": "small",
      "inputs": {
        "V": "1",
        "Q": "0.1",
        "I": "0.2",
        "b": "0.5"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "tau": 1,
        "V": 1,
        "Q": 0.1,
        "I": 0.2,
        "b": 0.5
      },
      "actual": {
        "model": "transverse_shear",
        "V": 1,
        "Q": 0.1,
        "I": 0.2,
        "b": 0.5,
        "tau": 1,
        "solver": "jourawski",
        "convention": "τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-large",
      "kind": "large",
      "inputs": {
        "V": "1e5",
        "Q": "0.02",
        "I": "0.01",
        "b": "0.1"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "tau": 2000000,
        "V": 100000,
        "Q": 0.02,
        "I": 0.01,
        "b": 0.1
      },
      "actual": {
        "model": "transverse_shear",
        "V": 100000,
        "Q": 0.02,
        "I": 0.01,
        "b": 0.1,
        "tau": 2000000,
        "solver": "jourawski",
        "convention": "τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    },
    {
      "id": "o3-thickness",
      "kind": "thickness",
      "inputs": {
        "V": "30",
        "Q": "5",
        "I": "15",
        "thickness": "2"
      },
      "expected_f64": {
        "oracle_layer": "analytic",
        "tau": 5,
        "V": 30,
        "Q": 5,
        "I": 15,
        "b": 2
      },
      "actual": {
        "model": "transverse_shear",
        "V": 30,
        "Q": 5,
        "I": 15,
        "b": 2,
        "tau": 5,
        "solver": "jourawski",
        "convention": "τ = VQ/(I b) at one line across the section. The sign of V is the sign of τ. Q, I, and b are inputs. A rectangle built from width and height is its own page."
      },
      "error_ulp": 0,
      "threshold_ulp": 2,
      "ok": true
    }
  ]
}
