{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.calculatorx.com/schemas/physics.fluid.trapezoid_specific_force.input.json",
  "title": "Trapezoidal specific force — input",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "force",
        "depth"
      ],
      "description": "force (default, M from y) or depth (y from M, subcritical y>yc by default). Not sequent y2. Not trapezoid E."
    },
    "b": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Bottom width in m. Required. Alternatives: width, b_m, channel_width. Do not send side-weir B."
    },
    "z": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Side slope run/rise (z>0). Required. Alternatives: z_side, side_slope, m. z=0 is rectangular /calc/physics/specific-force. Do not send a bank angle."
    },
    "Q": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Volume flow in m³/s. Required. Alternatives: flow, Q_m3_s."
    },
    "y": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Depth in m. Required for force. Alternatives: y_m, depth. Do not send y1, y2, yn, or yc."
    },
    "M": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Specific force in m². Required for depth. Alternatives: M_m2, specific_force, momentum. Do not send E."
    },
    "g": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Gravity in m/s². Optional; default 9.80665. Alternatives: g_m_s2."
    },
    "branch": {
      "type": "string",
      "description": "Depth invert branch: omit or subcritical (y>yc); super|supercritical|alternate (y<yc)."
    }
  },
  "required": [
    "b",
    "z",
    "Q"
  ],
  "description": "Trapezoid specific force M = Q²/(gA) + A ȳ on A=(b+z y)y with ȳ=y(3b+2zy)/(6(b+zy)). Not rectangular ȳ=y/2, not trapezoid sequent y2, not trapezoid specific energy E, not Manning n, not Q=Av. (calculation_version 1.0.0)"
}
