   lib _lens_traced.py  sha256 adcd1cee14dc7a0a
   RN=1024 ray_subsample=4  post-DOE groups only, final_distance=0 final_leg='paraxial' (no readout stage)
   guard band at ray_subsample=4: [0.8900, 1.0500]

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)
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)
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)
NULL INTERVENTION order (0, 0) config ship: all six stages array_equal=True  max|dE|=0.000e+00
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)  config ship (C5=True, C6=True, GUARD=False)  [15s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  9.613e-10 6.825232e-08 6.824182e-08  0.999846  -2.22e-16    0    0    0 6.824182e-08
   1   51.234  30.733  2.679e-12 6.824182e-08 6.824096e-08  0.999988   0.00e+00    0    0    0 6.824096e-08
   2   51.235  31.502  5.820e-13 6.824096e-08 6.821260e-08  0.999584  -2.22e-16    0    0    1 6.821260e-08
   3   44.912  31.766  3.158e-11 6.821260e-08 6.818150e-08  0.999544   0.00e+00    0    0    1 6.818150e-08
   4   38.432  27.176  1.825e-13 6.818150e-08 6.814156e-08  0.999414   2.22e-16    0    0    1 6.814156e-08
   5   33.211  20.397  3.571e-10 6.814156e-08 6.809872e-08  0.999371        nan    0    0    1 6.809872e-08
  END TO END  P_out(last)/P_in(first) = 0.997750
    = prod(elem) 0.997750 x prod(1-clip) 1.000000 x prod(leg) 1.000000  [check 0.997750]
    aperture-clipped (legitimate) total: 1.353e-09
    HALO at last-group exit (about traced exit chief +0.0000,+0.0000 mm): g1 2.409e-01 g2 7.195e-03 g4 3.400e-03 g8 0.000e+00
        amax4 7.701e-01  r_rms 0.9349 mm  core 0.6204 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17575/65536 pixels (26.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 14911/65536 pixels (22.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 5150/65536 pixels (7.9%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 13787/65536 pixels (21.0%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 60079/65536 pixels (91.7%) did not converge to tol=3.321e-07 m within
    [chain 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|

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)  config shipG (C5=True, C6=True, GUARD=True)  [17s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  9.613e-10 6.825232e-08 6.824182e-08  0.999846  -2.22e-16    0    0    0 6.824182e-08
   1   51.234  30.733  2.719e-12 6.824182e-08 6.824096e-08  0.999988  -2.22e-16    0    0    0 6.824096e-08
   2   51.235  31.502  5.942e-13 6.824096e-08 6.821260e-08  0.999584   0.00e+00    0    0    1 6.821260e-08
   3   44.912  31.766  3.057e-11 6.821260e-08 6.818151e-08  0.999544   4.44e-16    0    0    1 6.818151e-08
   4   38.432  27.176  1.539e-13 6.818151e-08 6.814157e-08  0.999414   4.44e-16    0    0    1 6.814157e-08
   5   33.211  20.397  3.517e-10 6.814157e-08 6.786737e-08  0.995976        nan    0    0    1 6.786737e-08
  END TO END  P_out(last)/P_in(first) = 0.994360
    = prod(elem) 0.994360 x prod(1-clip) 1.000000 x prod(leg) 1.000000  [check 0.994360]
    aperture-clipped (legitimate) total: 1.347e-09
    HALO at last-group exit (about traced exit chief +0.0000,+0.0000 mm): g1 2.375e-01 g2 3.766e-03 g4 0.000e+00 g8 0.000e+00
        amax4 0.000e+00  r_rms 0.8384 mm  core 0.6205 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 16959/65536 pixels (25.9%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 10497/65536 pixels (16.0%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3538/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 2131/65536 pixels (3.3%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24235/65536 pixels (37.0%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 51263/65536 pixels (78.2%) did not converge to tol=3.321e-07 m within

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)  config noC6 (C5=True, C6=False, GUARD=False)  [9s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  9.613e-10 6.825232e-08 6.824182e-08  0.999846   0.00e+00    0    0    0 6.824182e-08
   1   51.234  30.733  2.833e-12 6.824182e-08 6.824096e-08  0.999988   0.00e+00    0    0    0 6.824096e-08
   2   51.235  31.502  6.247e-13 6.824096e-08 6.821259e-08  0.999584   4.44e-16    0    0    1 6.821259e-08
   3   44.912  31.766  3.169e-11 6.821259e-08 6.818142e-08  0.999543   6.66e-16    0    0    1 6.818142e-08
   4   38.432  27.176  8.118e-13 6.818142e-08 6.814133e-08  0.999412   2.22e-16    0    0    1 6.814133e-08
   5   33.211  20.397  3.048e-10 6.814133e-08 6.786201e-08  0.995901        nan    0    0    1 6.786201e-08
  END TO END  P_out(last)/P_in(first) = 0.994281
    = prod(elem) 0.994281 x prod(1-clip) 1.000000 x prod(leg) 1.000000  [check 0.994281]
    aperture-clipped (legitimate) total: 1.302e-09
    HALO at last-group exit (about traced exit chief +0.0000,+0.0000 mm): g1 2.396e-01 g2 4.242e-03 g4 3.606e-11 g8 0.000e+00
        amax4 1.395e-05  r_rms 0.8422 mm  core 0.6201 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 5134/65536 pixels (7.8%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 1702/65536 pixels (2.6%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 19131/65536 pixels (29.2%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 53687/65536 pixels (81.9%) did not converge to tol=3.321e-07 m within
    [chain 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|
    [chain 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|

  IDENTITY ship vs shipG: all stages array_equal=False  max|dE|=1.364e-01  per-stage [XXXXXX]
  IDENTITY ship vs noC6: all stages array_equal=False  max|dE|=1.364e-01  per-stage [XXXXXX]
  IDENTITY shipG vs noC6: all stages array_equal=False  max|dE|=2.700e-02  per-stage [XXXXXX]

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)
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)
NULL INTERVENTION order (-1, 0) config ship: all six stages array_equal=True  max|dE|=0.000e+00
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 (-1, 0)  config ship (C5=True, C6=True, GUARD=False)  [24s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  2.662e-09 6.825232e-08 6.823550e-08  0.999753   6.66e-16    0    0    0 6.823550e-08
   1   51.234  30.733  8.485e-11 6.823550e-08 6.821747e-08  0.999736   6.66e-16    0    0    0 6.821747e-08
   2   51.235  31.502  2.247e-11 6.821747e-08 6.819009e-08  0.999599   6.66e-16    0    0    1 6.819009e-08
   3   44.912  31.766  9.118e-10 6.819009e-08 6.815913e-08  0.999546   1.11e-15    0    0    1 6.815913e-08
   4   38.432  27.176  2.679e-10 6.815913e-08 6.811918e-08  0.999414   8.88e-16    0    0    1 6.811918e-08
   5   33.211  20.397  7.691e-09 6.811918e-08 6.784786e-08  0.996017        nan    0    0    1 6.784786e-08
  END TO END  P_out(last)/P_in(first) = 0.994074
    = prod(elem) 0.994074 x prod(1-clip) 1.000000 x prod(leg) 1.000000  [check 0.994074]
    aperture-clipped (legitimate) total: 1.164e-08
    HALO at last-group exit (about traced exit chief -0.4799,+0.0000 mm): g1 2.388e-01 g2 3.808e-03 g4 3.318e-10 g8 0.000e+00
        amax4 8.238e-05  r_rms 0.8384 mm  core 0.6196 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17575/65536 pixels (26.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 14911/65536 pixels (22.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3562/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 2113/65536 pixels (3.2%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24186/65536 pixels (36.9%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 51448/65536 pixels (78.5%) did not converge to tol=3.321e-07 m within

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 (-1, 0)  config shipG (C5=True, C6=True, GUARD=True)  [23s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  2.662e-09 6.825232e-08 6.823550e-08  0.999753   6.66e-16    0    0    0 6.823550e-08
   1   51.234  30.733  8.582e-11 6.823550e-08 6.821747e-08  0.999736   6.66e-16    0    0    0 6.821747e-08
   2   51.235  31.502  2.280e-11 6.821747e-08 6.819009e-08  0.999599   6.66e-16    0    0    1 6.819009e-08
   3   44.912  31.766  9.222e-10 6.819009e-08 6.815913e-08  0.999546   1.11e-15    0    0    1 6.815913e-08
   4   38.432  27.176  2.695e-10 6.815913e-08 6.811918e-08  0.999414   1.11e-15    0    0    1 6.811918e-08
   5   33.211  20.397  7.712e-09 6.811918e-08 6.784787e-08  0.996017        nan    0    0    1 6.784787e-08
  END TO END  P_out(last)/P_in(first) = 0.994074
    = prod(elem) 0.994074 x prod(1-clip) 1.000000 x prod(leg) 1.000000  [check 0.994074]
    aperture-clipped (legitimate) total: 1.167e-08
    HALO at last-group exit (about traced exit chief -0.4799,+0.0000 mm): g1 2.388e-01 g2 3.808e-03 g4 3.304e-10 g8 0.000e+00
        amax4 8.206e-05  r_rms 0.8384 mm  core 0.6196 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17575/65536 pixels (26.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 14911/65536 pixels (22.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3562/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 2113/65536 pixels (3.2%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24186/65536 pixels (36.9%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 51448/65536 pixels (78.5%) did not converge to tol=3.321e-07 m within

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 (-1, 0)  config noC6 (C5=True, C6=False, GUARD=False)  [16s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  2.662e-09 6.825232e-08 6.823550e-08  0.999753   6.66e-16    0    0    0 6.823550e-08
   1   51.234  30.733  8.742e-11 6.823550e-08 6.821747e-08  0.999736   6.66e-16    0    0    0 6.821747e-08
   2   51.235  31.502  2.115e-11 6.821747e-08 6.819009e-08  0.999599   6.66e-16    0    0    1 6.819009e-08
   3   44.912  31.766  9.078e-10 6.819009e-08 6.815908e-08  0.999545   1.11e-15    0    0    1 6.815908e-08
   4   38.432  27.176  1.135e-09 6.815908e-08 6.811897e-08  0.999411   1.11e-15    0    0    1 6.811897e-08
   5   33.211  20.397  9.042e-09 6.811897e-08 6.784690e-08  0.996006        nan    0    0    1 6.784690e-08
  END TO END  P_out(last)/P_in(first) = 0.994060
    = prod(elem) 0.994060 x prod(1-clip) 1.000000 x prod(leg) 1.000000  [check 0.994060]
    aperture-clipped (legitimate) total: 1.386e-08
    HALO at last-group exit (about traced exit chief -0.4799,+0.0000 mm): g1 2.414e-01 g2 4.360e-03 g4 1.425e-09 g8 0.000e+00
        amax4 9.843e-05  r_rms 0.8429 mm  core 0.6194 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17575/65536 pixels (26.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 14911/65536 pixels (22.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3560/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 1735/65536 pixels (2.6%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24509/65536 pixels (37.4%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 53301/65536 pixels (81.3%) did not converge to tol=3.321e-07 m within

  IDENTITY ship vs shipG: all stages array_equal=False  max|dE|=9.686e-05  per-stage [XXXXXX]
  IDENTITY ship vs noC6: all stages array_equal=False  max|dE|=2.133e-02  per-stage [XXXXXX]
  IDENTITY shipG vs noC6: all stages array_equal=False  max|dE|=2.133e-02  per-stage [XXXXXX]

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)
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)
NULL INTERVENTION order (-2, 0) config ship: all six stages array_equal=True  max|dE|=0.000e+00
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 (-2, 0)  config ship (C5=True, C6=True, GUARD=False)  [22s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  1.820e-09 6.825232e-08 6.822816e-08  0.999646   4.44e-16    0    0    1 6.822816e-08
   1   51.234  30.733  3.095e-10 6.822816e-08 6.821885e-08  0.999864   4.44e-16    0    0    1 6.821885e-08
   2   51.235  31.502  9.073e-11 6.821885e-08 6.819216e-08  0.999609   6.66e-16    0    0    1 6.819216e-08
   3   44.912  31.766  2.815e-09 6.819216e-08 6.816109e-08  0.999544   6.66e-16    0    0    1 6.816109e-08
   4   38.432  27.176  4.881e-11 6.816109e-08 6.812129e-08  0.999416   8.88e-16    0    0    1 6.812129e-08
   5   33.211  20.397  2.353e-08 6.812129e-08 6.785176e-08  0.996043        nan    0    0    1 6.785176e-08
  END TO END  P_out(last)/P_in(first) = 0.994131
    = prod(elem) 0.994131 x prod(1-clip) 1.000000 x prod(leg) 1.000000  [check 0.994131]
    aperture-clipped (legitimate) total: 2.862e-08
    HALO at last-group exit (about traced exit chief -0.9595,+0.0000 mm): g1 2.388e-01 g2 3.764e-03 g4 2.270e-07 g8 2.217e-07
        amax4 5.727e-03  r_rms 0.8382 mm  core 0.6195 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17575/65536 pixels (26.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 14911/65536 pixels (22.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3528/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 2037/65536 pixels (3.1%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24166/65536 pixels (36.9%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 52154/65536 pixels (79.6%) did not converge to tol=3.321e-07 m within

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 (-2, 0)  config shipG (C5=True, C6=True, GUARD=True)  [22s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  1.820e-09 6.825232e-08 6.822816e-08  0.999646   6.66e-16    0    0    1 6.822816e-08
   1   51.234  30.733  3.100e-10 6.822816e-08 6.821885e-08  0.999864   4.44e-16    0    0    1 6.821885e-08
   2   51.235  31.502  9.133e-11 6.821885e-08 6.819216e-08  0.999609   8.88e-16    0    0    1 6.819216e-08
   3   44.912  31.766  2.826e-09 6.819216e-08 6.816109e-08  0.999544   8.88e-16    0    0    1 6.816109e-08
   4   38.432  27.176  4.884e-11 6.816109e-08 6.812129e-08  0.999416   1.11e-15    0    0    1 6.812129e-08
   5   33.211  20.397  2.355e-08 6.812129e-08 6.785176e-08  0.996043        nan    0    0    1 6.785176e-08
  END TO END  P_out(last)/P_in(first) = 0.994131
    = prod(elem) 0.994131 x prod(1-clip) 1.000000 x prod(leg) 1.000000  [check 0.994131]
    aperture-clipped (legitimate) total: 2.865e-08
    HALO at last-group exit (about traced exit chief -0.9595,+0.0000 mm): g1 2.388e-01 g2 3.765e-03 g4 2.274e-07 g8 2.220e-07
        amax4 5.749e-03  r_rms 0.8382 mm  core 0.6195 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17575/65536 pixels (26.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 14911/65536 pixels (22.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3528/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 2037/65536 pixels (3.1%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24165/65536 pixels (36.9%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 52153/65536 pixels (79.6%) did not converge to tol=3.321e-07 m within

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 (-2, 0)  config noC6 (C5=True, C6=False, GUARD=False)  [16s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  1.820e-09 6.825232e-08 6.822816e-08  0.999646   4.44e-16    0    0    1 6.822816e-08
   1   51.234  30.733  3.290e-10 6.822816e-08 6.821886e-08  0.999864   6.66e-16    0    0    1 6.821886e-08
   2   51.235  31.502  9.370e-11 6.821886e-08 6.819217e-08  0.999609   6.66e-16    0    0    1 6.819217e-08
   3   44.912  31.766  2.805e-09 6.819217e-08 6.816108e-08  0.999544   8.88e-16    0    0    1 6.816108e-08
   4   38.432  27.176  9.092e-11 6.816108e-08 6.812113e-08  0.999414   1.11e-15    0    0    1 6.812113e-08
   5   33.211  20.397  2.302e-08 6.812113e-08 6.785253e-08  0.996057        nan    0    0    1 6.785253e-08
  END TO END  P_out(last)/P_in(first) = 0.994142
    = prod(elem) 0.994142 x prod(1-clip) 1.000000 x prod(leg) 1.000000  [check 0.994142]
    aperture-clipped (legitimate) total: 2.816e-08
    HALO at last-group exit (about traced exit chief -0.9595,+0.0000 mm): g1 2.426e-01 g2 4.461e-03 g4 7.750e-09 g8 0.000e+00
        amax4 1.601e-04  r_rms 0.8443 mm  core 0.6196 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17575/65536 pixels (26.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 14911/65536 pixels (22.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3528/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 1723/65536 pixels (2.6%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24550/65536 pixels (37.5%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 53337/65536 pixels (81.4%) did not converge to tol=3.321e-07 m within

  IDENTITY ship vs shipG: all stages array_equal=False  max|dE|=2.021e-03  per-stage [XXXXXX]
  IDENTITY ship vs noC6: all stages array_equal=False  max|dE|=5.063e-02  per-stage [XXXXXX]
  IDENTITY shipG vs noC6: all stages array_equal=False  max|dE|=5.074e-02  per-stage [XXXXXX]

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)
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)
NULL INTERVENTION order (-3, 0) config ship: all six stages array_equal=True  max|dE|=0.000e+00
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 (-3, 0)  config ship (C5=True, C6=True, GUARD=False)  [22s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  3.144e-09 6.825232e-08 6.823436e-08  0.999737   4.44e-16    0    0    1 6.823436e-08
   1   51.234  30.733  3.045e-10 6.823436e-08 6.822436e-08  0.999853   6.66e-16    0    0    1 6.822436e-08
   2   51.235  31.502  1.817e-10 6.822436e-08 6.819668e-08  0.999594   1.11e-15    0    0    1 6.819668e-08
   3   44.912  31.766  2.887e-09 6.819668e-08 6.816565e-08  0.999545   6.66e-16    0    0    1 6.816565e-08
   4   38.432  27.176  1.038e-10 6.816565e-08 6.812534e-08  0.999409   1.11e-15    0    0    1 6.812534e-08
   5   33.211  20.397  3.987e-08 6.812534e-08 6.784715e-08  0.995917        nan    0    0    1 6.784715e-08
  END TO END  P_out(last)/P_in(first) = 0.994064
    = prod(elem) 0.994064 x prod(1-clip) 1.000000 x prod(leg) 1.000000  [check 0.994064]
    aperture-clipped (legitimate) total: 4.649e-08
    HALO at last-group exit (about traced exit chief -1.4384,+0.0000 mm): g1 2.387e-01 g2 3.771e-03 g4 2.234e-07 g8 2.103e-07
        amax4 5.873e-03  r_rms 0.8380 mm  core 0.6194 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17469/65536 pixels (26.7%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 14911/65536 pixels (22.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3542/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 2012/65536 pixels (3.1%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24174/65536 pixels (36.9%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 52390/65536 pixels (79.9%) did not converge to tol=3.321e-07 m within

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 (-3, 0)  config shipG (C5=True, C6=True, GUARD=True)  [23s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  3.144e-09 6.825232e-08 6.823436e-08  0.999737   6.66e-16    0    0    1 6.823436e-08
   1   51.234  30.733  3.078e-10 6.823436e-08 6.822436e-08  0.999853   6.66e-16    0    0    1 6.822436e-08
   2   51.235  31.502  1.822e-10 6.822436e-08 6.819668e-08  0.999594   8.88e-16    0    0    1 6.819668e-08
   3   44.912  31.766  2.897e-09 6.819668e-08 6.816565e-08  0.999545   6.66e-16    0    0    1 6.816565e-08
   4   38.432  27.176  1.040e-10 6.816565e-08 6.812534e-08  0.999409   1.11e-15    0    0    1 6.812534e-08
   5   33.211  20.397  3.987e-08 6.812534e-08 6.784715e-08  0.995917        nan    0    0    1 6.784715e-08
  END TO END  P_out(last)/P_in(first) = 0.994064
    = prod(elem) 0.994064 x prod(1-clip) 1.000000 x prod(leg) 1.000000  [check 0.994064]
    aperture-clipped (legitimate) total: 4.650e-08
    HALO at last-group exit (about traced exit chief -1.4384,+0.0000 mm): g1 2.387e-01 g2 3.771e-03 g4 1.633e-07 g8 1.502e-07
        amax4 5.684e-03  r_rms 0.8379 mm  core 0.6194 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17356/65536 pixels (26.5%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 14911/65536 pixels (22.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3542/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 2012/65536 pixels (3.1%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24174/65536 pixels (36.9%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 52388/65536 pixels (79.9%) did not converge to tol=3.321e-07 m within

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 (-3, 0)  config noC6 (C5=True, C6=False, GUARD=False)  [12s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  3.144e-09 6.825232e-08 6.823436e-08  0.999737   6.66e-16    0    0    1 6.823436e-08
   1   51.234  30.733  3.142e-10 6.823436e-08 6.822436e-08  0.999853   6.66e-16    0    0    1 6.822436e-08
   2   51.235  31.502  1.815e-10 6.822436e-08 6.819668e-08  0.999594   6.66e-16    0    0    1 6.819668e-08
   3   44.912  31.766  2.901e-09 6.819668e-08 6.816558e-08  0.999544   6.66e-16    0    0    1 6.816558e-08
   4   38.432  27.176  1.646e-10 6.816558e-08 6.812513e-08  0.999407   8.88e-16    0    0    1 6.812513e-08
   5   33.211  20.397  4.252e-08 6.812513e-08 6.785109e-08  0.995977        nan    0    0    1 6.785109e-08
  END TO END  P_out(last)/P_in(first) = 0.994121
    = prod(elem) 0.994121 x prod(1-clip) 1.000000 x prod(leg) 1.000000  [check 0.994121]
    aperture-clipped (legitimate) total: 4.923e-08
    HALO at last-group exit (about traced exit chief -1.4384,+0.0000 mm): g1 2.445e-01 g2 4.651e-03 g4 1.918e-08 g8 0.000e+00
        amax4 2.063e-04  r_rms 0.8467 mm  core 0.6199 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17356/65536 pixels (26.5%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 14911/65536 pixels (22.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3536/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 1806/65536 pixels (2.8%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24558/65536 pixels (37.5%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 53401/65536 pixels (81.5%) did not converge to tol=3.321e-07 m within

  IDENTITY ship vs shipG: all stages array_equal=False  max|dE|=1.534e-03  per-stage [XXXXXX]
  IDENTITY ship vs noC6: all stages array_equal=False  max|dE|=2.747e-01  per-stage [XXXXXX]
  IDENTITY shipG vs noC6: all stages array_equal=False  max|dE|=2.748e-01  per-stage [XXXXXX]

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)
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)
NULL INTERVENTION order (-4, 0) config ship: all six stages array_equal=True  max|dE|=0.000e+00
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 (-4, 0)  config ship (C5=True, C6=True, GUARD=False)  [23s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  5.042e-09 6.825232e-08 6.823987e-08  0.999818   4.44e-16    0    0    1 6.823987e-08
   1   51.234  30.733  1.523e-09 6.823987e-08 6.822069e-08  0.999719   6.66e-16    0    0    1 6.822069e-08
   2   51.235  31.502  1.119e-09 6.822069e-08 6.819255e-08  0.999588   6.66e-16    0    0    1 6.819255e-08
   3   44.912  31.766  2.503e-09 6.819255e-08 6.816152e-08  0.999545   8.88e-16    0    0    1 6.816152e-08
   4   38.432  27.176  1.775e-10 6.816152e-08 6.812126e-08  0.999409   1.11e-15    0    0    1 6.812126e-08
   5   33.211  20.397  1.550e-06 6.812126e-08 6.784226e-08  0.995906        nan    0    0    1 6.784226e-08
  END TO END  P_out(last)/P_in(first) = 0.993992
    = prod(elem) 0.993994 x prod(1-clip) 0.999998 x prod(leg) 1.000000  [check 0.993992]
    aperture-clipped (legitimate) total: 1.560e-06
    HALO at last-group exit (about traced exit chief -1.9161,+0.0000 mm): g1 2.386e-01 g2 3.739e-03 g4 2.628e-08 g8 0.000e+00
        amax4 2.368e-04  r_rms 0.8376 mm  core 0.6191 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17575/65536 pixels (26.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 15136/65536 pixels (23.1%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3534/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 1924/65536 pixels (2.9%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24157/65536 pixels (36.9%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 52695/65536 pixels (80.4%) did not converge to tol=3.321e-07 m within

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 (-4, 0)  config shipG (C5=True, C6=True, GUARD=True)  [23s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  5.042e-09 6.825232e-08 6.823987e-08  0.999818   4.44e-16    0    0    1 6.823987e-08
   1   51.234  30.733  1.523e-09 6.823987e-08 6.822069e-08  0.999719   6.66e-16    0    0    1 6.822069e-08
   2   51.235  31.502  1.119e-09 6.822069e-08 6.819255e-08  0.999588   6.66e-16    0    0    1 6.819255e-08
   3   44.912  31.766  2.503e-09 6.819255e-08 6.816152e-08  0.999545   8.88e-16    0    0    1 6.816152e-08
   4   38.432  27.176  1.775e-10 6.816152e-08 6.812126e-08  0.999409   1.11e-15    0    0    1 6.812126e-08
   5   33.211  20.397  1.550e-06 6.812126e-08 6.784226e-08  0.995906        nan    0    0    1 6.784226e-08
  END TO END  P_out(last)/P_in(first) = 0.993992
    = prod(elem) 0.993994 x prod(1-clip) 0.999998 x prod(leg) 1.000000  [check 0.993992]
    aperture-clipped (legitimate) total: 1.560e-06
    HALO at last-group exit (about traced exit chief -1.9161,+0.0000 mm): g1 2.386e-01 g2 3.739e-03 g4 2.628e-08 g8 0.000e+00
        amax4 2.368e-04  r_rms 0.8376 mm  core 0.6191 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17575/65536 pixels (26.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 15136/65536 pixels (23.1%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3534/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 1924/65536 pixels (2.9%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24157/65536 pixels (36.9%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 52695/65536 pixels (80.4%) did not converge to tol=3.321e-07 m within

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 (-4, 0)  config noC6 (C5=True, C6=False, GUARD=False)  [15s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  5.042e-09 6.825232e-08 6.823988e-08  0.999818   6.66e-16    0    0    1 6.823988e-08
   1   51.234  30.733  1.551e-09 6.823988e-08 6.822067e-08  0.999719   6.66e-16    0    0    1 6.822067e-08
   2   51.235  31.502  1.133e-09 6.822067e-08 6.819253e-08  0.999588   6.66e-16    0    0    1 6.819253e-08
   3   44.912  31.766  2.513e-09 6.819253e-08 6.816149e-08  0.999545   1.33e-15    0    0    1 6.816149e-08
   4   38.432  27.176  3.642e-10 6.816149e-08 6.812116e-08  0.999408   1.33e-15    0    0    1 6.812116e-08
   5   33.211  20.397  9.523e-07 6.812116e-08 6.785433e-08  0.996084        nan    0    0    1 6.785433e-08
  END TO END  P_out(last)/P_in(first) = 0.994169
    = prod(elem) 0.994170 x prod(1-clip) 0.999999 x prod(leg) 1.000000  [check 0.994169]
    aperture-clipped (legitimate) total: 9.629e-07
    HALO at last-group exit (about traced exit chief -1.9161,+0.0000 mm): g1 2.473e-01 g2 4.857e-03 g4 2.831e-08 g8 0.000e+00
        amax4 2.000e-04  r_rms 0.8500 mm  core 0.6204 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17575/65536 pixels (26.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 15136/65536 pixels (23.1%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3532/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 1862/65536 pixels (2.8%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24592/65536 pixels (37.5%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 53483/65536 pixels (81.6%) did not converge to tol=3.321e-07 m within

  IDENTITY ship vs shipG: all stages array_equal=True  max|dE|=0.000e+00  per-stage [======]
  IDENTITY ship vs noC6: all stages array_equal=False  max|dE|=1.128e-01  per-stage [XXXXXX]
  IDENTITY shipG vs noC6: all stages array_equal=False  max|dE|=1.128e-01  per-stage [XXXXXX]

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)
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)
NULL INTERVENTION order (-4, -2) config ship: all six stages array_equal=True  max|dE|=0.000e+00
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 (-4, -2)  config ship (C5=True, C6=True, GUARD=False)  [23s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  6.994e-09 6.825232e-08 6.822616e-08  0.999617   6.66e-16    0    0    1 6.822616e-08
   1   51.234  30.733  4.066e-09 6.822616e-08 6.819854e-08  0.999595   4.44e-16    0    0    1 6.819854e-08
   2   51.235  31.502  3.485e-09 6.819854e-08 6.817207e-08  0.999612   6.66e-16    0    0    1 6.817207e-08
   3   44.912  31.766  1.820e-08 6.817207e-08 6.814107e-08  0.999545   6.66e-16    0    0    1 6.814107e-08
   4   38.432  27.176  1.276e-08 6.814107e-08 6.810091e-08  0.999411   1.55e-15    0    0    1 6.810091e-08
   5   33.211  20.397  1.020e-05 6.810091e-08 6.783026e-08  0.996036        nan    0    0    1 6.783026e-08
  END TO END  P_out(last)/P_in(first) = 0.993816
    = prod(elem) 0.993826 x prod(1-clip) 0.999990 x prod(leg) 1.000000  [check 0.993816]
    aperture-clipped (legitimate) total: 1.025e-05
    HALO at last-group exit (about traced exit chief -1.9151,-0.9575 mm): g1 2.384e-01 g2 3.720e-03 g4 2.653e-08 g8 0.000e+00
        amax4 2.335e-04  r_rms 0.8375 mm  core 0.6193 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17575/65536 pixels (26.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 15136/65536 pixels (23.1%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3527/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 1866/65536 pixels (2.8%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24095/65536 pixels (36.8%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 53004/65536 pixels (80.9%) did not converge to tol=3.321e-07 m within

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 (-4, -2)  config shipG (C5=True, C6=True, GUARD=True)  [24s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  6.994e-09 6.825232e-08 6.822616e-08  0.999617   6.66e-16    0    0    1 6.822616e-08
   1   51.234  30.733  4.066e-09 6.822616e-08 6.819854e-08  0.999595   4.44e-16    0    0    1 6.819854e-08
   2   51.235  31.502  3.485e-09 6.819854e-08 6.817207e-08  0.999612   6.66e-16    0    0    1 6.817207e-08
   3   44.912  31.766  1.820e-08 6.817207e-08 6.814107e-08  0.999545   6.66e-16    0    0    1 6.814107e-08
   4   38.432  27.176  1.276e-08 6.814107e-08 6.810091e-08  0.999411   1.55e-15    0    0    1 6.810091e-08
   5   33.211  20.397  1.020e-05 6.810091e-08 6.783026e-08  0.996036        nan    0    0    1 6.783026e-08
  END TO END  P_out(last)/P_in(first) = 0.993816
    = prod(elem) 0.993826 x prod(1-clip) 0.999990 x prod(leg) 1.000000  [check 0.993816]
    aperture-clipped (legitimate) total: 1.025e-05
    HALO at last-group exit (about traced exit chief -1.9151,-0.9575 mm): g1 2.384e-01 g2 3.720e-03 g4 2.653e-08 g8 0.000e+00
        amax4 2.335e-04  r_rms 0.8375 mm  core 0.6193 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17575/65536 pixels (26.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 15136/65536 pixels (23.1%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3527/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 1866/65536 pixels (2.8%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24095/65536 pixels (36.8%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 53004/65536 pixels (80.9%) did not converge to tol=3.321e-07 m within

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 (-4, -2)  config noC6 (C5=True, C6=False, GUARD=False)  [15s] ===
 grp    dx/um   ap/mm       clip         P_in        P_out      elem leg_after-1  ENG  FLD  NYQ      chain P
------------------------------------------------------------------------------------------------------------
   0   51.234  29.969  6.994e-09 6.825232e-08 6.822616e-08  0.999617   6.66e-16    0    0    1 6.822616e-08
   1   51.234  30.733  4.074e-09 6.822616e-08 6.819853e-08  0.999595   4.44e-16    0    0    1 6.819853e-08
   2   51.235  31.502  3.521e-09 6.819853e-08 6.817206e-08  0.999612   8.88e-16    0    0    1 6.817206e-08
   3   44.912  31.766  1.823e-08 6.817206e-08 6.814108e-08  0.999546   8.88e-16    0    0    1 6.814108e-08
   4   38.432  27.176  6.226e-09 6.814108e-08 6.810088e-08  0.999410   1.11e-15    0    0    1 6.810088e-08
   5   33.211  20.397  8.159e-06 6.810088e-08 6.784049e-08  0.996185        nan    0    0    1 6.784049e-08
  END TO END  P_out(last)/P_in(first) = 0.993966
    = prod(elem) 0.993974 x prod(1-clip) 0.999992 x prod(leg) 1.000000  [check 0.993966]
    aperture-clipped (legitimate) total: 8.198e-06
    HALO at last-group exit (about traced exit chief -1.9151,-0.9575 mm): g1 2.486e-01 g2 4.986e-03 g4 2.507e-08 g8 2.285e-12
        amax4 2.256e-04  r_rms 0.8519 mm  core 0.6210 mm
    [chain warn x2] apply_real_lens_traced Newton inversion: 17575/65536 pixels (26.8%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 15136/65536 pixels (23.1%) did not converge to tol=5.123e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 3527/65536 pixels (5.4%) did not converge to tol=5.123e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 1907/65536 pixels (2.9%) did not converge to tol=4.491e-07 m within 1
    [chain warn x2] apply_real_lens_traced Newton inversion: 24634/65536 pixels (37.6%) did not converge to tol=3.843e-07 m within
    [chain warn x2] apply_real_lens_traced Newton inversion: 53895/65536 pixels (82.2%) did not converge to tol=3.321e-07 m within

  IDENTITY ship vs shipG: all stages array_equal=True  max|dE|=0.000e+00  per-stage [======]
  IDENTITY ship vs noC6: all stages array_equal=False  max|dE|=3.456e-01  per-stage [XXXXXX]
  IDENTITY shipG vs noC6: all stages array_equal=False  max|dE|=3.456e-01  per-stage [XXXXXX]

