{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.calculatorx.com/schemas/physics.fluid.sudden_expansion.input.json",
  "title": "Sudden expansion — input",
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "mode": {
      "type": "string",
      "enum": [
        "head",
        "pressure",
        "velocity",
        "area"
      ],
      "description": "head (default), pressure, velocity, or area. Not minor-loss, Darcy, orifice, or Q=Av."
    },
    "v1": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Upstream speed in m/s. Alternative: v1_m_s."
    },
    "v1_m_s": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Upstream speed in m/s (query/UI). REST may send v1."
    },
    "v2": {
      "type": "number",
      "minimum": 0,
      "description": "Downstream speed in m/s. Required except velocity and area invert. Alternative: v2_m_s."
    },
    "v2_m_s": {
      "type": "number",
      "minimum": 0,
      "description": "Downstream speed in m/s (query/UI). REST may send v2."
    },
    "h": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Head loss in m. Required for velocity and area invert. Alternatives: hm, h_m."
    },
    "h_m": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Head loss in m (query/UI). REST may send h."
    },
    "A1": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Upstream area in m². Required for area invert."
    },
    "rho": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Density in kg/m³. Optional; default 1000."
    },
    "g": {
      "type": "number",
      "exclusiveMinimum": 0,
      "description": "Gravity in m/s². Optional; default 9.80665."
    }
  },
  "description": "Borda–Carnot h=(v1−v2)²/(2g). Not minor-loss K given, not Darcy f, not orifice C_d, not Q=Av. (calculation_version 1.0.0)"
}
