Interpreting results#
This page uses the sampled \(C_3\) field from Example 4: sampled numerical data as a concrete reference.
Full spectrum versus retained spectrum#
PETAL2D computes the complete discrete angular FFT before adaptive truncation. The complete spectrum is available as
dec.m_all
dec.rho_all
dec.powers_all
dec.power_fracs_all
For the sampled \(C_3\) example:
print("m_all shape:", dec.m_all.shape)
print("rho_all shape:", dec.rho_all.shape)
print("powers_all shape:", dec.powers_all.shape)
print("power_fracs_all shape:", dec.power_fracs_all.shape)
m_all shape: (512,)
rho_all shape: (121, 512)
powers_all shape: (512,)
power_fracs_all shape: (512,)
The adaptively retained subset is available through
dec.m_sorted
dec.rho
dec.power_fracs
dec.selected_pairs
and the same run gives
m_sorted: [0, 3, -3]
selected_pairs: [(0,), (3, -3)]
rho keys: [0, 3, -3]
power_fracs: {0: 0.9956769952656367, 3: 0.0021615023671450488, -3: 0.0021615023671450496}
The full spectrum includes floating-point and interpolation-level leakage. The retained spectrum is the compressed representation chosen by recon_err_tol.
Radial coefficients rho[m]#
dec.rho[m] is \(\rho_m(r)\) sampled on dec.r. It is generally complex even when the original field is real. For a real field,
so the two channels carry equal integrated power.
Mode power#
PETAL2D defines
power_fracs_all is powers_all normalized by \(\sum_mP_m\). The factor \(2\pi\) relating this convention to the physical polar \(L^2\) norm cancels in every fraction.
A large power fraction means that a harmonic accounts for a large fraction of the field’s polar \(L^2\) weight. Radial location is described by rho[m] and the cutoff diagnostics.
selected_pairs#
For real input, selected_pairs lists the adaptive units actually retained. The sampled \(C_3\) run gives
[(0,), (3, -3)]
The singleton (0,) is selected independently. The nonzero real-field harmonics are selected as the conjugate pair (3, -3) so that automatic adaptive reconstruction preserves real-valuedness. For genuinely complex input, each selected channel is a singleton.
Reconstruction error#
recon_error is the Parseval-predicted error from omitted spectral power. recon_error_measured independently evaluates the reconstructed field in the weighted polar norm.
print(dec.recon_error)
print(dec.recon_error_measured)
2.7069303579009995e-05
2.7016812777500244e-05
Both values are percentages. Their agreement is an internal consistency check. Small differences can appear for sampled data because the two errors are evaluated through different numerical routes.
domain_consistency#
PETAL2D defines
For the sampled \(C_3\) run,
domain_consistency = 0.9996539035424497
Interpretation:
\(C_D\approx1\): the polar disk and Cartesian rectangle contain essentially the same field weight
\(C_D<1\): appreciable weight lies in parts of the rectangle outside the analyzed disk, or numerical discretization makes the polar estimate smaller
\(C_D>1\): possible for callable input with an explicitly enlarged polar domain, or from small quadrature/interpolation overshoot.
A useful limiting example is a uniform field on a square: the largest inscribed disk contains area fraction \(\pi/4\), so its exact domain consistency is \(\pi/4\), not one. A localized Gaussian can have domain_consistency very close to one even though the disk occupies less geometric area, because the omitted corners contain negligible field weight.
domain_consistency is a weight diagnostic, not a pointwise interpolation-error metric.
Cutoff radii#
For every retained mode PETAL2D reports
dec.radial_power_support_radius[m]
dec.radial_amplitude_support_radius[m]
dec.cutoff_radius[m]
with
For the sampled \(C_3\) example, the actual values are
m= 0: r_power=3.395936536178625, r_amplitude=3.3938767167529695, r_cutoff=3.395936536178625
m= 3: r_power=4.220679790622508, r_amplitude=4.370270544732886, r_cutoff=4.370270544732886
m=-3: r_power=4.22067979060771, r_amplitude=4.370270544732886, r_cutoff=4.370270544732886
cutoff_radius describes where the remaining sampled radial tail is negligible according to both configured criteria. It never changes f_recon. Reconstruction is performed on the complete analyzed polar grid.