{
 "about": {
  "date": "2026-10-24",
  "python": "3.12.14",
  "numpy": "2.3.5",
  "oracle": "NumPy float64: Van 't Riet's form between two settings with Hughmark's gassed-power ratio (Yawalkar et al. 2002, eq. 2), and log-log interpolation of readings, restated from the method statement",
  "method": {
   "id": "kla-value-scaled"
  },
  "ruling": "docs/board/memos/2026-10-24-cso-bioreactor-stage.md, addition A1",
  "generator": "pipeline/bioreactor-simulator/reference-kla-scaling.py",
  "generatorSha256": "1f93b9b9a62fb8b1c702a7ec0eda4f64cd09731f06d90beb025e0e326544d118",
  "tolerance": "relative 1e-12; 0 where the value or a reading is returned as entered"
 },
 "cases": [
  {
   "id": "value-unchanged",
   "description": "The preset's own setting (600 rpm, 1 vvm, 7 L): the value as entered.",
   "values": {
    "klasrc": "value",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1
   },
   "aeration": {
    "rpm": 600,
    "vvm": 1
   },
   "volumeL": 7,
   "expected": {
    "kLa": 400.0,
    "rule": "unchanged: the value as entered",
    "unverifiedExponents": false,
    "tolerance": {
     "relative": 0
    }
   }
  },
  {
   "id": "value-rpm-up",
   "description": "Agitation raised to 900 rpm at the same gas flow and volume.",
   "values": {
    "klasrc": "value",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1
   },
   "aeration": {
    "rpm": 900,
    "vvm": 1
   },
   "volumeL": 7,
   "expected": {
    "kLa": 635.0443064218535,
    "rule": "Van 't Riet ratio between two settings",
    "unverifiedExponents": false,
    "intermediate": {
     "pgPerVRatio": 3.175850778267093,
     "gasFlowRatio": 1.0,
     "hughmarkRatio": 0.47060231552669185,
     "hughmarkRatioSetting": 0.5001125448876517,
     "hughmarkCapped": false,
     "hughmarkCappedSetting": false
    },
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "value-rpm-down",
   "description": "Agitation lowered to 300 rpm.",
   "values": {
    "klasrc": "value",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1
   },
   "aeration": {
    "rpm": 300,
    "vvm": 1
   },
   "volumeL": 7,
   "expected": {
    "kLa": 181.5038310634322,
    "rule": "Van 't Riet ratio between two settings",
    "unverifiedExponents": false,
    "intermediate": {
     "pgPerVRatio": 0.13869618400848066,
     "gasFlowRatio": 1.0,
     "hughmarkRatio": 0.5549096124054982,
     "hughmarkRatioSetting": 0.5001125448876517,
     "hughmarkCapped": false,
     "hughmarkCappedSetting": false
    },
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "value-vvm-up",
   "description": "Gas flow doubled to 2 vvm at the same agitation and volume.",
   "values": {
    "klasrc": "value",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1
   },
   "aeration": {
    "rpm": 600,
    "vvm": 2
   },
   "volumeL": 7,
   "expected": {
    "kLa": 527.8031643091578,
    "rule": "Van 't Riet ratio between two settings",
    "unverifiedExponents": false,
    "intermediate": {
     "pgPerVRatio": 0.8408964152537146,
     "gasFlowRatio": 2.0,
     "hughmarkRatio": 0.4205428462194387,
     "hughmarkRatioSetting": 0.5001125448876517,
     "hughmarkCapped": false,
     "hughmarkCappedSetting": false
    },
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "value-volume",
   "description": "The same aeration at 9 L, a later fed-batch volume (a rescue step's kLa).",
   "values": {
    "klasrc": "value",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1
   },
   "aeration": {
    "rpm": 600,
    "vvm": 1
   },
   "volumeL": 9,
   "expected": {
    "kLa": 415.7147908077945,
    "rule": "Van 't Riet ratio between two settings",
    "unverifiedExponents": false,
    "intermediate": {
     "pgPerVRatio": 0.8042815875547696,
     "gasFlowRatio": 1.2857142857142856,
     "hughmarkRatio": 0.5171545434320954,
     "hughmarkRatioSetting": 0.5001125448876517,
     "hughmarkCapped": false,
     "hughmarkCappedSetting": false
    },
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "value-combined",
   "description": "900 rpm, 2 vvm and 7.2 L together.",
   "values": {
    "klasrc": "value",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1
   },
   "aeration": {
    "rpm": 900,
    "vvm": 2
   },
   "volumeL": 7.2,
   "expected": {
    "kLa": 841.5733512084555,
    "rule": "Van 't Riet ratio between two settings",
    "unverifiedExponents": false,
    "intermediate": {
     "pgPerVRatio": 2.606149912449471,
     "gasFlowRatio": 2.0571428571428574,
     "hughmarkRatio": 0.3972169950701213,
     "hughmarkRatioSetting": 0.5001125448876517,
     "hughmarkCapped": false,
     "hughmarkCappedSetting": false
    },
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "value-combined-two-impellers",
   "description": "As value-combined with two impellers: the impeller count cancels between two settings.",
   "values": {
    "klasrc": "value",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 2,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1
   },
   "aeration": {
    "rpm": 900,
    "vvm": 2
   },
   "volumeL": 7.2,
   "expected": {
    "kLa": 841.5733512084555,
    "rule": "Van 't Riet ratio between two settings",
    "unverifiedExponents": false,
    "intermediate": {
     "pgPerVRatio": 2.606149912449471,
     "gasFlowRatio": 2.0571428571428574,
     "hughmarkRatio": 0.3972169950701213,
     "hughmarkRatioSetting": 0.5001125448876517,
     "hughmarkCapped": false,
     "hughmarkCappedSetting": false
    },
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "value-other-vessel",
   "description": "A 0.3 m tank with a 0.1 m impeller, 15 L, 400 rpm, 0.8 vvm, 250 per hour; evaluated at 800 rpm, 1.2 vvm and 18 L.",
   "values": {
    "klasrc": "value",
    "medium": "coalescing",
    "rpm": 400,
    "vvm": 0.8,
    "v0": 15,
    "kla": 250,
    "tank": 0.3,
    "imp": 0.1,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1
   },
   "aeration": {
    "rpm": 800,
    "vvm": 1.2
   },
   "volumeL": 18,
   "expected": {
    "kLa": 666.333781877966,
    "rule": "Van 't Riet ratio between two settings",
    "unverifiedExponents": false,
    "intermediate": {
     "pgPerVRatio": 5.562742108566451,
     "gasFlowRatio": 1.7999999999999998,
     "hughmarkRatio": 0.4807409956078038,
     "hughmarkRatioSetting": 0.5761439067583565,
     "hughmarkCapped": false,
     "hughmarkCappedSetting": false
    },
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "value-reference-flow",
   "description": "Gas flow on a reference basis (0 degC, 1 atm) in a vessel at 30 degC and 1.2 atm: both settings are turned into actual flow before the ratios; 900 rpm, 1.5 vvm.",
   "values": {
    "klasrc": "value",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 30,
    "p": 1.2,
    "flowbasis": "reference",
    "flowtemp": 0,
    "flowp": 1
   },
   "aeration": {
    "rpm": 900,
    "vvm": 1.5
   },
   "volumeL": 7,
   "expected": {
    "kLa": 746.8622871564727,
    "rule": "Van 't Riet ratio between two settings",
    "unverifiedExponents": false,
    "intermediate": {
     "pgPerVRatio": 2.86970512640803,
     "gasFlowRatio": 1.5,
     "hughmarkRatio": 0.4336231545457498,
     "hughmarkRatioSetting": 0.5099750957422308,
     "hughmarkCapped": false,
     "hughmarkCappedSetting": false
    },
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "value-non-coalescing",
   "description": "Non-coalescing exponents (b 0.7, c 0.2; unread, D-0025): the arithmetic only; 900 rpm, 1.5 vvm, 8 L.",
   "values": {
    "klasrc": "value",
    "medium": "non-coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1
   },
   "aeration": {
    "rpm": 900,
    "vvm": 1.5
   },
   "volumeL": 8,
   "expected": {
    "kLa": 859.371492294129,
    "rule": "Van 't Riet ratio between two settings",
    "unverifiedExponents": true,
    "intermediate": {
     "pgPerVRatio": 2.556098504066742,
     "gasFlowRatio": 1.7142857142857144,
     "hughmarkRatio": 0.43287599673306676,
     "hughmarkRatioSetting": 0.5001125448876517,
     "hughmarkCapped": false,
     "hughmarkCappedSetting": false
    },
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "value-hughmark-cap",
   "description": "A setting at 0.05 vvm, where Hughmark's formula exceeds 1 and the ratio is capped at 1; evaluated at 0.5 vvm, where it is not capped.",
   "values": {
    "klasrc": "value",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 0.05,
    "v0": 7,
    "kla": 50,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1
   },
   "aeration": {
    "rpm": 600,
    "vvm": 0.5
   },
   "volumeL": 7,
   "expected": {
    "kLa": 128.43994275615844,
    "rule": "Van 't Riet ratio between two settings",
    "unverifiedExponents": false,
    "intermediate": {
     "pgPerVRatio": 0.5947373966825131,
     "gasFlowRatio": 9.999999999999998,
     "hughmarkRatio": 0.5947373966825131,
     "hughmarkRatioSetting": 1.0,
     "hughmarkCapped": false,
     "hughmarkCappedSetting": true
    },
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "table-exact",
   "description": "A reading at 600 rpm, at the setting's gas flow: as read.",
   "values": {
    "klasrc": "table",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1,
    "kr1": 400,
    "kk1": 150,
    "kr2": 600,
    "kk2": 300,
    "kr3": 800,
    "kk3": 450,
    "kr4": 1000,
    "kk4": 560,
    "kr5": null,
    "kk5": null,
    "kr6": null,
    "kk6": null
   },
   "aeration": {
    "rpm": 600,
    "vvm": 1
   },
   "volumeL": 7,
   "expected": {
    "rule": "a reading, as read",
    "outside": false,
    "unverifiedExponents": false,
    "kLa": 300.0,
    "tolerance": {
     "relative": 0
    }
   }
  },
  {
   "id": "table-interpolated",
   "description": "700 rpm, between the readings at 600 and 800: log-log interpolation.",
   "values": {
    "klasrc": "table",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1,
    "kr1": 400,
    "kk1": 150,
    "kr2": 600,
    "kk2": 300,
    "kr3": 800,
    "kk3": 450,
    "kr4": 1000,
    "kk4": 560,
    "kr5": null,
    "kk5": null,
    "kr6": null,
    "kk6": null
   },
   "aeration": {
    "rpm": 700,
    "vvm": 1
   },
   "volumeL": 7,
   "expected": {
    "rule": "log-log interpolation between neighbours",
    "outside": false,
    "unverifiedExponents": false,
    "kLa": 372.8013318080154,
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "table-above",
   "description": "1200 rpm, beyond the last reading: extrapolated from the readings at 800 and 1000.",
   "values": {
    "klasrc": "table",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1,
    "kr1": 400,
    "kk1": 150,
    "kr2": 600,
    "kk2": 300,
    "kr3": 800,
    "kk3": 450,
    "kr4": 1000,
    "kk4": 560,
    "kr5": null,
    "kk5": null,
    "kr6": null,
    "kk6": null
   },
   "aeration": {
    "rpm": 1200,
    "vvm": 1
   },
   "volumeL": 7,
   "expected": {
    "rule": "log-log extrapolation from the nearest two readings",
    "outside": true,
    "unverifiedExponents": false,
    "kLa": 669.5587218465313,
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "table-below",
   "description": "300 rpm, below the first reading: extrapolated from the readings at 400 and 600.",
   "values": {
    "klasrc": "table",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1,
    "kr1": 400,
    "kk1": 150,
    "kr2": 600,
    "kk2": 300,
    "kr3": 800,
    "kk3": 450,
    "kr4": 1000,
    "kk4": 560,
    "kr5": null,
    "kk5": null,
    "kr6": null,
    "kk6": null
   },
   "aeration": {
    "rpm": 300,
    "vvm": 1
   },
   "volumeL": 7,
   "expected": {
    "rule": "log-log extrapolation from the nearest two readings",
    "outside": true,
    "unverifiedExponents": false,
    "kLa": 91.72908852011741,
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "table-gas-flow",
   "description": "700 rpm at 2 vvm: the interpolated kLa scaled by Hughmark's ratio and the gas flow at the same agitation.",
   "values": {
    "klasrc": "table",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1,
    "kr1": 400,
    "kk1": 150,
    "kr2": 600,
    "kk2": 300,
    "kr3": 800,
    "kk3": 450,
    "kr4": 1000,
    "kk4": 560,
    "kr5": null,
    "kk5": null,
    "kr6": null,
    "kk6": null
   },
   "aeration": {
    "rpm": 700,
    "vvm": 2
   },
   "volumeL": 7,
   "expected": {
    "rule": "log-log interpolation between neighbours; scaled to the gas flow at the same agitation",
    "outside": false,
    "unverifiedExponents": false,
    "intermediate": {
     "hughmarkRatio": 0.410930362467317,
     "hughmarkRatioSetting": 0.4886813108167806,
     "gasFlowRatio": 2.0
    },
    "kLa": 491.9143064673469,
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "table-unsorted-gap",
   "description": "Readings entered out of order with a gap (kr2 empty): sorted by rpm before interpolating at 900 rpm.",
   "values": {
    "klasrc": "table",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1,
    "kr1": 1000,
    "kk1": 560,
    "kr2": null,
    "kk2": null,
    "kr3": 400,
    "kk3": 150,
    "kr4": 800,
    "kk4": 450,
    "kr5": 600,
    "kk5": 300,
    "kr6": null,
    "kk6": null
   },
   "aeration": {
    "rpm": 900,
    "vvm": 1
   },
   "volumeL": 7,
   "expected": {
    "rule": "log-log interpolation between neighbours",
    "outside": false,
    "unverifiedExponents": false,
    "kLa": 505.061121801326,
    "tolerance": {
     "relative": 1e-12
    }
   }
  },
  {
   "id": "table-single",
   "description": "One reading (500 rpm, 220 per hour) asked at 650 rpm: the reading, flagged outside.",
   "values": {
    "klasrc": "table",
    "medium": "coalescing",
    "rpm": 600,
    "vvm": 1,
    "v0": 7,
    "kla": 400,
    "tank": 0.22,
    "imp": 0.088,
    "nimp": 1,
    "temp": 37,
    "p": 1,
    "flowbasis": "actual",
    "flowtemp": 0,
    "flowp": 1,
    "kr1": 500,
    "kk1": 220,
    "kr2": null,
    "kk2": null,
    "kr3": null,
    "kk3": null,
    "kr4": null,
    "kk4": null,
    "kr5": null,
    "kk5": null,
    "kr6": null,
    "kk6": null
   },
   "aeration": {
    "rpm": 650,
    "vvm": 1
   },
   "volumeL": 7,
   "expected": {
    "rule": "the only reading (outside its range)",
    "outside": true,
    "unverifiedExponents": false,
    "kLa": 220.0,
    "tolerance": {
     "relative": 0
    }
   }
  }
 ]
}
