
########## ORDER 0,0   C6 = oracle (flag=False, degree=None) ##########
D:\Metacept\Neurophos\Python_Test_Scripts\Free_Space_Optics\Lumenairy\validation\repro_traced_carrier_121\_d121_common.py:78: UserWarning: D:\Metacept\Neurophos\Python_Test_Scripts\Free_Space_Optics\Reverse_Symmetric_ASM\tx4designstudy121\20260707 dll Tx02-MSOP16.zmx: Zemax surface 9 is a DGRATING.  Its GEOMETRY is imported as the flat/conic surface it is, and its grating data (period 113.7656 um, design order -4, azimuth 0.0 deg) is attached at prescription['diffractives'] -- but NO diffraction is applied by apply_real_lens / apply_real_lens_traced, which propagate the surface as flat.  Run the orders explicitly: put {'doe': rx['diffractives'][k]} in propagate_traced_carrier_chain's groups list (its gap_before 51.5393 mm / gap_after 0.0000 mm are then bookkept for you -- give the group that FOLLOWS the last DOE entry gap_before=0, since gap_after already carries that leg), one order per congruence via propagate_traced_carrier_chain_multi.
  rx = la.load_zemax_zmx(ZMX)
D:\Metacept\Neurophos\Python_Test_Scripts\Free_Space_Optics\Lumenairy\validation\repro_traced_carrier_121\_d121_common.py:78: UserWarning: D:\Metacept\Neurophos\Python_Test_Scripts\Free_Space_Optics\Reverse_Symmetric_ASM\tx4designstudy121\20260707 dll Tx02-MSOP16.zmx: Zemax surface 11 is a DGRATING.  Its GEOMETRY is imported as the flat/conic surface it is, and its grating data (period 113.7656 um, design order -2, azimuth 270.0 deg) is attached at prescription['diffractives'] -- but NO diffraction is applied by apply_real_lens / apply_real_lens_traced, which propagate the surface as flat.  Run the orders explicitly: put {'doe': rx['diffractives'][k]} in propagate_traced_carrier_chain's groups list (its gap_before 0.0000 mm / gap_after 7.0000 mm are then bookkept for you -- give the group that FOLLOWS the last DOE entry gap_before=0, since gap_after already carries that leg), one order per congruence via propagate_traced_carrier_chain_multi.
  rx = la.load_zemax_zmx(ZMX)
order (+0,+0)  L,M = +0.000,+0.000 mrad   RN=1024 RS=4 UP=1 NOUT=61 DXO=0.39999999999999997 BACK=5.0 mm
  n_chain=0  groups [] via CHAIN, [0, 1, 2, 3, 4, 5] via ORACLE   [4s, 12565 rays, grid 161^2 @ 51.233 um, w 6318.1 um]
     envelope per-pixel phase step 0.0000 rad (OK); integrand step p50/p99.9/max 0.0033/0.0518/0.0521 cycles (OK)
     live power 100.0000 %   centroid (+0.000,-0.000) um (chief +0.000,+0.000)
     FWHM  3.453 um   EE3  90.08   EE6  99.95   EE12 100.00

LOCALISATION, order (+0,+0):  n_chain  FWHM um   EE3 %   EE6 %   EE12 %   d(EE3)
      0     3.453   90.08   99.95  100.00   

########## ORDER 0,0   C6 = deg4 (flag=True, degree=4) ##########
D:\Metacept\Neurophos\Python_Test_Scripts\Free_Space_Optics\Lumenairy\validation\repro_traced_carrier_121\_d121_common.py:78: UserWarning: D:\Metacept\Neurophos\Python_Test_Scripts\Free_Space_Optics\Reverse_Symmetric_ASM\tx4designstudy121\20260707 dll Tx02-MSOP16.zmx: Zemax surface 9 is a DGRATING.  Its GEOMETRY is imported as the flat/conic surface it is, and its grating data (period 113.7656 um, design order -4, azimuth 0.0 deg) is attached at prescription['diffractives'] -- but NO diffraction is applied by apply_real_lens / apply_real_lens_traced, which propagate the surface as flat.  Run the orders explicitly: put {'doe': rx['diffractives'][k]} in propagate_traced_carrier_chain's groups list (its gap_before 51.5393 mm / gap_after 0.0000 mm are then bookkept for you -- give the group that FOLLOWS the last DOE entry gap_before=0, since gap_after already carries that leg), one order per congruence via propagate_traced_carrier_chain_multi.
  rx = la.load_zemax_zmx(ZMX)
D:\Metacept\Neurophos\Python_Test_Scripts\Free_Space_Optics\Lumenairy\validation\repro_traced_carrier_121\_d121_common.py:78: UserWarning: D:\Metacept\Neurophos\Python_Test_Scripts\Free_Space_Optics\Reverse_Symmetric_ASM\tx4designstudy121\20260707 dll Tx02-MSOP16.zmx: Zemax surface 11 is a DGRATING.  Its GEOMETRY is imported as the flat/conic surface it is, and its grating data (period 113.7656 um, design order -2, azimuth 270.0 deg) is attached at prescription['diffractives'] -- but NO diffraction is applied by apply_real_lens / apply_real_lens_traced, which propagate the surface as flat.  Run the orders explicitly: put {'doe': rx['diffractives'][k]} in propagate_traced_carrier_chain's groups list (its gap_before 0.0000 mm / gap_after 7.0000 mm are then bookkept for you -- give the group that FOLLOWS the last DOE entry gap_before=0, since gap_after already carries that leg), one order per congruence via propagate_traced_carrier_chain_multi.
  rx = la.load_zemax_zmx(ZMX)
order (+0,+0)  L,M = +0.000,+0.000 mrad   RN=1024 RS=4 UP=1 NOUT=61 DXO=0.39999999999999997 BACK=5.0 mm
     [warn x2] apply_real_lens_traced Newton inversion: 17575/65536 pixels (26.8%) did not converge to tol=5.123e-07 m within 12 iterations.  Affected pixels keep th
     [warn x2] apply_real_lens_traced Newton inversion: 14911/65536 pixels (22.8%) did not converge to tol=5.123e-07 m within 12 iterations.  Affected pixels keep th
     [warn x1] apply_real_lens_traced: the exit beam converges at NA_exit=0.0401, so the exit wavefront needs dx <= lambda/(2*NA_exit) = 16.33 um but the grid has dx
     [warn x2] apply_real_lens_traced Newton inversion: 5150/65536 pixels (7.9%) did not converge to tol=5.123e-07 m within 12 iterations.  Affected pixels keep thei
     [warn x1] apply_real_lens_traced: the exit beam converges at NA_exit=0.1562, so the exit wavefront needs dx <= lambda/(2*NA_exit) = 4.19 um but the grid has dx 
     [warn x1] apply_real_lens_traced: the exit beam converges at NA_exit=0.2940, so the exit wavefront needs dx <= lambda/(2*NA_exit) = 2.23 um but the grid has dx 
     [warn x2] apply_real_lens_traced Newton inversion: 13787/65536 pixels (21.0%) did not converge to tol=3.843e-07 m within 12 iterations.  Affected pixels keep th
     [warn x1] _sphere_parab_conversion: the cos^2 taper ONSET 0.75*r_safe=5.397 mm (band-limit radius r_safe=7.196 mm = (|R|^3 lambda/dx)^(1/3) at R=-21.139 mm, dx=
     [warn x1] apply_real_lens_traced: the exit beam converges at NA_exit=0.3007, so the exit wavefront needs dx <= lambda/(2*NA_exit) = 2.18 um but the grid has dx 
     [warn x2] apply_real_lens_traced Newton inversion: 60079/65536 pixels (91.7%) did not converge to tol=3.321e-07 m within 12 iterations.  Affected pixels keep th
     [warn x1] _sphere_parab_conversion: the cos^2 taper ONSET 0.75*r_safe=1.969 mm (band-limit radius r_safe=2.625 mm = (|R|^3 lambda/dx)^(1/3) at R=-7.712 mm, dx=3
  n_chain=6  groups [0, 1, 2, 3, 4, 5] via CHAIN, [] via ORACLE   [30s, 39941 rays, grid 217^2 @ 33.211 um, w 1185.8 um]
     envelope per-pixel phase step 3.1355 rad (ALIASED -- launch directions unreliable); integrand step p50/p99.9/max 0.0016/1.3121/1.85 cycles (CHECK)
     live power 100.0000 %   centroid (+0.000,+0.000) um (chief +0.000,+0.000)
     FWHM  3.718 um   EE3  89.20   EE6  99.78   EE12  99.99

LOCALISATION, order (+0,+0):  n_chain  FWHM um   EE3 %   EE6 %   EE12 %   d(EE3)
      6     3.718   89.20   99.78   99.99   
