3 类扩展任务(立即可做 / 能力跃迁 / 可信度)整体进度与落点 · 截至 2026-08-10
无需架构改动,把既有内核 API 接上 UI 与测试即可白捡的能力。
| 功能 | 说明 | 落点(文件 / 函数) | 验证 |
|---|---|---|---|
| 参数扫描 study | 多参数笛卡尔网格扫描,指标内置 severity / qPeak / period / dp / liqInv,亦可传函数;UI 出曲线 + CSV。 | Physics.study @multiphase.js:1439 runTfSweep @app-eng.js(#65–69) |
回归绿 · CSV 导出 |
| 重启续算 tfSerialize | 用末态 p/T/α/u 续算;UI「Resume」按钮读 lastData.twofluidState,warmup:false 保证边界连续。 | opts.restart @546–560 runTfResume @app-eng.js(#72) |
pIn/pOut 连续 · 227→227 |
| 逐格腐蚀 / 冲蚀 | de Waard–Milliams (1995) CO₂ 腐蚀 + API RP 14E 冲蚀,沿管线逐格 × 逐时步接进瞬态内核。 | engineering.flowAssurance @:771/:780(#71) | 回归绿 |
| H₂S 酸性腐蚀 | fSour=1+clamp(0.8·pH₂S,0,4) 加速 CO₂ 腐蚀,另加 0.5·√pH₂S 本征酸性攻击;缓蚀剂仍生效;h2s=0 时逐位兼容旧行为。 | twoFluid 腐蚀块 §10.8 tf_h2s @index.html(本轮) |
multiphase 231→231 不破 · +5 断言 |
改变内核 / 运行形态的大改动,需与既有 flowsheet 水力架构红线共存(不碰 flowsheet.js / network())。
| 功能 | 说明 | 落点(文件 / 函数) | 验证 |
|---|---|---|---|
| Web Worker 卸载 | DedicatedWorker 跑 twoFluid / study,主线程不冻结;file:// 同步回退;onerror 翻转标志。 | assets/js/worker-twofluid.js(#65–69) | test_worker 16/16 |
| 组分闪蒸 flash | Wilson K 值 + Rachford–Rice 二分/牛顿;组分库 C1–C6/C10/CO₂/N₂/H₂S;UI 出 β/相态/逐组分 x,y,K 表。 | Physics.flash @multiphase.js(#73) | 死测试改写 · 全绿 |
| 双流体网络 | 复用稳态 network() 折成各支管入口条件 → 逐 PIPE 跑 twoFluid → 聚合 dp/相态/腐蚀/冲蚀/段塞回流程图。 | Physics.twoFluidNetwork @engineering.js(#74) | 回归绿 · 风险表 |
| 段塞监测 slug | 内核 nSlugs / period / severity 统计(1285–1355 行),#74 已聚合 severity 进网络结果。审计时 grep 标识符误判,实为已闭环。 | twoFluid slug stats(#74) | 指标输出 |
| 清管 pigging | Lagrangian 批式 pig:速度 = Q_l/A,支持稳态/空间速度剖面/瞬态液量剖面;卡堵风险 stuckRisk=clamp(1−vPig/vMin,0,1)。 | Physics.pigRun @multiphase.js(P2-2) runTfPig @app-eng.js |
244/244 断言 |
| 阀门 / PID 控制 | 出口 BC 用 pSepEff(默认=pSep 不破旧);一阶响应跟踪器 alpha=1−e^(−dtRep/τ) 把 pSepEff 平滑拉到设定点 + ESD 跳闸。纯比例/PI 会退化振荡,故用跟踪器。 | twoFluid 控制块(#78) 3 处出口 BC pSep→pSepEff |
section21 251/251 |
| 热模型 thermal | 井筒/管线准稳态 Ramey 热平衡 dT/dx = U·π·D·(T_e−T_f)/(ṁ·cp);地温梯度 T_e=T_surf+gGrad·depth + 环境 U 值换热。独立 Physics 命名空间 IIFE,纯后处理、不碰 twoFluid 液压核心、不加 UI i18n 键。 | Physics.thermalProfile @multiphase.js(P2-3) test_thermal.js 9/9 |
9/9 断言 |
| 瞬态能量 · 地热环境温度 | twoFluid 的能量方程(10.6 节,含 Joule-Thomson 与壁面换热)原用单一 tAmb;新增 opts.geo 使环境温度为地热剖面 T_e=T_surf+gGrad·(z_max−z),沿管深变化(深处更热)。默认关 → 零回归影响。纯后处理驱动,不破液压核心。 | twoFluid(opts.heat+geo) @multiphase.js test_extensions.js #1 |
环境温度随深度变化 ≥1K 已验证 |
| 段塞捕捉(LS 空间追踪) | twoFluid 加 opts.saveFields 记录液相持率场快照;新增 Ph.slugTrack 后处理:检测连通高持率段塞体(阈值 0.6)、统计段塞数/平均长度/位置、并以质心-时间线性回归给出平均平移速度,对照 Bendiksen(1984) v_t 作数量级参考。地形严重段塞中段塞在立管准静止(平移≈0,物理正确)。 | Ph.slugTrack @multiphase.js test_extensions.js #2 |
段塞检出 + 几何合理已验证 |
| 非牛顿稠油流变 | 摩擦闭包 wallK 新增可选表观黏度:Herschel-Bulkley τ=τy+K·γ̇ⁿ 与 Bingham;Metzner-Reed 等效剪切率 γ̇=8u/D 驱动。opts.rheology 默认 Newtonian → wallK 原路径完全不变。稠油屈服应力使压降高于牛顿基准,Newtonian 极限(τy=0,n=1,K=μ)精确复原。 | Ph.effectiveViscosity + wallK @multiphase.js test_extensions.js #3 |
屈服升压降↑、Newtonian 极限复原已验证 |
| 深化 D1 · 热剖面内嵌 + 双向 T↔PVT 反馈 | thermalProfile 从"旁挂后处理"升级为内嵌求解:能量方程解出的 T 场连同地热环境 Te 与壁面热流 qDot=U·π·D·(Te−Tf) 一并由 r.thermal 暴露,与独立 thermalProfile 同式。新增 opts.muTemp 打通正向 T→黏度(Andrade μ(T)=μref·exp[B(1/T−1/Tref)])反哺摩擦闭包;新增 opts.cpTemp 打通反向 cp(T)→能量:热容随温 cp(T)=cp,0·(1+Bc·(T−Tin)/Tin) 反馈回 10.6 能量方程,与 μ、ρ 一起构成完整 T⇄PVT 闭环。该反馈进一步经 Ph.bidirectionalCouple({pvtFeedback:true}) 透传:支路 twoFluid 以 muTemp/cpTemp 解出有效液黏/液密(r.muLMean/r.rhoLMean),按流量加权后送入每采样点 network() 重解,使稳态节点压(尤其 junction)随 PVT 反馈自洽演化;同一开关亦接入 Ph.transientCoupled(动态分叉/汇合耦合),并将 bidirectionalCouple 每步重解改为走 Ph.networkWithLoops(含环图 Hardy-Cross),使 PVT 反馈在含环网络上同样闭环。默认关 → 字节级零回归。 | twoFluid(opts.muTemp, opts.cpTemp) → r.thermal @multiphase.js B7 @validate.js |
qDot 与 thermalProfile 同式 · 地热 8.49 K 深度差 · μTemp 正向 ΔTout=0.024 K · cpTemp 反向 ΔTout=0.108 K |
| 深化 D2 · 水平漂移流旅行段塞(Bendiksen 比对生效) | 新增 opts.slugDriveAmp/Period/Phase 对液相入口流量做正弦调制,在水平管激发旅行段塞;slugTrack 增设 bendiksen 开关与 traveling 判据(质心净位移 + 有限平移速度),此时才把实测平移速度与 Bendiksen(1984) vt 做带比对(地形准静止段塞仍按原判据放行,不误杀)。实测 v=1.19 m/s vs vt=2.18 m/s,比值 0.55 —— 追踪到的是运动学持率波平移速度,与 vt 同量级。 | Ph.slugTrack(bendiksen) + opts.slugDrive* @multiphase.js | 检出 9 体 · 净位移下游 · 比值 0.55 在带内 · 错误参考被门禁驳回(7.6) |
| 深化 D3 · 稠油 + 蜡沉积联合凝胶 | opts.heavyWax 把两条既有链路耦合:蜡沉积厚度实时抬升凝胶屈服应力 τy 与稠度系数 K(τy,eff=τy+kY·δwax,Keff=K·(1+kK·δwax)),喂回 effectiveViscosity → 表观黏度上升 → 壁面剪切上升 → 剪切阻尼的 waxRate 自洽收敛(不会失控)。r.heavyWax 暴露 muApp / waxThk / tauYeff / Keff 诊断。默认关 → 零回归。 | twoFluid(opts.heavyWax) → r.heavyWax @multiphase.js | μapp=0.816 Pa·s(高于裸流变)· 蜡 0.217 mm · massErr 3.5e-14 · 关闭即复原 |
| 对标 O1 · 复合壁面换热(OLGA WALL/MATERIAL) | 原 U 为手填标量(热预测最大误差源);新增 Ph.wallHeat 由分层管壁(钢/保温/混凝土)+ 内外对流膜组合热阻算出整体换热系数。内薄膜:层流 Nu=3.66、过渡 Gnielinski(1976)、湍流 Dittus-Boelter(Pr0.3 冷却指数);外边界:海流 Churchill-Bernstein(1977)、埋地 Carslaw-Jaeger arccosh 形状因子、空气横流。twoFluid 经 opts.wall 咨询,返回逐层阻力与主导热阻分解;默认关 → 零回归。 | Ph.wallHeat @multiphase.js(OLGA 对标 IIFE) twoFluid(opts.wall) → r.wall |
test_olga.js O1.1–O1.7:串联热阻 1e-9、层流 Nu=3.66、Dittus-Boelter、Carslaw-Jaeger、Churchill-Bernstein,含零回归 |
| 对标 O2 · 热力学抑制剂追踪(OLGA MEG-tracking) | 原抑制剂仅为腐蚀效率标量;新增 Hammerschmidt(1934) 与 Nielsen-Bucklin(1983) 水合物温度 depression、闭式/二分逆解求所需 wt%,以及沿管 Ph.inhibitorTrack 追踪水相强度并逐站比对水合物曲线。hydrateTempK/hydrateRisk 加可选尾参 inh(不传=逐字节不变);twoFluid 经 opts.inhibitor 下移水合物曲线并计入 r.inhibitor;默认关 → 零回归。 | Ph.inhibitorDT/Required/Track + hydrateTempK/Risk(inh) twoFluid(opts.inhibitor) → r.inhibitor |
test_olga.js O2.1–O2.6:Hammerschmidt 5.224K、Nielsen 22.92K、逆解闭环、曲线下移、欠剂量检出、零回归 |
| 对标 O3 · 泄漏 / 放空(OLGA LEAK + depressurisation) | 原无泄漏/放空模块;新增 Ph.leakRate 可压缩孔口(临界压力比 rCrit=(2/(γ+1))γ/(γ−1) 判壅塞,壅塞下与下游无关)+ 不可压孔口,Ph.blowdown 多变(polytropic)放空积分并给出膨胀降温(脆性断裂设计温)。twoFluid 经 opts.leak 将泄漏作为单元质量汇、按持率份额分相移出并计入 massOut,使 (mfinal−m0)==massIn−massOut 恒等式仍精确成立(<1e-6 真测试);默认关 → 零回归。 | Ph.leakRate/Ph.blowdown @multiphase.js(OLGA 对标 IIFE) twoFluid(opts.leak) → r.leak |
test_olga.js O3.1–O3.5:壅塞解析、临界比门控、连续性、液体 sqrt(2ρΔp)、放空等熵降温 161K+质量守恒、泄漏汇守恒恒等式、零回归 |
| 对标 S4 · 侵蚀(OLGA 流动保障 / API 14E + Salama) | 原仅腐蚀块内置 1 行 API 14E 侵蚀比;新增独立 Ph.erosion:API RP 14E C 因子临界流速筛选(vallow=C/√ρm,ρm 按 lb/ft³)+ Salama(1980) 沙蚀指数(基于沙质量通量 × 冲击动能 v²,几何因子 直管<弯头<三通 有序,含沙率线性相关,可配 Ker 标定至 mm/yr)。独立可调用,亦可经 twoFluid 报告步(沿用既有腐蚀聚合范式)呈现;默认关 → 零回归。 | Ph.erosion @multiphase.js(OLGA 对标 II IIFE) | test_olga.js S4.1–S4.7:vallow=4.31m/s(ρ=50lb/ft³,C=100)、v² 缩放、几何有序、沙率线性、Ker 标定、零回归 |
| 对标 S5 · 矿物结垢(OLGA 流动保障 / CaCO₃ · BaSO₄) | 原无结垢模块;新增 Ph.scaleTendency:CaCO₃ / BaSO₄ 饱和指数 SI=log₁₀(IAP/Ksp),含温度依赖(升温降低 Ksp、结垢加剧,CaCO₃ 约每 +35K 溶解度减半),给出 scale/equilibrium/dissolve 判定;Ph.scaleDeposit 传质限制沉积率。twoFluid 经 opts.scale 逐站用局部 T[q] 评估离子化学并聚合最严重 SI;默认关 → 零回归。 | Ph.scaleTendency/Ph.scaleDeposit twoFluid(opts.scale) → r.scale |
test_olga.js S5.1–S5.6:25°C Ksp 零点、符号判定、升温趋势、BaSO₄ 零点、沉积率 kmt·A·(C−Csat)、门控聚合、零回归 |
| 对标 S6 · 乳状液黏度(重油 + 卤水) | 原无乳化液黏度;新增 Ph.emulsionViscosity:水包油/油包水在体黏度,含 Taylor(1932)、Einstein、Brønsted、Mooney、Hatschek(HNB) 五种模型,自动覆盖 Einstein 极限(φ→0)与高含水分率下黏度发散。twoFluid 经 opts.emulsion 注入油相表观黏度(动量求解处,vallow 同重油+蜡 gated 范式),影响压降;默认关 → 零回归。 | Ph.emulsionViscosity twoFluid(opts.emulsion) → 油相 μ |
test_olga.js S6.1–S6.6:Einstein μc(1+2.5φ)、Taylor μd≫μc→Einstein 极限、φ 单调、Brønsted/Mooney、HNB 有限、门控注入稳定守恒、零回归 |
| 对标 S7 · 清管轨迹(OLGA pig-run 对标) | 原无清管模块;新增 Ph.pigTrajectory:压差驱动的清管器力平衡 ODE 解析解 v(t)=vterm·tanh(ωt)、终端速度 vterm=√((Δp−Δpstatic)/(Kb·ρ))、到线长 L 的到达时间有解析反解 tarr=acosh(eLω/vt)/ω(数值稳定,无刚性 Euler 过冲)。静摩擦阈值之下 pig 卡死(不动)。twoFluid 经 opts.pig 以进/出口 Δp 驱动报告级聚合;默认关 → 零回归。 | Ph.pigTrajectory @multiphase.js(OLGA 对标 II IIFE) twoFluid(opts.pig) → r.pig |
test_olga.js S7.1–S7.6:终端速度闭式、到达时间≈L/vt、v 单调≤vt且到 L、卡死判据、旁路流量 f·A·vt、门控聚合+零回归 |
| 对标 S8 · 顶部腐蚀(OLGA TOP-of-line 对标) | 原仅底部 CO₂ 腐蚀;新增 Ph.topCorrosion:管顶气相水蒸气的冷凝驱动顶部腐蚀筛选。Antoine 壁面饱和压判定过饱和→冷凝质量通量(水膜更新),腐蚀速率∝冷凝通量×(1+CO₂ 加速)。twoFluid 经 opts.top 逐站用局部 T[q] 与壁面冷却 dTwall 聚合最严重 TOP 速率;默认关 → 零回归。 | Ph.topCorrosion @multiphase.js(OLGA 对标 II IIFE) twoFluid(opts.top) → r.top |
test_olga.js S8.1–S8.6:Antoine 100°C≈1atm、无冷凝→0、过饱和→正速率、冷却单调、CO₂ 单调、门控聚合、零回归 |
| 对标 S9 · 沥青质沉积(OLGA 固体管理对标) | 原无沥青质模块;新增 Ph.asphalteneOnset/Ph.asphaltene:析出压力 AOP(T) 随温升(P>AOP(T) 析出),超饱和沉淀分数 φp=φmax·tanh(k(S−1)),壁面沉积率受剪切抑制(1/(1+τ/τ₀),镜像蜡沉积闭包)。twoFluid 经 opts.asphaltene 用局部 p[q]/T[q] 与混合壁剪聚合最严重沉积;默认关 → 零回归。 | Ph.asphaltene(Onset) @multiphase.js(OLGA 对标 II IIFE) twoFluid(opts.asphaltene) → r.asphaltene |
test_olga.js S9.1–S9.6:AOP 随温升、低于 onset→0、超 onset 析出 S>1、压力单调、剪切抑制、门控聚合稳定、零回归 |
| 对标 S10 · 段塞捕集器 / 分离器容积(OLGA slug-catcher 对标) | 新增 Ph.slugCatcher:段塞捕集器/分离器容积筛选。给定管径 D、特征段塞长 Lslug、段塞频率 fslug、液体密度 ρL,算单段塞液相体积 Vslug=A·Lslug 与缓冲窗口 tdesign 内到达段塞数 nslug=fslug·tdesign,保守缓冲容积 Vmin=Vslug·nslug·overage。纯尺寸筛选,零水力耦合;twoFluid 经 opts.slugCatcher 报告级聚合;默认关 → 零回归。 | Ph.slugCatcher @multiphase.js(OLGA 对标 II IIFE) twoFluid(opts.slugCatcher) → r.slugCatcher |
test_olga.js S10.1–S10.6:Vslug=A·Lslug、nslug=f·t、Vmin∝overage、mslug=V·ρ、频率单调、门控+零回归 |
| 对标 S11 · 气举设计估计(OLGA gas-lift 对标) | 新增 Ph.gasLift:气举降压举升设计筛选。气举卸除静水头 ρL·g·Δz;由需卸除压头反解所需就地空隙率 αreq∈[0,0.95],得所需举升气量 qGi=α/(1−α)·QL 与 GLR。无内核耦合,纯工程筛选;twoFluid 经 opts.gasLift 报告级聚合;默认关 → 零回归。 | Ph.gasLift @multiphase.js(OLGA 对标 II IIFE) twoFluid(opts.gasLift) → r.gasLift |
test_olga.js S11.1–S11.6:pWh≥pRes→无需举升、低 pWh→多气、α∈[0,0.95]、GLR≥0、深注→大卸除头、门控+零回归 |
| 对标 S12 · 水击/瞬态压力波(OLGA water-hammer 对标) | 新增 Ph.waterHammer:Joukowsky 水击关阀瞬态增压筛选。波速 a=1/√(ρ(1/K+D/(E·twall)));快速关阀(tclose<2L/a)满 Joukowsky 增压 Δp=ρ·a·Δv,慢关阀线性折减。twoFluid 经 opts.waterHammer 报告级聚合;默认关 → 零回归。 | Ph.waterHammer @multiphase.js(OLGA 对标 II IIFE) twoFluid(opts.waterHammer) → r.waterHammer |
test_olga.js S12.1–S12.6:Δp=ρ·a·Δv(快)、pMax/Min 对称、慢关阀折减、临界时 2L/a、自动波速合理、门控+零回归 |
让结果可验证、可重复、可交付的质量保障层。
| 项 | 说明 | 落点 | 验证 |
|---|---|---|---|
| 浏览器内真实 Worker 冒烟 | vm + importScripts / self.window=self 垫片在 Node 真实加载 worker,驱动 {cmd:'run'|'study'} 并断言消息契约与 payload。 | test_worker.js(#75) | 16/16 |
| 双向 i18n 守门 | 真正执行 i18n.js + i18n-full 叠层,逐键探测 index.html 的 data-i18n* 与 JS 的 t('key');t() 未解析即裸键。补回 chk_i18n 看不到的盲区。 | tools/twoway_gate.js(#80) | 838 键全解析 · 抓出并修复 10 控制键裸键 bug |
| 全套回归 | validate 40 · multiphase 280 · flowsheet 291 · integ ALL · worker 16 · thermal 9 · extensions 63 · olga 115 · arch 38 · study 11 · physics_ext 21 · network_loop 8,统一绿灯。 | test_*.js | 全绿 |
| HTTP 200 | 本地 python -m http.server 启服,/ 与各 JS / worker / css 均 200。 | python -m http.server | 全 200 |
| 求解性能加速 | 可选 fast 模式:cfl 0.4→0.6、warmup 150→50(默认行为不变,保 231 既有回归);slug-heavy 实测 ~15% 更快。 | twoFluid fast 选项(#77) | 质量指标完全一致 |
对照 Bendiksen / Beggs & Brill / Peng-Robinson 等已发表闭包与相关性,定量补齐与 OLGA 对标的可信度证据。纯后处理 Driver,不触碰 flowsheet.js / network() 与 twoFluid 液压核心,复用既有公开 API。
| 基准 | 对照来源 / 闭包 | 结果 | 落点 |
|---|---|---|---|
| B1 · PR 状态方程 Z | Peng & Robinson (1976) 立方 EOS,独立 Standing (1977) 伪临界实现验证最大实根。 | 误差 0.000% · 5 点全过 | Ph.validate → benchPR assets/js/validate.js |
| B2 · 段塞迁移速度 | Bendiksen (1984) 漂移流闭包 vt = 1.2·vm + 0.35·√(g·D·Δρ/ρl),C0=1.2(水平)。 | 3.536 vs 3.532 m/s · 0.11% | benchBendiksenSlug assets/js/validate.js |
| B3 · 严重段塞特征 | Bendiksen et al. (1991) SPE 19451 / Taitel (1989):surge>3 / 周期 60–3000 s / riser 基摆>2 bar。 | surge 8.64× · 1524 s · 22.31 bar · 全 PASS | benchSevereSignature assets/js/validate.js |
| B4 · 持液率 vs BB | Beggs & Brill (1973) 稳态相关性;统一 qg 体积基准(工况体积 vs 标况体积)后对标。 | MAPE 35.47% · 动态机理模型 vs 稳态相关,合理 | benchHoldupVsBB assets/js/validate.js |
| B5 · 守恒与有界性 | 质量 / 气体误差范数、持率 ∈ [0,1]、体积残差。 | massErr 5.8e-15 · gasErr 7.2e-14 · 有界 | benchConservation assets/js/validate.js |
| B6 · 可信度带(商业对标) | 代表性产气工况压降与行业相关性偏差,落在 OLGA↔LedaFlow 互校散差带(NTNU 2014,15–25%)内;与 LedaFlow / OLGA 用同一批已发表数据(Bendiksen / Taitel / BB / PR)作为对照来源。 | 产气工况 1.3× · 在互校带内 | benchCommercialBand assets/js/validate.js |
| B7 · 内嵌热剖面 + 双向 T↔PVT | 内嵌能量解出的壁面热流须与独立 Ramey 式 thermalProfile 同式 qDot=U·π·D·(Te−Tf);地热环境沿深度单调;开启 muTemp 后 T 场须真实改变(正向 T→μ→摩擦→焦耳-汤姆孙回路闭合),且关闭时与默认解逐点一致。 | qDot 同式 · 地热 8.49 K · ΔTout 0.024 K · 关闭零漂移 | benchThermalCoupling assets/js/validate.js |
dp/max(dp_BB, 1e-9),而下倾立管算例(6 km @ −2° + 300 m 立管)的 Beggs–Brill 参考是净压力回升(dpBB=−1.84 bar,静压回收压过摩擦)——除以 1e-9 钳位后凭空造出 8.0e9 的比值,把均值污染到 2.0e9。现改为:参考 Δp ≤ 0.05 bar 的算例标记 comparable:false + excludedReason,如实列出但不计入统计;同时补报中位数。修复后均值回到 10.3×、中位数 7.5×(3 个可比算例 1.32 / 7.49 / 22.19),与历史口径一致。已加 2 条回归断言防止再被钳位造假。
| OLGA 模块 | 本内核对标实现 | 闭包 / 相关性(与 OLGA 同源) | 状态 |
|---|---|---|---|
| WALL / MATERIAL 分层壁面整体换热系数 |
Ph.wallHeat(复合壁 + 内外对流膜串联热阻)+ twoFluid(opts.wall) → r.wall | 层流 Nu=3.66 · 过渡 Gnielinski(1976) · 湍流 Dittus-Boelter(Pr0.3) · 海流 Churchill-Bernstein(1977) · 埋地 Carslaw-Jaeger arccosh | 已闭环 |
| MEG / 甲醇抑制剂追踪 水合物曲线下移 |
Ph.inhibitorDT / inhibitorRequired / inhibitorTrack + hydrateTempK/Risk(inh 尾参) + twoFluid(opts.inhibitor) → r.inhibitor | Hammerschmidt(1934) · Nielsen-Bucklin(1983) · 闭式/二分逆解求所需 wt% | 已闭环 |
| LEAK / 放空 孔口泄放 + 受控降压 |
Ph.leakRate(壅塞+亚临界) / Ph.blowdown(多变积分) + twoFluid(opts.leak) → r.leak(质量汇计入守恒恒等式) | 临界压力比 rCrit=(2/(γ+1))γ/(γ−1) · 不可压孔口 · polytropic 放空 + 膨胀降温 | 已闭环 |
| 侵蚀 EROSION 流动保障 / 砂蚀速率 |
Ph.erosion(API 14E C 因子临界流速 + Salama 沙蚀指数)+ twoFluid 报告步(沿用腐蚀聚合范式) | API RP 14E vallow=C/√ρm · Salama(1980) 沙质量通量×v² 冲击动能 · 几何因子直/弯/三通有序 | 已闭环 |
| 矿物结垢 SCALE CaCO₃ / BaSO₄ 饱和指数 |
Ph.scaleTendency(温度依赖 SI)+ Ph.scaleDeposit(传质限制沉积)+ twoFluid(opts.scale) → r.scale(逐站最严重 SI) | SI=log₁₀(IAP/Ksp),25°C Ksp 已知(CaCO₃ 10−8.48、BaSO₄ 10−9.97),升温加剧结垢 | 已闭环 |
| 乳状液黏度 EMULSION 重油 + 卤水在体黏度 |
Ph.emulsionViscosity(Taylor/Einstein/Brønsted/Mooney/HNB)+ twoFluid(opts.emulsion) 注入油相表观黏度 | Taylor(1932) μc(1+2.5φ(μd+0.4μc)/(μd+μc)) · Hatschek 高含水分率发散 | 已闭环 |
| 清管轨迹 PIGGING 压差驱动 pig-run |
Ph.pigTrajectory(力平衡 ODE 解析解 tanh + 到达时间解析反解)+ twoFluid(opts.pig) 以进出口 Δp 报告级聚合 | vterm=√((Δp−Δpstatic)/(Kb·ρ)) · tarr=acosh(eLω/vt)/ω · 静摩擦阈值卡死 | 已闭环 |
| 顶部腐蚀 TOP 管顶冷凝驱动 |
Ph.topCorrosion(Antoine 壁面饱和压判定冷凝通量 × CO₂ 加速)+ twoFluid(opts.top) 逐站聚合最严重 TOP 速率 | Antoine pws(T) · 过饱和冷凝质量通量 · r∝mcond·(1+c·pCO₂) | 已闭环 |
| 沥青质沉积 ASPHALTENE 固体管理 / 析出+沉积 |
Ph.asphalteneOnset / Ph.asphaltene(AOP(T) 随温升、超饱和沉淀分数、剪切抑制沉积)+ twoFluid(opts.asphaltene) 逐站聚合 | AOP(T)=AOP₀·eβ(T−T₀) · φp=φmax·tanh(k(S−1)) · 剪切 1/(1+τ/τ₀) | 已闭环 |
| 段塞捕集器 SLUG CATCHER 分离器容积筛选 |
Ph.slugCatcher(单段塞体积 A·Lslug、缓冲窗口段塞数、保守容积 Vmin=Vslug·nslug·overage)+ twoFluid(opts.slugCatcher) 报告级聚合 | Vslug=A·Lslug · nslug=fslug·tdesign · Vmin∝overage | 已闭环 |
| 气举 GAS LIFT 降压举升设计 |
Ph.gasLift(卸除静水头 → 反解 αreq → 举升气量 qGi=α/(1−α)·QL 与 GLR)+ twoFluid(opts.gasLift) 报告级聚合 | headRelief=ρL·g·Δz · αreq∈[0,0.95] · qGi≥0 | 已闭环 |
| 水击 WATER HAMMER 关阀瞬态增压 |
Ph.waterHammer(Joukowsky Δp=ρ·a·Δv,快/慢关阀判定)+ twoFluid(opts.waterHammer) 报告级聚合 | a=1/√(ρ(1/K+D/(E·twall))) · 临界时 2L/a · 慢关阀线性折减 | 已闭环 |
| 能力 | 实现 | 门禁 |
|---|---|---|
| 输入卡解析器 DECK PARSER 文本 → 管网模型(含设备 Δp,无损往返) |
Ph.parseDeck / Ph.serializeDeck:声明式 node/branch/fluid 语法,校验源/汇/汇合拓扑,错误收集不抛异常;GUI 文本框 + "Run deck" 按钮已接入。 |
已闭环 |
| 稳态↔瞬态网络桥 STEADY–TRANSIENT BRIDGE 稳态解作瞬态 IC/边界,反填汇/汇合压力 |
Ph.coupledNetwork:迭代 network() ↔ twoFluidNetwork,回灌节点压力(含汇合点),收敛残差记录。 |
已闭环 |
| 分叉/汇合动态耦合 DYNAMIC BIFURCATION tee 分流 / junction 汇合瞬态耦合 |
Ph.transientCoupled:逐步重解 network() 得支路出口压,下游汇/汇合节点硬边界或线存电容松弛演化。 | 已闭环 |
| 双向耦合求解 BIDIRECTIONAL COUPLED SOLVE twoFluid 段塞背压 → 每采样点重解 network(),节点压随段塞周期振荡 |
Ph.bidirectionalCouple:校验 nodes/branches 拓扑(≥1 源 & ≥1 汇),对每条支路取 twoFluid 出口压时序 pOut[k],注入下游边界后逐点重解 network(),记录节点压迹。 |
已闭环 |
| 含环网络求解 LOOP-AWARE NETWORK 用户授权"重做水力雅可比"的低风险实现 |
Ph.networkWithLoops:无环图字节级委托 network();含环图用并查集求生成树(交 network() 解)+ Hardy-Cross 校正闭合回路,满足节点质量平衡 + 回路水头闭合。雅可比装配本身不改。 | 已闭环 |
| 物理库 / 流体库 PHYSICS LIBRARY 9 预设流体 + Norsok/H2S 腐蚀 + AMR 网格加密 |
Ph.fluidLibrary / Ph.fluidPreset(lightOil·mediumOil·heavyOil·condensate·richGas·leanGas·producedWater·seawater·bitumen);Ph.corrosionNorsok(3.2√pCO₂·fT,钟形 60–80 ℃ 最差)/ Ph.corrosionH2S(NACE MR0175);Ph.amrRefine(误差超 tol 插中点)。 | 已闭环 |
| 图形化网络编辑器 GRAPHICAL NETWORK BUILDER SVG 画布拖点连线 → deck 无损往返 |
NetEditor(app-eng.js):#net_canvas SVG 画 source/sink/junction/branch,调 serializeDeck 写回 #net_deck;纯英文标签,零新增 UI i18n 键。 | 已闭环 |
| 参数敏感性 SENSITIVITY 单参数扫描,量化输出敏感度 |
Ph.sensitivity:扫 param∈values,抽取关键输出(压降等),输出随参数序列。 |
已闭环 |
| 蒙特卡洛不确定性 MONTE-CARLO P10/P50/P90 风险量化 |
Ph.monteCarlo:分布采样(uniform/normal,种子可复现),输出均值/标准差/分位数。 | 已闭环 |
| 批量工况对比 BATCH 多工况列表化比选 |
Ph.batchRun:跑一组命名工况并抽取对比关键输出 + 稳定性标记。 | 已闭环 |
twoFluid / coupledNetwork),不触碰 network() 雅可比、不改动 twoFluid 默认液压路径。全部以解析/确定性方式可复现,零回归。
| 交付 | 说明 | 门禁 |
|---|---|---|
| 自动化验证器 Ph.validate | 一键跑 B1–B7 + GAP,返回 allPass / nPass / nTotal / 各 case 细节。 | validate 40/40 · extensions 63/63 · olga 115/115 · arch 38/38 · study 11/11 |
| 可分享报告 validation.html | 自包含静态报告页,渲染基准对照表 + 压降缺口表 + 方法论结论。 | HTTP 200 |
| 全套门禁 | validate 40 · multiphase 280 · flowsheet 291 · integ ALL · worker 16 · thermal 9 · extensions 63 · olga 115 · arch 38 · study 11 · physics_ext 21 · network_loop 8;chk_i18n 0 未解 · twoway_gate 845 键全解 · node --check 通过。红线增强(#128–#131)已闭环;Deepening 已进阶两轮(①双向 PVT 反馈接入 bidirectionalCouple 稳态重解;②本轮进一步接入 transientCoupled 并让 bidirectionalCouple 支持含环网络(networkWithLoops),水平漂移流/重油+蜡各加第三组极端工况标定),零回归。 | 零回归 |
network() 与 multiphase.js 的瞬态内核仍不互通 —— 这是相对 OLGA 最大的架构级差距。两流体网络(#74)仅单向把稳态结果折成瞬态入口条件。