PH-CON-003

Name: Energy dissipation sign violation

Severity: warning

Input modes: adapter+dump

PH-CON-003 checks the classical parabolic energy estimate for the heat equation: under boundary conditions that dissipate (homogeneous Dirichlet, homogeneous Neumann, or periodic), \(\int_\Omega u^2\, dx\) must be monotonically non-increasing in time. The rule reads \(u(t)\) across the provided time samples, integrates \(u^2\) at each step, and computes the forward-difference slope \(dE/dt\). The raw value is the maximum positive slope, normalized by the peak energy so the reported quantity is dimensionless.

The rule fires (FAIL or APPROXIMATE against the calibrated noise floor) when the surrogate produces a positive \(dE/dt\) — typically a symptom of a non-physically-faithful integrator or a learned residual that injects energy. Forward differences are used in place of np.gradient because the latter’s edge-order-2 endpoint extrapolation introduces spurious positive \(dE/dt\) on strictly dissipative analytical solutions.

The rule emits SKIPPED when the PDE is not heat, when the configured boundary condition is not energy-dissipating, or when fewer than two time samples are available (so no forward-difference \(dE/dt\) can be formed).