=== Virial identities for 2+/2- Weber (numerical verification) ===

q-homogeneity (U is degree -1 in q):   sum_k q_k ∂U/∂q_k = -U
  residual max |sum q.∂U/∂q + U| = 3.885780586188048e-15

p-identity (U_weber is degree +2 in p):   sum_k p_k ∂H/∂p_k = 2T + 2 U_weber
  residual max |LHS - RHS| = 7.105427357601002e-15

Therefore  d/dt(Σ q·p) = Σ p·(∂H/∂p) − Σ q·(∂H/∂q)
                       = (2T + 2 U_w) − (−U_c − U_w)
                       = 2T + U_c + 3 U_w.
Time-averaging on bounded orbits (⟨d/dt(q·p)⟩=0):
     2⟨T⟩ + ⟨U_c⟩ + 3⟨U_w⟩ = 0
i.e.  2⟨T⟩ = −⟨U_c⟩ − 3⟨U_w⟩   (Weber-modified virial).
Reduces to the classical 2⟨T⟩ = −⟨U⟩ when U_weber → 0.
