13. Reading a paper against its own numbers¶
Three equations in this manual were transcribed from a source that is wrong in print. Each was caught the same way. Validate an implementation against the defining quantity, an integral or an identity or a limit, never against a transcription of the result. Where a paper disagrees with itself, implement the reading its own numbers pin down. The last two sections are a different case, where the package’s own measurements settled what to ship.
13.1. Rouse b₂: validate against the integral¶
The capillary-absorption fit (5.5) has four coefficients [Rouse et al., 1970]. The available scan of the paper prints \(b_2\) as “−0·0375”, a digit transposition of the true −0.3750. The error is invisible against the \(\sin^2\theta = 0\) column of the paper’s own table, which constrains only \(a_1\) and \(a_2\), and it is small at low \(\mu R\). At \(\mu R = 1\) it is 0.0821 wrong. What settles it is a quadrature of the defining volume-average integral ([Prince, 2004] eq. 6.3.3.4): with −0.3750 the maximum error over the whole domain is 0.0035, exactly the bound the paper claims for its fit. Never validate an absorption expression on a constant-θ slice.
Source: rietx.model.absorption
The same discipline is structural for the flat-plate cases: they are closed-form integrals rather than fits, so the tests check them against an adaptive quadrature of the defining path-length integral, sharing no constant with the implementation.
13.2. Two Coelho papers vs. their own tables¶
13.2.1. Coelho (2005), eq. (1)¶
The paper [Coelho, 2005] prints the early-iteration damping factor as \(\mathrm{Max}[(k+1)/N_k,\, 1]\) while the surrounding text describes a reduction. A reduction would be Min. Measured on real refinements, neither reading helps once parameter removal shrinks \(N_k\), and the printed Max form then actively degrades the step. The shipped factor is 1, kept as a selectable option because it was measured rather than argued.
Source: rietx.optimize.bccg
13.2.2. Coelho (2018), eq. (9)¶
The paper [Coelho, 2018] defines the predicted cost change as \(\Delta S_t = \Delta p^\top b\). Taken literally with the paper’s own \(b = -J^\top r\), that is positive for a descent step while \(\Delta S < 0\), so every good step would report \(r_u = \Delta S_t/\Delta S < 0\). That contradicts the paper’s own Table 1 (\(r_u \approx 1.003\) on a near-quadratic step), its §1.2 statement and its Fig. 10 distribution. The self-consistent reading is
Source: rietx.optimize.lm
pinned by an identity: on an exactly linear model the Gauss-Newton step gives \(r_u \equiv 1\). That is the calibration test, and the only way to know the λ schedule is being fed the quantity its published constants were tuned for.
13.3. The FCJ corner at \(s = h\)¶
The FCJ quadrature (3.16) is built around \(|s - h|\) and \(\min(s, h)\), both non-differentiable at \(s = h\), and the default instrument starts both apertures equal [Finger et al., 1994]. Measured on the SRM 660c protocol, the analytic \(S/L\) and \(H/L\) Jacobian columns agree with a residual-vector finite difference to only ~2 %, where every other column is ≤ 1e-5, because the analytic derivative is one-sided while the central difference straddles the corner. At \(s = h\) the two columns are identical. A Gauss-Newton step moves the pair along the diagonal forever, the correlation guard reports ρ = +1.000, the bounded LM converges with the pair still bit-identical, and TRF escapes onto an asymmetric solution by way of its own internal scaling. Neither escape is principled. When two drivers “disagree” like this, the finding is that the parameterisation owns a corner no step can see across.
13.4. µR, µt, and what \(\Delta R_{wp}\) judges¶
Capillary absorption (5.5) factors exactly into a scale times a Debye-Waller shape. Applied to a model with free scale and displacement parameters, \(R_{wp}\) provably cannot move (measured: 3×10⁻⁸ on real 11-BM data), while every Biso shifts by exactly the predicted (5.7). The correction is real physics with zero fit-quality signature. Flat-plate µt is the same story with the degeneracy only approximate, since 3–47 % of its signature survives the projection. It does move \(R_{wp}\), and on a genuinely thick specimen declaring a thickness moves it the wrong way. That movement is the evidence the specimen was thick.
Of the eight changes shipped in one release, none is well judged by \(\Delta R_{wp}\). Two provably cannot move it, one moves it the wrong way when it is right, three move it while changing nothing quotable, and the two largest accuracy wins are invisible in it: dispersion taking round-robin QPA from RMS 2.26 to 0.69 wt %, and absorption unbiasing ADPs by up to 1.5 Ų. Every correction therefore ships with a record field or diagnostic stating what it changed, and this manual quotes those fields rather than \(R_{wp}\) comparisons as evidence.
Source: rietx.model.absorption.equivalent_delta_biso_from_transmission