# 三个完整使用场景

三个场景均有明确用户、问题、输入、工作流、可检查输出和后续决策，采用合成水样而非实测数据。示例里的反离子/滴定剂有化学含义；错误输入演示不算第四个业务场景。所有数值固定在 298.15 K、约 1 atm 和本版本稀溶液活度约定。

## 1. 碳酸盐水样的方解石候选结垢筛查

**用户与任务**：水化学实验人员在做钙–碳酸盐配水试验前，希望知道总碳如何分配、游离钙与总钙有何差别，以及这份配水是否值得进一步做方解石结垢试验。

**输入及来源**：合成配水 `examples/carbonate.json`：Ca 总量 2 mmol/L、溶解无机碳 3 mmol/L、Cl 1 mmol/L、TA 3 meq/L。Cl 是显式反离子，使 `2*Ca_T−Cl_T=TA`，默认结果可同时闭合电荷。这里无机碳不是 HCO3− 单一物种浓度。

**完整工作流**：先检查输入及常数版本，再求解、导出物种表，最后改变 TA 边界观察测量不确定性是否改变解释：

```bash
python3 scripts/aqueous.py inspect --input examples/carbonate.json --output /tmp/carbonate-inspect.json
python3 scripts/aqueous.py solve --input examples/carbonate.json --output /tmp/carbonate-result.json --species-csv /tmp/carbonate-species.csv
python3 scripts/validate_demo.py --problem examples/carbonate.json --result /tmp/carbonate-result.json
python3 scripts/aqueous.py sensitivity --input examples/carbonate-sensitivity.json --output /tmp/carbonate-sensitivity.json
```

也可用 `--totals-csv examples/carbonate-totals.csv` 替换总量；CSV 中的 2/3/1 mmol/L 会转换成相同输入。

**可检查结果**：pH≈8.04864097，I≈0.00588982 M，自由 Ca²+≈1.951681 mmol/L，HCO3−≈2.879071 mmol/L，CO3²−≈0.019279 mmol/L，CO2(aq)≈0.053360 mmol/L；还有 CaHCO3+、CaCO3(aq)、CaOH+。Calcite SI≈**+0.772334**，默认电荷残差约 −1.9e-18 mol/L。

**决策价值**：SI 为正，将该配水列为方解石过饱和候选，安排实际沉淀/诱导期试验；不能据此宣称已经结垢或给出沉淀质量。TA±0.1 meq/L 的样点 SI 约 0.4030–1.1296，仍为过饱和候选。该 TA 扰动保持其他总量不变，因此电荷审计会指出对应差额；真实加酸/加碱实验须同时记录试剂反离子，不能把数学边界扰动当成已经配好的中性水样。

**验证与边界**：默认案例及 pH 5.5–10、TA、稀释、两种活度模型工况在独立逐物种对照中覆盖。另有专门构造的 Calcite SI≈0 案例，pH±0.01 后确实跨 0，敏感性输出标记 PhaseBoundaryAmbiguous。没有气相 CO2 交换、天然水有机物或其他金属。

## 2. 硫酸钙溶液的离子配对与石膏饱和筛查

**用户与任务**：配水/水处理研究人员希望评估一份硫酸钙溶液的自由离子水平，以及小幅浓缩后是否靠近石膏饱和；直接用总 Ca、总 S 当作自由离子会夸大离子活度积。

**输入及来源**：`examples/sulfate.json`，Ca 与 S(VI) 分析总量均为 10 mmol/L，来自合成 CaSO4 溶液，默认以电荷平衡求 pH。SO4²−、HSO4−、CaSO4(aq)、CaHSO4+、CaOH+ 与水均被计入；不含其他硫价态。

**完整工作流**：

```bash
python3 scripts/aqueous.py inspect --input examples/sulfate.json --output /tmp/sulfate-inspect.json
python3 scripts/aqueous.py solve --input examples/sulfate.json --output /tmp/sulfate-result.json --species-csv /tmp/sulfate-species.csv
python3 scripts/validate_demo.py --problem examples/sulfate.json --result /tmp/sulfate-result.json
python3 scripts/aqueous.py sensitivity --input examples/sulfate-sensitivity.json --output /tmp/sulfate-sensitivity.json
```

敏感性使用 `total_scale`：Ca 和 S 同时缩放 ±5%，保留盐的比例和电荷条件，表示无气体/固相变化下的浓度扰动；不是单独增加一个未交代反离子的硫酸根总量。

**可检查结果**：pH≈7.05597695，I≈0.02941570 M，自由 Ca²+≈**7.353904 mmol/L**，自由 SO4²−≈7.353873 mmol/L，CaSO4(aq)≈**2.646086 mmol/L**。约 26.46% 的溶解钙处于中性 CaSO4 配对物种中。Gypsum SI≈**−0.247396**，默认电荷残差约 −2.2e-18 mol/L。

**决策价值**：这份配水在所选模型下欠饱和，读者可从完整输出核查自由离子活动度和 Ksp，而不是据总量推断石膏一定析出。±5% 浓度扰动用于判断这个结论对配水浓度误差是否敏感；若扩大浓度后越过模型上限或 SI 跨 0，应转入更完整的地球化学/固相试验流程。

**验证与边界**：独立对照包含 0.1–40 mmol/L 总量、多 pH、不同活度模型；越界仍会拒绝。高浓度例可能为亚稳过饱和溶解组成，只输出 SI，不求析晶量、成核时间、其他盐析出或精确浓缩路径。

## 3. 稀锌硝酸盐加碱试验的溶解态水解分配

**用户与任务**：环境化学实验人员在滴定实验前，希望区分游离 Zn²+、各级水解物种与可能的固相析出，选择后续实测 pH/溶解态金属取样点。

**输入及来源**：`examples/hydrolysis.json`：Zn 总量 10 µmol/L、NO3− 总量 20 µmol/L，等价于稀 Zn(NO3)2；加入 19 µmol/L NaOH，以 Na 总量记录滴定剂，H+/OH− 由水及电荷平衡求得。硝酸根为低浓度旁观离子，模型明确省略其弱配对，没有碳酸盐、氯离子、硫化物或有机配体。

**完整工作流**：

```bash
python3 scripts/aqueous.py inspect --input examples/hydrolysis.json --output /tmp/hydrolysis-inspect.json
python3 scripts/aqueous.py solve --input examples/hydrolysis.json --output /tmp/hydrolysis-result.json --species-csv /tmp/hydrolysis-species.csv
python3 scripts/validate_demo.py --problem examples/hydrolysis.json --result /tmp/hydrolysis-result.json
python3 scripts/aqueous.py sensitivity --input examples/hydrolysis-sensitivity.json --output /tmp/hydrolysis-sensitivity.json
```

敏感性将 NaOH 加入量对应的 Na 总量改变 ±1 µmol/L，保持 Zn 与 NO3 分析总量不变，由电荷方程重算酸碱状态。这不同于任意设置 pH 后隐去滴定剂。

**可检查结果**：pH≈8.67714067，I≈2.71805e-5 M，Zn²+≈**2.328740 µmol/L**，ZnOH+≈1.192206 µmol/L，Zn(OH)2(aq)≈**6.469267 µmol/L**，另含三/四级水解物种。水相质量闭合，但 Zn(OH)2(e) 固相 SI≈**+0.210855**，提示可能析出固体。

**决策价值**：在这个固定溶解总量候选状态下，中性二级水解物种占比较高，游离锌明显小于总锌；同时固相 SI 为正，**不能把上述分配当作已经达到稳定固液平衡，更不能把游离锌减少当作总锌去除率**。下一步应做固液分离/溶解态测量或使用带固相平衡的成熟工具，验证是否析出及实际溶解总量。NaOH 扰动可以帮助选择取样点，但不给出污水处理达标结论。

**验证与边界**：独立对照覆盖四级水解、pH 6–11、多种加碱量、稀释和两类活度模型。没有求沉淀质量，没有包含完整天然/工业水中竞争络合，不能外推到未知复杂废水。

## 复现证据

`audit/2026-10-27/remediation/cases/*-default.json` 保存每类完整输入、MoonBit 输出、独立参考和逐物种误差。`sensitivity/*.json` 保存三次重解、参考值及减半步长结果。`reference-report.json` 为汇总，`species-comparison.csv` 为可逐行检查的浓度/活度/gamma 对照。

所有计算均在本地执行；这些文件不是公开仓库、报名回执、人工申报撰写或赛事验收通过的证明。
