lumenairy: c:\tmp\lum_mortarp\lumenairy\__init__.py

=== (i) one uniform slab, ISOLATED, vs the analytic Fresnel slab ===
    The exact answer is N-independent, so every entry is the BASIS's own Bloch-phase error.
  -- theta=0.00, phi=0  (kx0 = 0.0000, exact R = 0.342266914) --
     N=1  M=3: 1.1e-16  M=4: 1.1e-16  M=5: 3.2e-15  M=6: 0.0e+00  M=7: 3.9e-16  M=8: 3.1e-14  M=9: 6.1e-14
     N=2  M=3: 6.7e-16  M=4: 5.0e-16  M=5: 2.1e-15  M=6: 1.8e-14  M=7: 1.1e-15  M=8: 4.5e-14  M=9: 1.5e-14
     N=3  M=3: 1.2e-15  M=4: 1.6e-15  M=5: 1.4e-14  M=6: 1.8e-14  M=7: 2.7e-14  M=8: 5.9e-14  M=9: 2.9e-15
  -- theta=0.20, phi=0  (kx0 = 0.1987, exact R = 0.350685480) --
     N=1  M=3: 1.0e-04  M=4: 1.9e-06  M=5: 6.2e-08  M=6: 2.2e-10  M=7: 1.2e-12  M=8: 6.9e-14  M=9: 1.0e-13
     N=2  M=3: 6.8e-06  M=4: 3.4e-08  M=5: 1.2e-10  M=6: 2.5e-13  M=7: 4.7e-14  M=8: 9.1e-14  M=9: 1.1e-14
     N=3  M=3: 1.4e-06  M=4: 3.3e-09  M=5: 4.6e-12  M=6: 1.8e-15  M=7: 2.8e-14  M=8: 2.3e-14  M=9: 7.1e-14
  -- theta=0.40, phi=0  (kx0 = 0.3894, exact R = 0.376053956) --
     N=1  M=3: 5.2e-03  M=4: 4.1e-04  M=5: 1.6e-05  M=6: 4.1e-07  M=7: 2.6e-09  M=8: 2.4e-10  M=9: 3.1e-12
     N=2  M=3: 2.7e-04  M=4: 9.4e-06  M=5: 9.9e-08  M=6: 7.6e-10  M=7: 4.1e-12  M=8: 3.1e-14  M=9: 4.8e-14
     N=3  M=3: 7.9e-05  M=4: 6.5e-07  M=5: 4.2e-09  M=6: 1.4e-11  M=7: 4.5e-14  M=8: 1.3e-13  M=9: 3.1e-13
  -- theta=0.60, phi=0  (kx0 = 0.5646, exact R = 0.419326957) --
     N=1  M=3: 5.5e-02  M=4: 6.9e-02  M=5: 6.4e-04  M=6: 4.5e-05  M=7: 1.1e-06  M=8: 8.0e-08  M=9: 2.1e-09
     N=2  M=3: 4.5e-03  M=4: 1.8e-04  M=5: 4.5e-06  M=6: 7.4e-08  M=7: 8.5e-10  M=8: 6.9e-12  M=9: 8.3e-14
     N=3  M=3: 6.8e-04  M=4: 1.7e-05  M=5: 2.0e-07  M=6: 1.4e-09  M=7: 7.0e-12  M=8: 1.1e-13  M=9: 7.2e-15

  -- CONICAL (theta=0.35 rad, phi=0.6 rad) vs berreman_jones_1d (relative dJones) --
     N=1  M=3: 2.9e-03  M=4: 1.3e-04  M=5: 5.1e-06  M=6: 5.5e-08  M=7: 6.2e-10  M=8: 5.1e-12  M=9: 9.3e-14
     N=2  M=3: 2.1e-04  M=4: 2.4e-06  M=5: 1.5e-08  M=6: 6.0e-11  M=7: 1.8e-13  M=8: 1.0e-13  M=9: 2.6e-13
     N=3  M=3: 4.2e-05  M=4: 2.1e-07  M=5: 5.9e-10  M=6: 1.0e-12  M=7: 2.4e-14  M=8: 1.3e-13  M=9: 8.6e-14

=== (ii) the uniform layer INSIDE a mortar cascade, vs the EXACT 1-D oracle ===
    stripe A(duty 1/2, N=2, M=8) | uniform eps=2.25 (grid, M_u) | stripe B(duty 1/3, N=3, M=7)
  -- theta=0.00: 1-D oracle deg12-vs-deg14 self-gap 2.32e-07 --
     grid=1 (q=grid*(M_u-1))  M=3: 5.7e-01  M=4: 3.6e-01  M=5: 1.4e-01  M=6: 2.5e-01  M=7: 5.0e-02  M=8: 3.1e-02  M=10: 1.3e-02  M=12: 4.4e-03
     grid=2 (q=grid*(M_u-1))  M=3: 9.1e-02  M=4: 5.1e-02  M=5: 5.7e-02  M=6: 9.0e-03  M=7: 1.0e-02  M=8: 4.2e-03  M=10: 3.5e-03  M=12: 3.5e-03
     grid=3 (q=grid*(M_u-1))  M=3: 2.0e-02  M=4: 4.3e-02  M=5: 6.3e-03  M=6: 4.8e-03  M=7: 3.4e-03  M=8: 3.5e-03  M=10: 3.5e-03  M=12: 3.5e-03
  -- theta=0.20: 1-D oracle deg12-vs-deg14 self-gap 6.42e-07 --
     grid=1 (q=grid*(M_u-1))  M=3: 3.2e-01  M=4: 2.9e-01  M=5: 1.5e-01  M=6: 1.6e-01  M=7: 6.2e-02  M=8: 1.4e-01  M=10: 4.8e-02  M=12: 2.0e-02
     grid=2 (q=grid*(M_u-1))  M=3: 1.7e-01  M=4: 9.9e-02  M=5: 7.8e-02  M=6: 5.1e-02  M=7: 3.5e-02  M=8: 1.7e-02  M=10: 1.2e-02  M=12: 1.2e-02
     grid=3 (q=grid*(M_u-1))  M=3: 7.4e-02  M=4: 7.5e-02  M=5: 3.1e-02  M=6: 1.6e-02  M=7: 1.2e-02  M=8: 1.2e-02  M=10: 1.2e-02  M=12: 1.2e-02
  -- theta=0.40: 1-D oracle deg12-vs-deg14 self-gap 2.00e-07 --
     grid=1 (q=grid*(M_u-1))  M=3: 4.3e-01  M=4: 3.9e-01  M=5: 2.8e-01  M=6: 2.1e-01  M=7: 2.1e-01  M=8: 1.5e-01  M=10: 7.1e-02  M=12: 3.1e-02
     grid=2 (q=grid*(M_u-1))  M=3: 2.6e-01  M=4: 1.6e-01  M=5: 3.7e-01  M=6: 1.0e-01  M=7: 8.5e-02  M=8: 3.0e-02  M=10: 2.5e-02  M=12: 2.5e-02
     grid=3 (q=grid*(M_u-1))  M=3: 1.1e-01  M=4: 2.7e-01  M=5: 4.8e-02  M=6: 3.0e-02  M=7: 2.5e-02  M=8: 2.5e-02  M=10: 2.5e-02  M=12: 2.5e-02

=== (iii) the SHARED-GRID path (union N=6, one global M), same oracle ===
  theta=0.00  M=4 (q=18):  7.4e-03 [ 11.2s]   M=5 (q=24):  4.5e-04 [ 68.5s]
  theta=0.20  M=4 (q=18):  2.8e-02 [ 11.5s]   M=5 (q=24):  3.5e-03 [ 70.0s]
  theta=0.40  M=4 (q=18):  3.9e-02 [ 11.5s]   M=5 (q=24):  2.8e-03 [ 69.6s]

wrote C:\tmp\lum_mortarp\validation\probe_pmm2d_staggered_mortar\f4_uniform_oblique.json
