目录 / 文档-技术白皮书 / 02-EFT.WP.Core.Equations v1.1
I. 章节目标与原则
- 建立从方程到数值实现的最小闭环:离散化 → 装配 → 约束 → 求解 → 指标评估 → 回归。
- 以 I20-* 接口为唯一落地通道,所有公式与符号遵循《Core.Terms》与本卷前述约定。
- 一致性判据围绕三类度量:L2,L_inf,T_arr(见第2章与第8章)。
II. 网格与离散算子(S90-1)
- 离散内积与范数
inner_h[u,v] def= ( ∑_{i ∈ cells} u_i * v_i * |V_i| );
L2_h[u] def= sqrt( inner_h[u,u] );L_inf_h[u] def= max_i |u_i|。 - 离散梯度/散度守恒性
div_h 与 grad_h 必须满足离散高斯定理:
∑_{i} ( div_h F )_i * |V_i| = ∑_{faces} ( F_f · nu_f ) * A_f。
以上作为 assemble_operator("div", ...) 与 assemble_operator("grad", ...) 的验收标准。 - S90-1(离散守恒约束)
对任意封闭体域 V,若第6章边界给出零通量,则 ∑_{i∈V} ( div_h F )_i * |V_i| = 0。
III. 路径离散与到达时一致性(S90-2)
- 线元与样值
给定 gamma(ell) 的分段近似与 ds = { ds_i }、样值 n_eff_i:
T_arr_h def= ( ∑_i ( n_eff_i / c_ref ) * ds_i )。 - 接口一致性
T_arr_h = propagate_time( n_eff_path={ n_eff_i }, ds={ ds_i }, c_ref )(对接 I20-4)。
要求与连续口径一致:T_arr = ( ∫_{gamma(ell)} ( n_eff / c_ref ) d ell )(见第2章)。 - S90-2(分段可加)
若 gamma = ⋃_k gamma_k,则 T_arr_h = ( ∑_k T_arr_h^{(k)} )。
IV. 强式到弱式到代数式(S90-3)
- 强式模板(示例):∂_t q + div( J_q ) = S_q on Ω。
- 弱式模板(见第7章):weak= inner_Ω[w, ∂_t q] + ( ∫_{Ω} grad[w] · J_q d V ) = inner_Ω[w, S_q] + B[w]。
- 代数装配
使用 assemble_operator 得到矩阵/算子 M(质量)、K(扩散/对流),边界项由 bc_dirichlet、bc_neumann 注入:
M * dq_dt + K(q) = f + b。 - S90-3(线性化一致性)
非线性项经一次牛顿线性化 K(q) ≈ K(q^n) + J(q^n) * ( q^{n+1} - q^n ),其雅可比 J(·) 必须与弱式 Gateaux 变分一致(见第7章)。
V. 时间推进与稳定性(S90-4)
- 显式推进(示例)
q^{n+1} = q^n + Δt * M^{-1} * ( f^n + b^n - K(q^n) )。
稳定步长对流上界:Δt ≤ CFL * min_i( Δx_i / |u|_{max,i} ),其中 CFL ∈ (0,1]。
扩散上界:Δt ≤ σ * min_i( Δx_i^2 / ( 2 * d * κ_{max,i} ) ),σ ∈ (0,1],d 为空间维。 - 隐式推进(示例)
q^{n+1} 解自 M * ( q^{n+1} - q^n ) / Δt + K( q^{n+1} ) = f^{n+1} + b^{n+1},用 solve_nonlinear。 - S90-4(能量界)
对稳态扩散型 K 正定,隐式欧拉满足离散能量衰减:inner_h[ q^{n+1}, q^{n+1} ] ≤ inner_h[ q^n, q^n ]。
VI. 边界与初始的一致性注入(S90-5)
- 初始条件注入
q^0 = IC(x) 映射到网格点/单元中心;若弱式有质量矩阵,则设 M * q^0 = inner_Ω[φ_i, IC]。 - Dirichlet 边界
使用 bc_dirichlet(mask, value) 执行强制替换或罚项弱约束,需在方程注记所用方式。 - Neumann 边界
使用 bc_neumann(mask, flux) 将 ∫_{∂Ω_N} w * flux d A 注入右端 b。 - S90-5(边界优先级)
当同一位置既给定 value 又给定 flux 时,按第6章模板优先 Dirichlet,Neumann 退化为校核量,不参与装配。
VII. 误差度量与守恒诊断(S90-6)
- 差异度量
E_L2 def= L2_h[ x - y ];E_Linf def= L_inf_h[ x - y ]。
路径指标:E_T def= | T_arr(x) - T_arr(y) |,其中 T_arr(·) 由 propagate_time 计算。 - 守恒残差
对闭合系统:C_err^n def= ( ∑_i q_i^{n+1} * |V_i| - ∑_i q_i^n * |V_i| ) - Δt * ( ∑_i S_{q,i}^n * |V_i| ),期望 C_err^n approx 0。 - S90-6(一致性门槛)
通过条件:E_L2 ≤ τ_L2 且 E_Linf ≤ τ_Linf 且 E_T ≤ τ_T,阈值在试验计划中显式声明。
VIII. 网格与时间步收敛(S90-7)
- 阶次估计
设网格序列 h_k = h_0 / 2^k,误差 E_k = L2_h[ q_{h_k} - q_{h_{k+1}} ],则
p_est def= log2( E_k / E_{k+1} )。 - S90-7(阶次验收)
若理论阶次为 p_th,则 | p_est - p_th | ≤ ε_p 记为通过,建议 ε_p ∈ [0.1, 0.3]。
IX. 统计与粗粒化在数值中的兑现(S90-8)
- 时间平均离散
avg_t[q; Δt] ≈ ( 1 / N_t ) * ( ∑_{k=0}^{N_t-1} q^{n-k} ),N_t = round( Δt / Δt_num )。 - 体平均离散
avg_V[q; V] ≈ ( 1 / |V| ) * ( ∑_{c ∈ V} q_c * |V_c| )。 - 通量封闭注入
若采用 J_sgs^q approx - K_sgs^q * grad[ bar_q ](见第8章),则在装配中加入 K_sgs^q 到扩散项系数表 coeffs。
X. 最小工作序列(I20- 对接)*
- 使用 register_equation(code, eqn, kind, anchors, depends) 为目标方程建立登记(见各章 Sxx-*)。
- 准备网格与路径,调用 discretize_path(gamma, scheme, h) 得 ds 与节点。
- 通过 assemble_operator 构建 M、K 等算子;用 bc_dirichlet 与 bc_neumann 注入边界。
- 设定 IC 得到 q^0;选择时间推进:solve_linear 或 solve_nonlinear。
- 若涉及到达时,调用 propagate_time(n_eff_path, ds, c_ref) 计算 T_arr。
- 利用 compare_solutions(x, y, metrics=["L2","L_inf","T_arr"]) 评估与基准的差异。
- 记录 E_L2、E_Linf、E_T、C_err,按 S90-6/7 给出通过/否决结论。
- 以 export_equations("yaml") 与外部日志归档所有运行元数据(网格、步长、阈值)。
XI. 回归与基准(S90-9)
- 参考解
y_ref 由解析解、网格外推或高精度解获得;若涉及路径量,另存 T_arr_ref。 - S90-9(回归规则)
pass if ( L2 ≤ τ_L2 and L_inf ≤ τ_Linf ) and | T_arr - T_arr_ref | ≤ τ_T;
不通过时输出最小反例:网格级、时间步、边界组合与对应残差。
XII. 典型异常与诊断卡
- 量纲校验失败:check_dim_equation(eqn) 非 [target] → 回退到方程定义处核对系数与单位(见《Core.Terms》第6章)。
- 路径不显式:缺少 gamma(ell) 或 d ell → 拒收(见第2章与第8章 Lint)。
- 保守量漂移:非零 C_err^n 持续累积 → 检查 bc_* 注入、div_h/grad_h 配对与时间积分器。
- 阶次塌陷:p_est 明显低于 p_th → 排查网格质量、边界层处理与子格通量参数。
XIII. Lint 与禁用清单
- 禁止写作 ∫ n d ell / c、∫ n_eff / c_ref d ell 等缺括号或路径的式子;应为 ( ∫_{gamma(ell)} ( n_eff / c_ref ) d ell )。
- 禁止 n 与 n_eff、T_fil 与 T_trans 混用;禁止裸 c、T、n。
- 禁止省略窗口与体域参数:avg_t[·; Δt]、avg_V[·; V] 必须显式。
XIV. 可注册条目与示例
- register_equation("S90-1","discrete inner products and Gauss consistency","definition",anchors=["§II"],depends=["S50-*","S60-*"])
- register_equation("S90-2","discrete arrival time T_arr_h = sum_i (n_eff_i / c_ref) * ds_i","identity",anchors=["§III"],depends=["S20-*","I20-4"])
- register_equation("S90-3","assembly M dq/dt + K(q) = f + b with weak consistency","procedure",anchors=["§IV"],depends=["S70-*"])
- register_equation("S90-4","time stepping stability bounds (CFL/diffusion)","guideline",anchors=["§V"],depends=["S50-*"])
- register_equation("S90-6","error metrics and conservation residuals","metric",anchors=["§VII"],depends=["I20-5"])
- register_equation("S90-7","order-of-accuracy estimation p_est = log2(E_k/E_{k+1})","metric",anchors=["§VIII"],depends=[])
- register_equation("S90-9","regression rule with thresholds on L2, L_inf, T_arr","criterion",anchors=["§XI"],depends=["I20-5","S20-*"])
版权与许可(CC BY 4.0)
版权声明:除另有说明外,《能量丝理论》(含文本、图表、插图、符号与公式)的著作权由作者(“屠广林”先生)享有。
许可方式:本作品采用 Creative Commons 署名 4.0 国际许可协议(CC BY 4.0)进行许可;在注明作者与来源的前提下,允许为商业或非商业目的进行复制、转载、节选、改编与再分发。
署名格式(建议):作者:“屠广林”;作品:《能量丝理论》;来源:energyfilament.org;许可证:CC BY 4.0。
首次发布: 2025-11-11|当前版本:v5.1
协议链接:https://creativecommons.org/licenses/by/4.0/