PhotonForge is a unified platform for fabrication-aware photonic design. It accelerates your photonic device design process by seamlessly integrating with simulation tools, including Tidy3D FDTD, mode, heat, and RF solvers. With built-in access to foundry PDKs, PhotonForge simplifies the transition from design to fabrication. In this seminar, we will cover the basics of PhotonForge with an overview of its main concepts and how to get started quickly in photonic integrated circuit design.
We begin by loading PhotonForge, Tidy3D, the SiEPIC OpenEBL PDK, and other common Python modules we will be using.
import matplotlib.pyplot as plt
import numpy as np
import photonforge as pf
import siepic_forge as siepic
We use the default SiEPIC PDK as our default technology and set some configurations.
tech = siepic.ebeam()
pf.config.default_technology = tech
pf.config.svg_labels = False
# Set frequency range
wavelengths = np.linspace(1.545, 1.555, 201)
freqs = pf.C_0 / wavelengths
Review the available layers in the PDK:
tech.layers
| Name | Layer | Description | Color | Pattern |
|---|---|---|---|---|
| BlackBox | (998, 0) | SiEPIC | #00408018 | solid |
| Chip design area | (290, 0) | Misc | #80005718 | hollow |
| Deep Trench | (201, 0) | Misc | #c0c0c018 | solid |
| DevRec | (68, 0) | SiEPIC | #00408018 | hollow |
| Dicing | (210, 0) | Misc | #a0a0c018 | solid |
| Errors | (999, 0) | SiEPIC | #00008018 | / |
| FDTD | (733, 0) | SiEPIC | #80005718 | hollow |
| FbrTgt | (81, 0) | SiEPIC | #00408018 | / |
| FloorPlan | (99, 0) | Misc | #8000ff18 | hollow |
| Isolation Trench | (203, 0) | Misc | #c0c0c018 | solid |
| Keep out | (202, 0) | Misc | #a0a0c018 | // |
| M1_heater | (11, 0) | Metal | #ebc63418 | xx |
| M2_router | (12, 0) | Metal | #90857018 | xx |
| M_Open | (13, 0) | Metal | #3471eb18 | xx |
| Oxide open (to BOX) | (6, 0) | Waveguides | #ffae0018 | \ |
| PinRec | (1, 10) | SiEPIC | #00408018 | / |
| PinRecM | (1, 11) | SiEPIC | #00408018 | / |
| SEM | (200, 0) | Misc | #ff00ff18 | \ |
| Si | (1, 0) | Waveguides | #ff80a818 | \\ |
| Si N | (20, 0) | Doping | #7000ff18 | \\ |
| Si N++ | (24, 0) | Doping | #0000ff18 | : |
| Si slab | (2, 0) | Waveguides | #80a8ff18 | / |
| SiN | (4, 0) | Waveguides | #a6cee318 | \\ |
| Si_Litho193nm | (1, 69) | Waveguides | #cc80a818 | \ |
| Text | (10, 0) | #0000ff18 | \ | |
| VC | (40, 0) | Metal | #3a027f18 | xx |
| Waveguide | (1, 99) | Waveguides | #ff80a818 | \ |
Inspect the extrusion specifications in this technology:
tech.extrusion_specs
[ExtrusionSpec(mask_spec=MaskSpec((6, 0)), medium=Medium(attrs={}, name=None, frequency_range=None, allow_gain=False, nonlinear_spec=None, modulation_spec=None, viz_spec=None, heat_spec=None, type='Medium', permittivity=1.0, conductivity=0.0), limits=(0, 2e+07), sidewall_angle=0),
ExtrusionSpec(mask_spec=MaskSpec((1, 0)), medium={"optical": PoleResidue(attrs={}, name=None, frequency_range=(21413747041496.2, 249827048817455.7), allow_gain=False, nonlinear_spec=None, modulation_spec=None, viz_spec=None, heat_spec=None, type='PoleResidue', eps_inf=1.0, poles=((6241549589084091j, -3.3254308736142404e+16j),)), "electrical": Medium(attrs={}, name='Si', frequency_range=None, allow_gain=False, nonlinear_spec=None, modulation_spec=None, viz_spec=None, heat_spec=None, type='Medium', permittivity=12.3, conductivity=0.0)}, limits=(0, 0.22), sidewall_angle=0),
ExtrusionSpec(mask_spec=MaskSpec((2, 0)), medium={"optical": PoleResidue(attrs={}, name=None, frequency_range=(21413747041496.2, 249827048817455.7), allow_gain=False, nonlinear_spec=None, modulation_spec=None, viz_spec=None, heat_spec=None, type='PoleResidue', eps_inf=1.0, poles=((6241549589084091j, -3.3254308736142404e+16j),)), "electrical": Medium(attrs={}, name='Si', frequency_range=None, allow_gain=False, nonlinear_spec=None, modulation_spec=None, viz_spec=None, heat_spec=None, type='Medium', permittivity=12.3, conductivity=0.0)}, limits=(0, 0.09), sidewall_angle=0),
ExtrusionSpec(mask_spec=MaskSpec((4, 0)), medium={"optical": PoleResidue(attrs={}, name=None, frequency_range=(152024573088740.38, 724311326723836.8), allow_gain=False, nonlinear_spec=None, modulation_spec=None, viz_spec=None, heat_spec=None, type='PoleResidue', eps_inf=3.031225983820944, poles=(((-0-7534484687295489j), 3530332266482328j), ((-0-4550924050946271j), 7233481618.869821j))), "electrical": Medium(attrs={}, name='Si3N4', frequency_range=None, allow_gain=False, nonlinear_spec=None, modulation_spec=None, viz_spec=None, heat_spec=None, type='Medium', permittivity=7.5, conductivity=0.0)}, limits=(0, 0.4), sidewall_angle=0),
ExtrusionSpec(mask_spec=MaskSpec(operand0=[MaskSpec((12, 0)), MaskSpec((11, 0))], operand1=[], operation='+'), medium={"optical": PoleResidue(attrs={}, name=None, frequency_range=(120884055879414.03, 2997924585809468.0), allow_gain=False, nonlinear_spec=None, modulation_spec=None, viz_spec=None, heat_spec=None, type='PoleResidue', eps_inf=1.0, poles=(((-252828226350812.1-5784339105708298j), (1948434702479989.5+2132849526706848.8j)), ((-609339941453361-3915807795417961j), (5854104539645628+9628118738288506j)), ((-351192772413652.7-1494382744693159.8j), (-1716717002731465.8+3.5658946710009096e+16j)), ((-5781257140720.449-134119053600439.05j), (1.1436600467759824e+16+1.3607215135185057e+18j)))), "electrical": LossyMetalMedium(attrs={}, name=None, frequency_range=(100000000.0, 200000000000.0), allow_gain=False, nonlinear_spec=None, modulation_spec=None, viz_spec=None, heat_spec=None, type='LossyMetalMedium', permittivity=1, conductivity=1.6, roughness=None, fit_param=SurfaceImpedanceFitterParam(attrs={}, max_num_poles=16, tolerance_rms=0.001, frequency_sampling_points=20, log_sampling=True, type='SurfaceImpedanceFitterParam'))}, limits=(2.42, 2.62), sidewall_angle=0),
ExtrusionSpec(mask_spec=MaskSpec((12, 0)), medium={"optical": PoleResidue(attrs={}, name=None, frequency_range=(154751311505403.34, 1595872899899471.8), allow_gain=False, nonlinear_spec=None, modulation_spec=None, viz_spec=None, heat_spec=None, type='PoleResidue', eps_inf=1.0, poles=(((-569801961707506.2-5919036552773929j), (547547687971021.3+294290120688174.94j)), ((-1589807268517576.2-3491672819475904j), (1.0929163739969444e+16+422154272517619.8j)), ((-291288687923238.2-3648189488671429j), (252866071416221.06-269873948615172.56j)), ((-249515901504479.2-1081669083787891.2j), (-343676981321731.5-707306264998813.6j)), ((-53249179312995.555-283474011170933.5j), (2393359178586368.5+2.9476885206131206e+17j)))), "electrical": LossyMetalMedium(attrs={}, name=None, frequency_range=(100000000.0, 200000000000.0), allow_gain=False, nonlinear_spec=None, modulation_spec=None, viz_spec=None, heat_spec=None, type='LossyMetalMedium', permittivity=1, conductivity=17.0, roughness=None, fit_param=SurfaceImpedanceFitterParam(attrs={}, max_num_poles=16, tolerance_rms=0.001, frequency_sampling_points=20, log_sampling=True, type='SurfaceImpedanceFitterParam'))}, limits=(2.62, 3.02), sidewall_angle=0),
ExtrusionSpec(mask_spec=MaskSpec((13, 0)), medium=Medium(attrs={}, name=None, frequency_range=None, allow_gain=False, nonlinear_spec=None, modulation_spec=None, viz_spec=None, heat_spec=None, type='Medium', permittivity=1.0, conductivity=0.0), limits=(3.02, 2e+07), sidewall_angle=0),
ExtrusionSpec(mask_spec=MaskSpec(operand0=[MaskSpec((201, 0)), MaskSpec((203, 0)), MaskSpec((210, 0))], operand1=[], operation='+'), medium=Medium(attrs={}, name=None, frequency_range=None, allow_gain=False, nonlinear_spec=None, modulation_spec=None, viz_spec=None, heat_spec=None, type='Medium', permittivity=1.0, conductivity=0.0), limits=(-2e+07, 2e+07), sidewall_angle=0)]
Select the type of waveguide we will use:
tech.ports
{'SiN_TE_1310_750': PortSpec(description="SiN Strip TE 1310 nm, w=750 nm", width=3, limits=(-1, 1.4), num_modes=1, added_solver_modes=0, polarization="", target_neff=2.1, path_profiles=[(0.75, 0, (4, 0))]),
'TE_1550_500': PortSpec(description="Strip TE 1550 nm, w=500 nm", width=2, limits=(-1, 1.22), num_modes=1, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(0.5, 0, (1, 0))]),
'TE_1310_410': PortSpec(description="Strip TE 1310 nm, w=410 nm", width=2, limits=(-1, 1.22), num_modes=1, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(0.41, 0, (1, 0))]),
'SiN_TE_895_450': PortSpec(description="SiN Strip TE 895 nm, w=450 nm", width=2, limits=(-1, 1.4), num_modes=1, added_solver_modes=0, polarization="", target_neff=2.1, path_profiles=[(0.45, 0, (4, 0))]),
'SiN_TM_1310_750': PortSpec(description="SiN Strip TM 1310 nm, w=750 nm", width=3, limits=(-1.5, 1.9), num_modes=1, added_solver_modes=1, polarization="TM", target_neff=2.1, path_profiles=[(0.75, 0, (4, 0))]),
'TE_1310_350': PortSpec(description="Strip TE 1310 nm, w=350 nm", width=2, limits=(-1, 1.22), num_modes=1, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(0.35, 0, (1, 0))]),
'SiN_TE_1310_800': PortSpec(description="SiN Strip TE 1310 nm, w=800 nm", width=3, limits=(-1, 1.4), num_modes=1, added_solver_modes=0, polarization="", target_neff=2.1, path_profiles=[(0.8, 0, (4, 0))]),
'TM_1310_350': PortSpec(description="Strip TM 1310 nm, w=350 nm", width=2, limits=(-1, 1.22), num_modes=1, added_solver_modes=1, polarization="TM", target_neff=3.5, path_profiles=[(0.35, 0, (1, 0))]),
'TM_1550_500': PortSpec(description="Strip TM 1550 nm, w=500 nm", width=2.5, limits=(-1, 1.22), num_modes=1, added_solver_modes=1, polarization="TM", target_neff=3.5, path_profiles=[(0.5, 0, (1, 0))]),
'SiN_TE-TM_1550_1000': PortSpec(description="SiN Strip TM 1550 nm, w=1000 nm", width=3, limits=(-1.5, 1.9), num_modes=2, added_solver_modes=0, polarization="", target_neff=2.1, path_profiles=[(1, 0, (4, 0))]),
'SiN_TM_1550_1000': PortSpec(description="SiN Strip TM 1550 nm, w=1000 nm", width=3, limits=(-1.5, 1.9), num_modes=1, added_solver_modes=1, polarization="TM", target_neff=2.1, path_profiles=[(1, 0, (4, 0))]),
'SiN_TE_1550_1000': PortSpec(description="SiN Strip TE 1550 nm, w=1000 nm", width=3, limits=(-1, 1.4), num_modes=1, added_solver_modes=0, polarization="", target_neff=2.1, path_profiles=[(1, 0, (4, 0))]),
'SiN_TE_1550_800': PortSpec(description="SiN Strip TE 1550 nm, w=800 nm", width=3, limits=(-1, 1.4), num_modes=1, added_solver_modes=0, polarization="", target_neff=2.1, path_profiles=[(0.8, 0, (4, 0))]),
'Rib_TE_1550_500': PortSpec(description="Rib (90 nm slab) TE 1550 nm, w=500 nm", width=2.5, limits=(-1, 1.22), num_modes=1, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(3, 0, (2, 0)), (0.5, 0, (1, 0))]),
'TE-TM_1550_450': PortSpec(description="Strip TE-TM 1550, w=450 nm", width=2, limits=(-1, 1.22), num_modes=2, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(0.45, 0, (1, 0))]),
'Rib_TE_1310_350': PortSpec(description="Rib (90 nm slab) TE 1310 nm, w=350 nm", width=2.35, limits=(-1, 1.22), num_modes=1, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(3, 0, (2, 0)), (0.35, 0, (1, 0))]),
'MM_TE_1550_2000': PortSpec(description="Multimode Strip TE 1550 nm, w=2000 nm", width=6, limits=(-2, 2.22), num_modes=12, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(2, 0, (1, 0))]),
'MM_TE_1550_3000': PortSpec(description="Multimode Strip TE 1550 nm, w=3000 nm", width=6, limits=(-2, 2.22), num_modes=17, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(3, 0, (1, 0))]),
'MM_SiN_TE_1550_3000': PortSpec(description="Multimode SiN Strip TE 1550 nm, w=3000 nm", width=8, limits=(-2.5, 2.9), num_modes=7, added_solver_modes=0, polarization="", target_neff=2.1, path_profiles=[(3, 0, (4, 0))]),
'Slot_TE_1550_500': PortSpec(description="Slot TE 1550 nm, w=500 nm, gap=100nm", width=2, limits=(-1, 1.22), num_modes=1, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(0.2, 0.15, (1, 0)), (0.2, -0.15, (1, 0))]),
'SiN_TE_1550_750': PortSpec(description="SiN Strip TE 1550 nm, w=750 nm", width=3, limits=(-1, 1.4), num_modes=1, added_solver_modes=0, polarization="", target_neff=2.1, path_profiles=[(0.75, 0, (4, 0))]),
'eskid_TE_1550': PortSpec(description="eskid TE 1550", width=3.31, limits=(-1, 1.22), num_modes=1, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(0.06, -0.625, (1, 0)), (0.06, 0.625, (1, 0)), (0.06, 0.505, (1, 0)), (0.06, -0.385, (1, 0)), (0.06, -0.265, (1, 0)), (0.06, 0.385, (1, 0)), (0.06, 0.265, (1, 0)), (0.06, -0.505, (1, 0)), (0.35, 0, (1, 0))])}
mode_solver = pf.port_modes("TE_1550_500", freqs)
mode_solver.plot_field("E", mode_index=0, f=freqs[0])
mode_solver.data.to_dataframe()
Loading cached simulation from /home/lucas/.tidy3d/pf_cache/G3M/ms_info-MMQ2MBBQWENPO4C7GRHX6BAASYUSSORDOXSJZJ2ILOFIZD2RK7EA.json.
| wavelength | n eff | k eff | TE (Ey) fraction | wg TE fraction | wg TM fraction | mode area | ||
|---|---|---|---|---|---|---|---|---|
| f | mode_index | |||||||
| 1.940404e+14 | 0 | 1.54500 | 2.444782 | 0.0 | 0.983412 | 0.764369 | 0.816875 | 0.191832 |
| 1.940341e+14 | 0 | 1.54505 | 2.444726 | 0.0 | 0.983409 | 0.764357 | 0.816872 | 0.191848 |
| 1.940279e+14 | 0 | 1.54510 | 2.444669 | 0.0 | 0.983407 | 0.764344 | 0.816869 | 0.191862 |
| 1.940216e+14 | 0 | 1.54515 | 2.444610 | 0.0 | 0.983404 | 0.764332 | 0.816867 | 0.191878 |
| 1.940153e+14 | 0 | 1.54520 | 2.444554 | 0.0 | 0.983402 | 0.764319 | 0.816864 | 0.191893 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1.928174e+14 | 0 | 1.55480 | 2.433790 | 0.0 | 0.982904 | 0.761952 | 0.816299 | 0.194824 |
| 1.928112e+14 | 0 | 1.55485 | 2.433737 | 0.0 | 0.982902 | 0.761940 | 0.816295 | 0.194839 |
| 1.928050e+14 | 0 | 1.55490 | 2.433682 | 0.0 | 0.982899 | 0.761928 | 0.816292 | 0.194854 |
| 1.927988e+14 | 0 | 1.55495 | 2.433629 | 0.0 | 0.982897 | 0.761915 | 0.816289 | 0.194869 |
| 1.927926e+14 | 0 | 1.55500 | 2.433570 | 0.0 | 0.982894 | 0.761903 | 0.816286 | 0.194885 |
201 rows × 7 columns
We will draw the Y splitter shape as a polygon based on Yi Zhang, Shuyu Yang, Andy Eu-Jin Lim, Guo-Qiang Lo, Christophe Galland, Tom Baehr-Jones, and Michael Hochberg, “A compact and low loss Y-junction for submicron silicon waveguide,” Opt. Express 21, 1310-1316 (2013), doi: 10.1364/OE.21.001310
# Values from the optimized Y splitter
w = np.array((0.5, 0.5, 0.6, 0.7, 0.9, 1.26, 1.4, 1.4, 1.4, 1.4, 1.31, 1.2, 1.2))
length = 2.0
y_out = 0.35
vertices = np.vstack((np.linspace(0, length, len(w)), -0.5 * w)).T
y_polygon = pf.Polygon(np.vstack((vertices, vertices[::-1] * np.array((1, -1)))))
y_polygon
s_offset = 0.75
s_length = 3.0
s_bend1 = pf.Path((length, y_out), w[0]).s_bend((length + s_length, s_offset))
s_bend2 = pf.Path((length, -y_out), w[0]).s_bend((length + s_length, -s_offset))
y_splitter = pf.Component("Y_SPLITTER")
y_splitter.add("Si", y_polygon, s_bend1, s_bend2)
from photonforge.live_viewer import LiveViewer
viewer = LiveViewer()
Starting live viewer at http://localhost:5001
viewer(y_splitter)
y_splitter.add_port(y_splitter.detect_ports(["TE_1550_500"], on_boundary="x"))
viewer(y_splitter)
y_splitter.ports
{'P2': Port(center=(5, 0.75), input_direction=180, spec=PortSpec(description="Strip TE 1550 nm, w=500 nm", width=2, limits=(-1, 1.22), num_modes=1, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(0.5, 0, (1, 0))]), extended=True, inverted=False),
'P1': Port(center=(5, -0.75), input_direction=180, spec=PortSpec(description="Strip TE 1550 nm, w=500 nm", width=2, limits=(-1, 1.22), num_modes=1, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(0.5, 0, (1, 0))]), extended=True, inverted=False),
'P0': Port(center=(0, 0), input_direction=0, spec=PortSpec(description="Strip TE 1550 nm, w=500 nm", width=2, limits=(-1, 1.22), num_modes=1, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(0.5, 0, (1, 0))]), extended=True, inverted=False)}
y_model = pf.Tidy3DModel(port_symmetries=[("P0", "P2", "P1")])
y_splitter.add_model(y_model, "Tidy3D")
y_splitter.models
{'Tidy3D': Tidy3DModel(run_time=None, medium=None, symmetry=(0, 0, 0), boundary_spec=None, monitors=(), structures=(), grid_spec=None, shutoff=None, subpixel=None, courant=None, port_symmetries=[('P0', 'P2', 'P1')], bounds=((None, None, None), (None, None, None)), verbose=True)}
_ = pf.tidy3d_plot(y_splitter, z=0.1)
y_model.estimate_cost(y_splitter, freqs)
11:33:20 -03 Maximum FlexCredit cost: 0.569 for the whole batch.
0.5691546415859006
y_s_matrix = y_splitter.s_matrix(freqs)
Loading cached simulation from /home/lucas/.tidy3d/pf_cache/7HL/fdtd_info-JJA7XSZSRA37DZ3B4TCMWRPFZFKHRCZZDVZ3XMBG5RHF6ECWT5HQ.json. Loading cached simulation from /home/lucas/.tidy3d/pf_cache/7HL/fdtd_info-H55PLJGMNQHRMJPZ2HQCTECOPNH2S2LN5H4PQQNPC3HBSXPEPVGQ.json. Progress: 100%
y_s_matrix
SMatrix(frequencies=[1.9404e+14, 1.94034e+14, 1.94028e+14, 1.94022e+14, 1.94015e+14, 1.94009e+14, 1.94003e+14, 1.93996e+14, 1.9399e+14, 1.93984e+14, 1.93978e+14, 1.93971e+14, 1.93965e+14, 1.93959e+14, 1.93953e+14, 1.93946e+14, 1.9394e+14, 1.93934e+14, 1.93927e+14, 1.93921e+14, 1.93915e+14, 1.93909e+14, 1.93902e+14, 1.93896e+14, 1.9389e+14, 1.93884e+14, 1.93877e+14, 1.93871e+14, 1.93865e+14, 1.93858e+14, 1.93852e+14, 1.93846e+14, 1.9384e+14, 1.93833e+14, 1.93827e+14, 1.93821e+14, 1.93815e+14, 1.93808e+14, 1.93802e+14, 1.93796e+14, 1.9379e+14, 1.93783e+14, 1.93777e+14, 1.93771e+14, 1.93765e+14, 1.93758e+14, 1.93752e+14, 1.93746e+14, 1.93739e+14, 1.93733e+14, 1.93727e+14, 1.93721e+14, 1.93714e+14, 1.93708e+14, 1.93702e+14, 1.93696e+14, 1.93689e+14, 1.93683e+14, 1.93677e+14, 1.93671e+14, 1.93664e+14, 1.93658e+14, 1.93652e+14, 1.93646e+14, 1.93639e+14, 1.93633e+14, 1.93627e+14, 1.93621e+14, 1.93614e+14, 1.93608e+14, 1.93602e+14, 1.93596e+14, 1.93589e+14, 1.93583e+14, 1.93577e+14, 1.93571e+14, 1.93564e+14, 1.93558e+14, 1.93552e+14, 1.93546e+14, 1.93539e+14, 1.93533e+14, 1.93527e+14, 1.93521e+14, 1.93514e+14, 1.93508e+14, 1.93502e+14, 1.93496e+14, 1.93489e+14, 1.93483e+14, 1.93477e+14, 1.93471e+14, 1.93464e+14, 1.93458e+14, 1.93452e+14, 1.93446e+14, 1.93439e+14, 1.93433e+14, 1.93427e+14, 1.93421e+14, 1.93414e+14, 1.93408e+14, 1.93402e+14, 1.93396e+14, 1.9339e+14, 1.93383e+14, 1.93377e+14, 1.93371e+14, 1.93365e+14, 1.93358e+14, 1.93352e+14, 1.93346e+14, 1.9334e+14, 1.93333e+14, 1.93327e+14, 1.93321e+14, 1.93315e+14, 1.93308e+14, 1.93302e+14, 1.93296e+14, 1.9329e+14, 1.93284e+14, 1.93277e+14, 1.93271e+14, 1.93265e+14, 1.93259e+14, 1.93252e+14, 1.93246e+14, 1.9324e+14, 1.93234e+14, 1.93227e+14, 1.93221e+14, 1.93215e+14, 1.93209e+14, 1.93203e+14, 1.93196e+14, 1.9319e+14, 1.93184e+14, 1.93178e+14, 1.93171e+14, 1.93165e+14, 1.93159e+14, 1.93153e+14, 1.93147e+14, 1.9314e+14, 1.93134e+14, 1.93128e+14, 1.93122e+14, 1.93115e+14, 1.93109e+14, 1.93103e+14, 1.93097e+14, 1.93091e+14, 1.93084e+14, 1.93078e+14, 1.93072e+14, 1.93066e+14, 1.9306e+14, 1.93053e+14, 1.93047e+14, 1.93041e+14, 1.93035e+14, 1.93028e+14, 1.93022e+14, 1.93016e+14, 1.9301e+14, 1.93004e+14, 1.92997e+14, 1.92991e+14, 1.92985e+14, 1.92979e+14, 1.92973e+14, 1.92966e+14, 1.9296e+14, 1.92954e+14, 1.92948e+14, 1.92941e+14, 1.92935e+14, 1.92929e+14, 1.92923e+14, 1.92917e+14, 1.9291e+14, 1.92904e+14, 1.92898e+14, 1.92892e+14, 1.92886e+14, 1.92879e+14, 1.92873e+14, 1.92867e+14, 1.92861e+14, 1.92855e+14, 1.92848e+14, 1.92842e+14, 1.92836e+14, 1.9283e+14, 1.92824e+14, 1.92817e+14, 1.92811e+14, 1.92805e+14, 1.92799e+14, 1.92793e+14], elements={('P2@0', 'P1@0'): [-0.0182841-0.0357247j, -0.0185047-0.0356628j, -0.0187246-0.0355998j, -0.0189444-0.0355354j, -0.0191639-0.0354696j, -0.0193839-0.0354026j, -0.0196032-0.0353342j, -0.0198225-0.0352645j, -0.0200414-0.0351936j, -0.0202602-0.0351212j, -0.0204788-0.0350476j, -0.0206973-0.0349727j, -0.0209156-0.0348966j, -0.0211335-0.034819j, -0.0213513-0.0347402j, -0.021569-0.03466j, -0.0217863-0.0345785j, -0.0220035-0.0344958j, -0.0222205-0.0344115j, -0.0224371-0.0343262j, -0.022653-0.0342397j, -0.0228691-0.0341517j, -0.0230849-0.0340624j, -0.0233006-0.0339715j, -0.0235153-0.0338799j, -0.0237305-0.0337867j, -0.0239451-0.0336921j, -0.0241589-0.0335964j, -0.0243729-0.0334992j, -0.0245867-0.0334005j, -0.0247996-0.033301j, -0.0250128-0.0331999j, -0.0252249-0.0330976j, -0.0254373-0.032994j, -0.0256488-0.0328891j, -0.0258603-0.0327827j, -0.026071-0.0326754j, -0.026282-0.0325664j, -0.0264919-0.0324564j, -0.0267013-0.0323451j, -0.026911-0.0322323j, -0.0271196-0.0321182j, -0.027328-0.0320031j, -0.0275363-0.0318863j, -0.0277437-0.0317686j, -0.0279505-0.0316494j, -0.0281569-0.0315292j, -0.028363-0.0314075j, -0.0285691-0.0312842j, -0.028774-0.03116j, -0.0289786-0.0310346j, -0.0291825-0.0309079j, -0.0293864-0.0307797j, -0.0295892-0.0306505j, -0.0297918-0.0305199j, -0.0299937-0.0303879j, -0.0301953-0.0302549j, -0.030396-0.0301205j, -0.0305963-0.0299847j, -0.030796-0.0298476j, -0.0309953-0.0297094j, -0.0311935-0.0295705j, -0.0313916-0.0294297j, -0.0315889-0.0292876j, -0.0317858-0.0291443j, -0.0319815-0.0290002j, -0.0321771-0.0288544j, -0.0323721-0.0287074j, -0.0325665-0.0285591j, -0.0327597-0.02841j, -0.0329528-0.0282592j, -0.0331447-0.0281077j, -0.0333364-0.0279545j, -0.0335271-0.0278004j, -0.0337175-0.0276447j, -0.0339068-0.0274881j, -0.0340959-0.0273301j, -0.0342836-0.027171j, -0.0344712-0.0270105j, -0.0346578-0.0268491j, -0.034844-0.0266862j, -0.0350289-0.0265222j, -0.0352134-0.0263575j, -0.0353972-0.0261907j, -0.0355798-0.0260233j, -0.0357619-0.0258545j, -0.0359429-0.0256848j, -0.0361243-0.0255133j, -0.0363036-0.0253413j, -0.0364825-0.0251679j, -0.0366607-0.0249933j, -0.0368378-0.0248177j, -0.0370143-0.0246408j, -0.0371901-0.0244629j, -0.0373648-0.0242836j, -0.0375388-0.0241032j, -0.037712-0.0239217j, -0.0378843-0.0237391j, -0.0380557-0.0235553j, -0.0382262-0.0233702j, -0.0383959-0.0231843j, -0.0385648-0.022997j, -0.0387327-0.0228086j, -0.0388998-0.0226192j, -0.0390655-0.0224289j, -0.0392308-0.0222372j, -0.039395-0.0220445j, -0.0395584-0.0218504j, -0.0397205-0.0216558j, -0.039882-0.0214598j, -0.0400425-0.0212625j, -0.040202-0.0210646j, -0.0403606-0.0208651j, -0.0405184-0.0206646j, -0.0406744-0.0204634j, -0.0408307-0.0202608j, -0.0409848-0.0200575j, -0.0411386-0.0198527j, -0.041291-0.0196474j, -0.041443-0.0194404j, -0.0415931-0.019233j, -0.0417426-0.0190243j, -0.0418912-0.0188143j, -0.0420386-0.0186038j, -0.0421848-0.0183922j, -0.0423305-0.018179j, -0.0424747-0.0179652j, -0.0426177-0.0177506j, -0.0427596-0.0175349j, -0.0429012-0.0173176j, -0.043041-0.0171001j, -0.0431799-0.0168814j, -0.0433175-0.0166618j, -0.0434542-0.016441j, -0.0435897-0.0162195j, -0.0437241-0.0159968j, -0.0438572-0.0157731j, -0.0439895-0.0155489j, -0.0441205-0.0153233j, -0.0442504-0.0150969j, -0.0443793-0.0148694j, -0.0445069-0.0146412j, -0.0446332-0.0144119j, -0.0447586-0.0141819j, -0.0448826-0.0139508j, -0.0450055-0.0137186j, -0.045127-0.0134864j, -0.0452476-0.0132526j, -0.0453669-0.0130181j, -0.0454849-0.0127823j, -0.0456017-0.0125466j, -0.0457176-0.0123091j, -0.0458321-0.0120709j, -0.0459451-0.0118326j, -0.0460572-0.0115925j, -0.0461676-0.0113523j, -0.0462772-0.0111106j, -0.0463858-0.0108683j, -0.0464925-0.0106256j, -0.0465984-0.0103813j, -0.0467027-0.0101372j, -0.0468058-0.00989187j, -0.0469076-0.00964533j, -0.0470081-0.0093986j, -0.0471077-0.00915041j, -0.0472056-0.00890208j, -0.0473021-0.00865299j, -0.0473977-0.00840242j, -0.0474917-0.00815185j, -0.0475844-0.00790056j, -0.0476758-0.00764836j, -0.0477661-0.00739471j, -0.0478548-0.00714096j, -0.047942-0.0068869j, -0.0480282-0.00663173j, -0.0481128-0.00637589j, -0.0481961-0.00611933j, -0.0482783-0.00586232j, -0.0483589-0.00560438j, -0.0484382-0.00534574j, -0.0485161-0.00508642j, -0.0485926-0.00482652j, -0.0486678-0.00456581j, -0.0487415-0.00430471j, -0.0488139-0.00404277j, -0.0488849-0.00378016j, -0.0489544-0.00351699j, -0.0490224-0.00325389j, -0.0490892-0.00298936j, -0.0491546-0.00272432j, -0.0492186-0.00245867j, -0.0492808-0.0021931j, -0.0493419-0.00192618j, -0.0494016-0.00165869j, -0.0494596-0.0013915j, -0.0495164-0.00112288j, -0.0495717-0.000853753j, -0.0496255-0.000584731j, -0.049678-0.000314542j, -0.0497289-4.45534e-05j, -0.0497782+0.000226819j], ('P2@0', 'P0@0'): [-0.371456+0.58786j, -0.369851+0.588871j, -0.368248+0.589875j, -0.366643+0.590874j, -0.365034+0.591869j, -0.363418+0.592863j, -0.361804+0.593849j, -0.360188+0.594831j, -0.358568+0.595809j, -0.356945+0.596781j, -0.355321+0.59775j, -0.353694+0.598714j, -0.352063+0.599674j, -0.350432+0.600629j, -0.348796+0.60158j, -0.347157+0.602527j, -0.345518+0.603468j, -0.343875+0.604406j, -0.342229+0.605339j, -0.340582+0.606267j, -0.338936+0.607189j, -0.337283+0.608108j, -0.335627+0.609023j, -0.33397+0.609933j, -0.332313+0.610838j, -0.330651+0.611738j, -0.328986+0.612636j, -0.327322+0.613526j, -0.325652+0.614413j, -0.32398+0.615296j, -0.322309+0.616173j, -0.320632+0.617047j, -0.318956+0.617914j, -0.317275+0.618779j, -0.315596+0.619637j, -0.313908+0.620492j, -0.312225+0.621342j, -0.310533+0.622188j, -0.308844+0.623028j, -0.307153+0.623863j, -0.305456+0.624695j, -0.303759+0.625522j, -0.302061+0.626342j, -0.300357+0.627162j, -0.298653+0.627974j, -0.296949+0.62878j, -0.295243+0.629583j, -0.293534+0.630381j, -0.291818+0.631177j, -0.290105+0.631966j, -0.28839+0.632749j, -0.286671+0.633529j, -0.284953+0.634304j, -0.283231+0.635074j, -0.281506+0.635839j, -0.279782+0.6366j, -0.278053+0.637355j, -0.276323+0.638108j, -0.274593+0.638854j, -0.272859+0.639596j, -0.271121+0.640333j, -0.269389+0.641063j, -0.267649+0.641791j, -0.265908+0.642514j, -0.264164+0.643232j, -0.262423+0.643944j, -0.260675+0.644652j, -0.258925+0.645357j, -0.257174+0.646055j, -0.255426+0.646748j, -0.253669+0.647438j, -0.251918+0.648121j, -0.250161+0.648801j, -0.248404+0.649475j, -0.246641+0.650145j, -0.244882+0.650809j, -0.243116+0.65147j, -0.241353+0.652124j, -0.239583+0.652776j, -0.237817+0.653421j, -0.236043+0.654063j, -0.234273+0.654698j, -0.232502+0.655329j, -0.230724+0.655956j, -0.228949+0.656576j, -0.227172+0.657192j, -0.225393+0.657804j, -0.22361+0.658411j, -0.221827+0.659013j, -0.220044+0.659609j, -0.218259+0.660202j, -0.216473+0.660789j, -0.214685+0.661371j, -0.212895+0.661948j, -0.211104+0.662522j, -0.209311+0.663088j, -0.207517+0.663651j, -0.205721+0.664209j, -0.203924+0.664761j, -0.202127+0.66531j, -0.200325+0.665853j, -0.198525+0.666392j, -0.196721+0.666925j, -0.194916+0.667454j, -0.193116+0.667976j, -0.191309+0.668495j, -0.1895+0.669009j, -0.187689+0.669518j, -0.185883+0.670021j, -0.18407+0.67052j, -0.182257+0.671014j, -0.180447+0.671503j, -0.17863+0.671987j, -0.176812+0.672467j, -0.174998+0.67294j, -0.173177+0.673409j, -0.17136+0.673873j, -0.169537+0.674333j, -0.167719+0.674787j, -0.165893+0.675237j, -0.164072+0.67568j, -0.162248+0.67612j, -0.160419+0.676554j, -0.158594+0.676984j, -0.156768+0.677407j, -0.154936+0.677828j, -0.153107+0.678243j, -0.151278+0.678651j, -0.149447+0.679056j, -0.14761+0.679456j, -0.145777+0.679851j, -0.143944+0.68024j, -0.142108+0.680624j, -0.140273+0.681004j, -0.138436+0.681379j, -0.136597+0.681749j, -0.134759+0.682113j, -0.132919+0.682473j, -0.131078+0.682827j, -0.129237+0.683177j, -0.127394+0.683522j, -0.12555+0.683862j, -0.123706+0.684197j, -0.121861+0.684526j, -0.120015+0.684851j, -0.118169+0.68517j, -0.116324+0.685485j, -0.114477+0.685794j, -0.112627+0.6861j, -0.110777+0.6864j, -0.10893+0.686694j, -0.107078+0.686984j, -0.105225+0.687269j, -0.103377+0.687547j, -0.101523+0.687822j, -0.0996736+0.688092j, -0.097817+0.688357j, -0.0959617+0.688617j, -0.0941086+0.688871j, -0.0922514+0.68912j, -0.090399+0.689365j, -0.0885442+0.689604j, -0.0866848+0.689839j, -0.0848294+0.690068j, -0.0829693+0.690293j, -0.0811136+0.690512j, -0.0792563+0.690726j, -0.0773943+0.690935j, -0.0755357+0.69114j, -0.0736774+0.69134j, -0.0718187+0.691533j, -0.0699527+0.691723j, -0.0680943+0.691907j, -0.0662333+0.692087j, -0.0643724+0.69226j, -0.0625103+0.692429j, -0.0606496+0.692594j, -0.0587879+0.692753j, -0.0569248+0.692907j, -0.0550623+0.693056j, -0.0531985+0.6932j, -0.0513351+0.693339j, -0.0494715+0.693473j, -0.0476066+0.693602j, -0.0457424+0.693726j, -0.0438771+0.693844j, -0.0420107+0.693959j, -0.0401508+0.694067j, -0.0382857+0.694171j, -0.0364192+0.694269j, -0.0345526+0.694364j, -0.0326911+0.694453j, -0.0308241+0.694536j, -0.0289565+0.694614j, -0.0270944+0.694689j, -0.0252274+0.694757j, -0.0233601+0.694821j, -0.0214975+0.694879j, -0.0196295+0.694933j, -0.0177663+0.694981j, -0.0158987+0.695026j], ('P0@0', 'P0@0'): [0.0356992-0.00325335j, 0.03571-0.00331377j, 0.0357218-0.00337547j, 0.0357318-0.00343654j, 0.0357419-0.00349754j, 0.0357547-0.00355862j, 0.0357643-0.00361998j, 0.0357753-0.00368076j, 0.0357854-0.00374283j, 0.0357965-0.00380416j, 0.0358069-0.00386589j, 0.0358171-0.00392754j, 0.0358266-0.00398919j, 0.0358366-0.00405088j, 0.0358481-0.00411265j, 0.0358571-0.00417471j, 0.0358673-0.00423706j, 0.0358778-0.00429796j, 0.0358871-0.00436053j, 0.0358967-0.00442231j, 0.035906-0.00448451j, 0.0359152-0.00454692j, 0.0359251-0.00460858j, 0.0359347-0.00467132j, 0.0359441-0.00473365j, 0.0359522-0.00479603j, 0.0359622-0.00485894j, 0.0359715-0.00492144j, 0.0359796-0.00498429j, 0.035989-0.00504709j, 0.0359985-0.00510907j, 0.0360073-0.00517212j, 0.0360143-0.00523469j, 0.0360236-0.00529792j, 0.0360312-0.00536068j, 0.0360399-0.00542349j, 0.0360483-0.00548716j, 0.0360564-0.00555031j, 0.0360652-0.00561363j, 0.0360721-0.00567655j, 0.0360801-0.0057402j, 0.0360878-0.00580359j, 0.0360955-0.00586719j, 0.0361037-0.00593036j, 0.0361106-0.00599415j, 0.0361181-0.006058j, 0.0361261-0.00612164j, 0.0361338-0.00618537j, 0.0361405-0.00624941j, 0.0361472-0.00631323j, 0.036154-0.00637711j, 0.0361611-0.00644173j, 0.0361682-0.00650547j, 0.0361753-0.00656924j, 0.036182-0.00663351j, 0.0361882-0.00669775j, 0.0361949-0.00676261j, 0.0362008-0.00682653j, 0.0362067-0.00689086j, 0.0362133-0.00695544j, 0.0362196-0.00702011j, 0.036225-0.0070849j, 0.0362316-0.00714959j, 0.0362376-0.00721428j, 0.0362424-0.0072791j, 0.036248-0.00734389j, 0.0362531-0.00740897j, 0.0362591-0.00747398j, 0.0362648-0.00753894j, 0.0362693-0.00760416j, 0.0362751-0.00766983j, 0.0362799-0.00773433j, 0.0362845-0.00779903j, 0.0362897-0.00786595j, 0.0362928-0.00793149j, 0.0362979-0.00799661j, 0.0363032-0.00806205j, 0.0363082-0.00812731j, 0.0363116-0.00819353j, 0.0363158-0.00825888j, 0.0363196-0.00832497j, 0.0363234-0.00839076j, 0.0363279-0.00845618j, 0.0363316-0.00852306j, 0.0363351-0.00858866j, 0.0363386-0.00865491j, 0.0363428-0.00872075j, 0.0363457-0.00878701j, 0.0363497-0.00885407j, 0.0363525-0.00891951j, 0.0363551-0.00898616j, 0.0363589-0.00905332j, 0.0363611-0.0091193j, 0.0363637-0.00918552j, 0.0363661-0.00925291j, 0.036369-0.00931877j, 0.0363704-0.0093858j, 0.0363731-0.00945292j, 0.0363748-0.00951958j, 0.0363775-0.0095866j, 0.0363795-0.00965358j, 0.0363813-0.00972018j, 0.0363832-0.00978784j, 0.036386-0.00985524j, 0.0363859-0.00992143j, 0.0363881-0.00998901j, 0.0363893-0.0100567j, 0.0363908-0.0101242j, 0.0363911-0.0101916j, 0.0363917-0.010259j, 0.0363933-0.0103273j, 0.0363938-0.0103937j, 0.0363942-0.0104619j, 0.0363947-0.0105297j, 0.0363959-0.0105974j, 0.0363956-0.010665j, 0.0363956-0.0107329j, 0.0363964-0.0108017j, 0.0363962-0.0108695j, 0.0363962-0.0109374j, 0.036395-0.0110057j, 0.0363961-0.0110739j, 0.0363946-0.011142j, 0.0363936-0.0112106j, 0.036393-0.0112781j, 0.0363913-0.0113472j, 0.0363922-0.0114159j, 0.0363904-0.0114841j, 0.0363888-0.0115527j, 0.0363874-0.0116215j, 0.0363861-0.0116898j, 0.0363843-0.0117592j, 0.0363819-0.0118276j, 0.0363811-0.0118971j, 0.0363789-0.0119649j, 0.0363768-0.0120349j, 0.0363747-0.0121036j, 0.0363721-0.0121717j, 0.0363697-0.0122419j, 0.0363677-0.0123105j, 0.0363655-0.0123804j, 0.0363617-0.0124493j, 0.036358-0.012519j, 0.036355-0.0125884j, 0.0363538-0.0126575j, 0.0363492-0.012727j, 0.0363456-0.012797j, 0.0363421-0.0128665j, 0.0363376-0.0129358j, 0.0363338-0.0130056j, 0.0363306-0.0130754j, 0.0363267-0.0131453j, 0.0363218-0.0132148j, 0.0363171-0.0132855j, 0.0363125-0.013355j, 0.0363093-0.013425j, 0.0363037-0.0134953j, 0.0362996-0.0135653j, 0.0362938-0.0136356j, 0.0362888-0.0137059j, 0.0362839-0.0137759j, 0.0362779-0.0138458j, 0.0362724-0.0139176j, 0.0362668-0.0139873j, 0.0362612-0.0140575j, 0.0362555-0.0141279j, 0.0362493-0.0141984j, 0.0362422-0.0142693j, 0.0362362-0.0143391j, 0.0362299-0.0144103j, 0.0362216-0.0144812j, 0.0362161-0.0145518j, 0.0362091-0.0146227j, 0.0362029-0.0146935j, 0.0361957-0.0147647j, 0.0361887-0.0148363j, 0.0361809-0.0149066j, 0.036173-0.0149777j, 0.0361652-0.015048j, 0.0361567-0.0151196j, 0.0361504-0.0151908j, 0.0361417-0.0152617j, 0.0361333-0.0153339j, 0.0361255-0.0154046j, 0.0361162-0.0154757j, 0.0361074-0.015548j, 0.0360985-0.015619j, 0.0360908-0.0156903j, 0.0360809-0.0157623j, 0.0360713-0.0158333j, 0.0360618-0.015905j, 0.0360524-0.0159763j, 0.0360421-0.0160483j, 0.0360316-0.0161206j, 0.0360223-0.0161922j, 0.0360131-0.0162633j, 0.0360022-0.0163356j, 0.0359915-0.0164076j, 0.0359811-0.0164793j, 0.0359708-0.0165514j, 0.0359593-0.0166233j], ('P0@0', 'P1@0'): [-0.371893+0.588436j, -0.370287+0.589446j, -0.368682+0.59045j, -0.367076+0.591449j, -0.365465+0.592444j, -0.363848+0.593437j, -0.362233+0.594424j, -0.360615+0.595405j, -0.358994+0.596383j, -0.35737+0.597355j, -0.355744+0.598324j, -0.354116+0.599288j, -0.352484+0.600248j, -0.350852+0.601203j, -0.349215+0.602154j, -0.347574+0.603101j, -0.345934+0.604042j, -0.34429+0.604979j, -0.342643+0.605912j, -0.340994+0.60684j, -0.339347+0.607761j, -0.337692+0.608681j, -0.336036+0.609596j, -0.334377+0.610506j, -0.332719+0.61141j, -0.331056+0.61231j, -0.329389+0.613208j, -0.327724+0.614098j, -0.326053+0.614985j, -0.32438+0.615868j, -0.322707+0.616745j, -0.32103+0.617618j, -0.319353+0.618485j, -0.31767+0.61935j, -0.315989+0.620207j, -0.314301+0.621063j, -0.312616+0.621912j, -0.310924+0.622758j, -0.309233+0.623598j, -0.30754+0.624433j, -0.305842+0.625265j, -0.304144+0.626092j, -0.302446+0.626912j, -0.300739+0.627732j, -0.299035+0.628543j, -0.29733+0.62935j, -0.295622+0.630152j, -0.293912+0.630951j, -0.292195+0.631746j, -0.29048+0.632535j, -0.288765+0.633318j, -0.287045+0.634099j, -0.285325+0.634873j, -0.283602+0.635642j, -0.281876+0.636407j, -0.280151+0.637168j, -0.278421+0.637923j, -0.27669+0.638676j, -0.274958+0.639422j, -0.273223+0.640163j, -0.271484+0.640901j, -0.269751+0.641631j, -0.26801+0.642359j, -0.266267+0.643081j, -0.264522+0.643799j, -0.26278+0.644511j, -0.261031+0.645219j, -0.25928+0.645924j, -0.257528+0.646622j, -0.255778+0.647315j, -0.25402+0.648005j, -0.252268+0.648688j, -0.25051+0.649367j, -0.248751+0.650041j, -0.246988+0.650711j, -0.245227+0.651375j, -0.24346+0.652036j, -0.241696+0.65269j, -0.239924+0.653342j, -0.238157+0.653986j, -0.236382+0.654629j, -0.234612+0.655264j, -0.232839+0.655894j, -0.23106+0.656521j, -0.229283+0.657141j, -0.227506+0.657757j, -0.225726+0.658369j, -0.223942+0.658976j, -0.222157+0.659578j, -0.220373+0.660174j, -0.218587+0.660767j, -0.216799+0.661353j, -0.21501+0.661935j, -0.21322+0.662512j, -0.211427+0.663085j, -0.209634+0.663652j, -0.207838+0.664215j, -0.206041+0.664772j, -0.204243+0.665325j, -0.202445+0.665873j, -0.200642+0.666417j, -0.19884+0.666955j, -0.197035+0.667488j, -0.195229+0.668016j, -0.193428+0.668539j, -0.191619+0.669057j, -0.189809+0.669571j, -0.187998+0.67008j, -0.18619+0.670583j, -0.184377+0.671082j, -0.182562+0.671576j, -0.180751+0.672064j, -0.178933+0.672549j, -0.177114+0.673028j, -0.175298+0.673501j, -0.173476+0.673971j, -0.171659+0.674434j, -0.169835+0.674894j, -0.168014+0.675348j, -0.166188+0.675798j, -0.164365+0.676241j, -0.16254+0.67668j, -0.160711+0.677115j, -0.158884+0.677544j, -0.157057+0.677968j, -0.155224+0.678388j, -0.153394+0.678803j, -0.151564+0.679211j, -0.149731+0.679616j, -0.147894+0.680016j, -0.146059+0.680411j, -0.144225+0.680799j, -0.142388+0.681184j, -0.140552+0.681563j, -0.138714+0.681938j, -0.136874+0.682308j, -0.135034+0.682672j, -0.133193+0.683031j, -0.131351+0.683386j, -0.129508+0.683735j, -0.127665+0.68408j, -0.12582+0.68442j, -0.123975+0.684754j, -0.122128+0.685084j, -0.120281+0.685408j, -0.118434+0.685728j, -0.116588+0.686043j, -0.114739+0.686351j, -0.112888+0.686657j, -0.111037+0.686957j, -0.109189+0.68725j, -0.107336+0.68754j, -0.105482+0.687825j, -0.103633+0.688104j, -0.101778+0.688378j, -0.099927+0.688647j, -0.0980694+0.688913j, -0.096213+0.689172j, -0.0943586+0.689426j, -0.0925003+0.689676j, -0.0906465+0.689919j, -0.088791+0.690158j, -0.0869302+0.690394j, -0.0850737+0.690623j, -0.0832124+0.690847j, -0.0813556+0.691066j, -0.0794971+0.69128j, -0.0776339+0.691489j, -0.0757742+0.691694j, -0.0739147+0.691893j, -0.0720548+0.692086j, -0.0701877+0.692276j, -0.0683283+0.69246j, -0.0664659+0.692639j, -0.0646039+0.692813j, -0.0627407+0.692981j, -0.060879+0.693146j, -0.0590159+0.693305j, -0.0571517+0.693458j, -0.0552881+0.693607j, -0.0534231+0.693751j, -0.0515586+0.69389j, -0.0496938+0.694024j, -0.0478277+0.694152j, -0.0459623+0.694276j, -0.0440958+0.694395j, -0.0422285+0.694509j, -0.0403672+0.694617j, -0.038501+0.694721j, -0.0366333+0.694819j, -0.0347657+0.694913j, -0.0329029+0.695002j, -0.0310348+0.695085j, -0.0291661+0.695163j, -0.0273028+0.695237j, -0.0254346+0.695305j, -0.0235661+0.695369j, -0.0217024+0.695427j, -0.0198332+0.69548j, -0.0179687+0.695529j, -0.0161001+0.695572j], ('P0@0', 'P2@0'): [-0.371879+0.588446j, -0.370273+0.589457j, -0.368669+0.59046j, -0.367062+0.591459j, -0.365452+0.592455j, -0.363834+0.593448j, -0.362219+0.594434j, -0.360602+0.595415j, -0.35898+0.596393j, -0.357357+0.597365j, -0.35573+0.598334j, -0.354102+0.599298j, -0.35247+0.600258j, -0.350838+0.601213j, -0.3492+0.602164j, -0.34756+0.60311j, -0.34592+0.604051j, -0.344276+0.604989j, -0.342629+0.605921j, -0.340979+0.60685j, -0.339333+0.607771j, -0.337678+0.60869j, -0.336021+0.609605j, -0.334363+0.610515j, -0.332705+0.611419j, -0.331041+0.61232j, -0.329375+0.613218j, -0.327709+0.614107j, -0.326038+0.614994j, -0.324365+0.615877j, -0.322693+0.616753j, -0.321015+0.617627j, -0.319338+0.618494j, -0.317655+0.619358j, -0.315974+0.620216j, -0.314286+0.621072j, -0.312601+0.621921j, -0.310909+0.622767j, -0.309218+0.623607j, -0.307525+0.624442j, -0.305827+0.625274j, -0.304129+0.6261j, -0.30243+0.626921j, -0.300724+0.62774j, -0.29902+0.628552j, -0.297314+0.629358j, -0.295607+0.63016j, -0.293897+0.630959j, -0.29218+0.631754j, -0.290465+0.632543j, -0.288749+0.633326j, -0.287029+0.634106j, -0.285309+0.63488j, -0.283586+0.63565j, -0.28186+0.636415j, -0.280135+0.637176j, -0.278405+0.637931j, -0.276674+0.638683j, -0.274942+0.639429j, -0.273207+0.640171j, -0.271468+0.640908j, -0.269735+0.641638j, -0.267994+0.642366j, -0.266251+0.643088j, -0.264505+0.643806j, -0.262763+0.644518j, -0.261015+0.645226j, -0.259264+0.645931j, -0.257511+0.646629j, -0.255762+0.647322j, -0.254004+0.648011j, -0.252252+0.648694j, -0.250493+0.649374j, -0.248735+0.650048j, -0.246971+0.650718j, -0.245211+0.651382j, -0.243443+0.652043j, -0.241679+0.652697j, -0.239908+0.653348j, -0.238141+0.653993j, -0.236365+0.654635j, -0.234595+0.65527j, -0.232822+0.6559j, -0.231043+0.656527j, -0.229266+0.657147j, -0.227489+0.657763j, -0.225709+0.658375j, -0.223924+0.658981j, -0.22214+0.659583j, -0.220356+0.660179j, -0.218569+0.660772j, -0.216782+0.661359j, -0.214993+0.661941j, -0.213203+0.662518j, -0.21141+0.663091j, -0.209616+0.663657j, -0.207821+0.66422j, -0.206024+0.664778j, -0.204225+0.66533j, -0.202428+0.665878j, -0.200624+0.666421j, -0.198822+0.66696j, -0.197018+0.667493j, -0.195212+0.668021j, -0.19341+0.668544j, -0.191602+0.669062j, -0.189792+0.669576j, -0.18798+0.670085j, -0.186173+0.670587j, -0.184359+0.671086j, -0.182545+0.67158j, -0.180733+0.672069j, -0.178915+0.672553j, -0.177096+0.673032j, -0.17528+0.673505j, -0.173458+0.673975j, -0.171641+0.674438j, -0.169817+0.674898j, -0.167996+0.675352j, -0.16617+0.675801j, -0.164347+0.676245j, -0.162522+0.676684j, -0.160692+0.677118j, -0.158866+0.677547j, -0.157039+0.677971j, -0.155206+0.678392j, -0.153376+0.678806j, -0.151545+0.679214j, -0.149713+0.679619j, -0.147876+0.680019j, -0.146041+0.680414j, -0.144206+0.680802j, -0.14237+0.681187j, -0.140534+0.681566j, -0.138695+0.68194j, -0.136855+0.68231j, -0.135016+0.682674j, -0.133175+0.683034j, -0.131333+0.683388j, -0.12949+0.683738j, -0.127647+0.684083j, -0.125801+0.684422j, -0.123956+0.684757j, -0.122109+0.685086j, -0.120262+0.68541j, -0.118415+0.68573j, -0.11657+0.686045j, -0.114721+0.686353j, -0.112869+0.686659j, -0.111019+0.686958j, -0.10917+0.687252j, -0.107317+0.687542j, -0.105464+0.687826j, -0.103614+0.688105j, -0.101759+0.68838j, -0.0999083+0.688649j, -0.0980507+0.688914j, -0.0961943+0.689174j, -0.0943398+0.689427j, -0.0924816+0.689677j, -0.0906278+0.68992j, -0.0887723+0.690159j, -0.0869114+0.690395j, -0.0850549+0.690623j, -0.0831936+0.690848j, -0.0813368+0.691067j, -0.0794782+0.69128j, -0.077615+0.69149j, -0.0757553+0.691694j, -0.0738959+0.691893j, -0.0720359+0.692087j, -0.0701688+0.692276j, -0.0683094+0.69246j, -0.066447+0.69264j, -0.064585+0.692813j, -0.0627218+0.692981j, -0.06086+0.693146j, -0.058997+0.693305j, -0.0571328+0.693458j, -0.0552692+0.693607j, -0.0534042+0.693751j, -0.0515396+0.693889j, -0.0496749+0.694023j, -0.0478087+0.694152j, -0.0459433+0.694276j, -0.0440768+0.694394j, -0.0422094+0.694508j, -0.0403482+0.694616j, -0.038482+0.69472j, -0.0366143+0.694818j, -0.0347467+0.694911j, -0.0328838+0.695j, -0.0310157+0.695084j, -0.029147+0.695162j, -0.0272837+0.695236j, -0.0254156+0.695304j, -0.0235471+0.695367j, -0.0216833+0.695425j, -0.0198142+0.695479j, -0.0179497+0.695527j, -0.016081+0.695571j], ('P1@0', 'P0@0'): [-0.371456+0.58786j, -0.369851+0.588871j, -0.368248+0.589875j, -0.366643+0.590874j, -0.365034+0.591869j, -0.363418+0.592863j, -0.361804+0.593849j, -0.360188+0.594831j, -0.358568+0.595809j, -0.356945+0.596781j, -0.355321+0.59775j, -0.353694+0.598714j, -0.352063+0.599674j, -0.350432+0.600629j, -0.348796+0.60158j, -0.347157+0.602527j, -0.345518+0.603468j, -0.343875+0.604406j, -0.342229+0.605339j, -0.340582+0.606267j, -0.338936+0.607189j, -0.337283+0.608108j, -0.335627+0.609023j, -0.33397+0.609933j, -0.332313+0.610838j, -0.330651+0.611738j, -0.328986+0.612636j, -0.327322+0.613526j, -0.325652+0.614413j, -0.32398+0.615296j, -0.322309+0.616173j, -0.320632+0.617047j, -0.318956+0.617914j, -0.317275+0.618779j, -0.315596+0.619637j, -0.313908+0.620492j, -0.312225+0.621342j, -0.310533+0.622188j, -0.308844+0.623028j, -0.307153+0.623863j, -0.305456+0.624695j, -0.303759+0.625522j, -0.302061+0.626342j, -0.300357+0.627162j, -0.298653+0.627974j, -0.296949+0.62878j, -0.295243+0.629583j, -0.293534+0.630381j, -0.291818+0.631177j, -0.290105+0.631966j, -0.28839+0.632749j, -0.286671+0.633529j, -0.284953+0.634304j, -0.283231+0.635074j, -0.281506+0.635839j, -0.279782+0.6366j, -0.278053+0.637355j, -0.276323+0.638108j, -0.274593+0.638854j, -0.272859+0.639596j, -0.271121+0.640333j, -0.269389+0.641063j, -0.267649+0.641791j, -0.265908+0.642514j, -0.264164+0.643232j, -0.262423+0.643944j, -0.260675+0.644652j, -0.258925+0.645357j, -0.257174+0.646055j, -0.255426+0.646748j, -0.253669+0.647438j, -0.251918+0.648121j, -0.250161+0.648801j, -0.248404+0.649475j, -0.246641+0.650145j, -0.244882+0.650809j, -0.243116+0.65147j, -0.241353+0.652124j, -0.239583+0.652776j, -0.237817+0.653421j, -0.236043+0.654063j, -0.234273+0.654698j, -0.232502+0.655329j, -0.230724+0.655956j, -0.228949+0.656576j, -0.227172+0.657192j, -0.225393+0.657804j, -0.22361+0.658411j, -0.221827+0.659013j, -0.220044+0.659609j, -0.218259+0.660202j, -0.216473+0.660789j, -0.214685+0.661371j, -0.212895+0.661948j, -0.211104+0.662522j, -0.209311+0.663088j, -0.207517+0.663651j, -0.205721+0.664209j, -0.203924+0.664761j, -0.202127+0.66531j, -0.200325+0.665853j, -0.198525+0.666392j, -0.196721+0.666925j, -0.194916+0.667454j, -0.193116+0.667976j, -0.191309+0.668495j, -0.1895+0.669009j, -0.187689+0.669518j, -0.185883+0.670021j, -0.18407+0.67052j, -0.182257+0.671014j, -0.180447+0.671503j, -0.17863+0.671987j, -0.176812+0.672467j, -0.174998+0.67294j, -0.173177+0.673409j, -0.17136+0.673873j, -0.169537+0.674333j, -0.167719+0.674787j, -0.165893+0.675237j, -0.164072+0.67568j, -0.162248+0.67612j, -0.160419+0.676554j, -0.158594+0.676984j, -0.156768+0.677407j, -0.154936+0.677828j, -0.153107+0.678243j, -0.151278+0.678651j, -0.149447+0.679056j, -0.14761+0.679456j, -0.145777+0.679851j, -0.143944+0.68024j, -0.142108+0.680624j, -0.140273+0.681004j, -0.138436+0.681379j, -0.136597+0.681749j, -0.134759+0.682113j, -0.132919+0.682473j, -0.131078+0.682827j, -0.129237+0.683177j, -0.127394+0.683522j, -0.12555+0.683862j, -0.123706+0.684197j, -0.121861+0.684526j, -0.120015+0.684851j, -0.118169+0.68517j, -0.116324+0.685485j, -0.114477+0.685794j, -0.112627+0.6861j, -0.110777+0.6864j, -0.10893+0.686694j, -0.107078+0.686984j, -0.105225+0.687269j, -0.103377+0.687547j, -0.101523+0.687822j, -0.0996736+0.688092j, -0.097817+0.688357j, -0.0959617+0.688617j, -0.0941086+0.688871j, -0.0922514+0.68912j, -0.090399+0.689365j, -0.0885442+0.689604j, -0.0866848+0.689839j, -0.0848294+0.690068j, -0.0829693+0.690293j, -0.0811136+0.690512j, -0.0792563+0.690726j, -0.0773943+0.690935j, -0.0755357+0.69114j, -0.0736774+0.69134j, -0.0718187+0.691533j, -0.0699527+0.691723j, -0.0680943+0.691907j, -0.0662333+0.692087j, -0.0643724+0.69226j, -0.0625103+0.692429j, -0.0606496+0.692594j, -0.0587879+0.692753j, -0.0569248+0.692907j, -0.0550623+0.693056j, -0.0531985+0.6932j, -0.0513351+0.693339j, -0.0494715+0.693473j, -0.0476066+0.693602j, -0.0457424+0.693726j, -0.0438771+0.693844j, -0.0420107+0.693959j, -0.0401508+0.694067j, -0.0382857+0.694171j, -0.0364192+0.694269j, -0.0345526+0.694364j, -0.0326911+0.694453j, -0.0308241+0.694536j, -0.0289565+0.694614j, -0.0270944+0.694689j, -0.0252274+0.694757j, -0.0233601+0.694821j, -0.0214975+0.694879j, -0.0196295+0.694933j, -0.0177663+0.694981j, -0.0158987+0.695026j], ('P2@0', 'P2@0'): [0.024373+0.0578571j, 0.0246872+0.0577752j, 0.0249998+0.0576905j, 0.0253125+0.0576047j, 0.0256257+0.0575173j, 0.0259397+0.0574282j, 0.0262502+0.0573372j, 0.0265633+0.0572451j, 0.0268749+0.0571502j, 0.0271861+0.0570542j, 0.0274975+0.0569561j, 0.0278089+0.0568566j, 0.0281189+0.0567557j, 0.0284283+0.0566529j, 0.0287392+0.0565483j, 0.0290491+0.0564419j, 0.0293581+0.0563334j, 0.0296669+0.0562249j, 0.0299759+0.0561128j, 0.0302841+0.0560002j, 0.0305909+0.0558856j, 0.0308987+0.0557691j, 0.0312054+0.0556516j, 0.031514+0.0555313j, 0.0318195+0.0554101j, 0.0321253+0.0552871j, 0.0324307+0.0551619j, 0.0327358+0.0550354j, 0.0330396+0.054907j, 0.0333438+0.0547768j, 0.0336479+0.0546463j, 0.0339519+0.0545128j, 0.0342538+0.0543783j, 0.0345557+0.0542414j, 0.0348575+0.0541034j, 0.035159+0.0539637j, 0.0354582+0.0538216j, 0.03576+0.0536784j, 0.0360589+0.0535335j, 0.0363574+0.0533874j, 0.0366562+0.0532387j, 0.036953+0.0530888j, 0.0372515+0.0529373j, 0.0375472+0.0527843j, 0.0378439+0.0526293j, 0.0381385+0.0524726j, 0.0384321+0.0523147j, 0.0387269+0.0521549j, 0.039022+0.0519931j, 0.0393133+0.0518302j, 0.039607+0.0516656j, 0.0398965+0.0514987j, 0.0401891+0.051331j, 0.0404778+0.0511618j, 0.0407682+0.0509905j, 0.0410568+0.0508175j, 0.0413447+0.0506426j, 0.0416316+0.050467j, 0.0419184+0.0502893j, 0.0422043+0.0501098j, 0.0424891+0.0499286j, 0.0427729+0.0497463j, 0.0430567+0.049562j, 0.0433402+0.0493761j, 0.0436211+0.0491886j, 0.0439017+0.0490001j, 0.0441831+0.0488093j, 0.0444628+0.0486169j, 0.0447419+0.0484232j, 0.0450191+0.048228j, 0.0452962+0.0480304j, 0.0455719+0.047833j, 0.0458475+0.0476335j, 0.0461224+0.0474304j, 0.0463959+0.047227j, 0.0466681+0.0470227j, 0.0469396+0.0468164j, 0.0472107+0.0466088j, 0.0474803+0.0463987j, 0.047749+0.0461883j, 0.0480174+0.0459754j, 0.0482843+0.0457615j, 0.04855+0.0455467j, 0.0488152+0.0453283j, 0.0490786+0.0451102j, 0.0493434+0.0448899j, 0.0496051+0.0446687j, 0.0498667+0.0444452j, 0.0501263+0.0442198j, 0.050385+0.0439946j, 0.0506434+0.0437668j, 0.0509006+0.043537j, 0.0511567+0.0433069j, 0.051412+0.0430752j, 0.051665+0.0428408j, 0.0519182+0.0426065j, 0.0521708+0.0423697j, 0.0524207+0.0421314j, 0.0526699+0.0418922j, 0.052919+0.0416511j, 0.0531665+0.0414087j, 0.0534127+0.0411652j, 0.0536584+0.0409193j, 0.0539024+0.0406723j, 0.0541444+0.0404256j, 0.0543862+0.0401756j, 0.0546271+0.0399243j, 0.0548674+0.0396717j, 0.0551053+0.0394183j, 0.0553412+0.0391633j, 0.0555777+0.0389058j, 0.0558117+0.0386493j, 0.0560462+0.0383891j, 0.0562788+0.0381283j, 0.0565087+0.0378665j, 0.056739+0.0376031j, 0.0569672+0.0373386j, 0.0571951+0.0370713j, 0.0574199+0.0368044j, 0.0576454+0.0365353j, 0.0578688+0.0362653j, 0.058091+0.0359939j, 0.058312+0.035721j, 0.0585303+0.0354467j, 0.0587492+0.0351724j, 0.0589664+0.0348946j, 0.0591829+0.0346163j, 0.0593963+0.0343375j, 0.0596082+0.034057j, 0.0598212+0.0337743j, 0.0600317+0.0334919j, 0.0602403+0.0332069j, 0.0604472+0.0329217j, 0.0606536+0.0326341j, 0.0608584+0.0323471j, 0.0610616+0.0320567j, 0.0612632+0.0317661j, 0.0614634+0.0314756j, 0.0616627+0.0311812j, 0.0618604+0.0308874j, 0.0620572+0.0305911j, 0.0622527+0.030295j, 0.0624445+0.0299965j, 0.0626364+0.0296976j, 0.0628275+0.0293974j, 0.0630173+0.0290958j, 0.0632044+0.0287934j, 0.0633903+0.0284896j, 0.0635732+0.0281851j, 0.0637571+0.0278787j, 0.0639386+0.0275721j, 0.0641184+0.0272633j, 0.0642973+0.0269542j, 0.0644737+0.0266435j, 0.0646493+0.0263321j, 0.0648234+0.0260196j, 0.0649955+0.0257053j, 0.0651678+0.0253905j, 0.0653355+0.0250748j, 0.0655046+0.0247573j, 0.0656692+0.02444j, 0.0658353+0.0241216j, 0.0659971+0.0237997j, 0.0661592+0.0234796j, 0.0663189+0.0231573j, 0.0664767+0.0228344j, 0.0666336+0.0225105j, 0.0667881+0.0221846j, 0.0669417+0.0218596j, 0.0670931+0.0215322j, 0.0672423+0.0212042j, 0.067392+0.0208747j, 0.067539+0.0205446j, 0.0676831+0.0202141j, 0.0678267+0.019882j, 0.0679696+0.0195486j, 0.0681095+0.0192156j, 0.0682467+0.0188812j, 0.0683839+0.0185464j, 0.0685191+0.0182096j, 0.0686527+0.0178721j, 0.0687846+0.0175343j, 0.0689146+0.0171943j, 0.0690435+0.0168551j, 0.0691694+0.0165144j, 0.069294+0.0161719j, 0.0694172+0.0158298j, 0.0695383+0.0154873j, 0.0696576+0.0151426j, 0.0697762+0.0147982j, 0.0698916+0.0144524j, 0.070006+0.0141067j, 0.0701185+0.013759j, 0.0702304+0.0134102j, 0.070339+0.0130621j, 0.0704467+0.0127131j, 0.0705523+0.0123621j, 0.0706557+0.0120115j, 0.0707579+0.0116598j, 0.0708576+0.0113077j, 0.0709562+0.0109543j], ('P1@0', 'P1@0'): [0.024373+0.0578571j, 0.0246872+0.0577752j, 0.0249998+0.0576905j, 0.0253125+0.0576047j, 0.0256257+0.0575173j, 0.0259397+0.0574282j, 0.0262502+0.0573372j, 0.0265633+0.0572451j, 0.0268749+0.0571502j, 0.0271861+0.0570542j, 0.0274975+0.0569561j, 0.0278089+0.0568566j, 0.0281189+0.0567557j, 0.0284283+0.0566529j, 0.0287392+0.0565483j, 0.0290491+0.0564419j, 0.0293581+0.0563334j, 0.0296669+0.0562249j, 0.0299759+0.0561128j, 0.0302841+0.0560002j, 0.0305909+0.0558856j, 0.0308987+0.0557691j, 0.0312054+0.0556516j, 0.031514+0.0555313j, 0.0318195+0.0554101j, 0.0321253+0.0552871j, 0.0324307+0.0551619j, 0.0327358+0.0550354j, 0.0330396+0.054907j, 0.0333438+0.0547768j, 0.0336479+0.0546463j, 0.0339519+0.0545128j, 0.0342538+0.0543783j, 0.0345557+0.0542414j, 0.0348575+0.0541034j, 0.035159+0.0539637j, 0.0354582+0.0538216j, 0.03576+0.0536784j, 0.0360589+0.0535335j, 0.0363574+0.0533874j, 0.0366562+0.0532387j, 0.036953+0.0530888j, 0.0372515+0.0529373j, 0.0375472+0.0527843j, 0.0378439+0.0526293j, 0.0381385+0.0524726j, 0.0384321+0.0523147j, 0.0387269+0.0521549j, 0.039022+0.0519931j, 0.0393133+0.0518302j, 0.039607+0.0516656j, 0.0398965+0.0514987j, 0.0401891+0.051331j, 0.0404778+0.0511618j, 0.0407682+0.0509905j, 0.0410568+0.0508175j, 0.0413447+0.0506426j, 0.0416316+0.050467j, 0.0419184+0.0502893j, 0.0422043+0.0501098j, 0.0424891+0.0499286j, 0.0427729+0.0497463j, 0.0430567+0.049562j, 0.0433402+0.0493761j, 0.0436211+0.0491886j, 0.0439017+0.0490001j, 0.0441831+0.0488093j, 0.0444628+0.0486169j, 0.0447419+0.0484232j, 0.0450191+0.048228j, 0.0452962+0.0480304j, 0.0455719+0.047833j, 0.0458475+0.0476335j, 0.0461224+0.0474304j, 0.0463959+0.047227j, 0.0466681+0.0470227j, 0.0469396+0.0468164j, 0.0472107+0.0466088j, 0.0474803+0.0463987j, 0.047749+0.0461883j, 0.0480174+0.0459754j, 0.0482843+0.0457615j, 0.04855+0.0455467j, 0.0488152+0.0453283j, 0.0490786+0.0451102j, 0.0493434+0.0448899j, 0.0496051+0.0446687j, 0.0498667+0.0444452j, 0.0501263+0.0442198j, 0.050385+0.0439946j, 0.0506434+0.0437668j, 0.0509006+0.043537j, 0.0511567+0.0433069j, 0.051412+0.0430752j, 0.051665+0.0428408j, 0.0519182+0.0426065j, 0.0521708+0.0423697j, 0.0524207+0.0421314j, 0.0526699+0.0418922j, 0.052919+0.0416511j, 0.0531665+0.0414087j, 0.0534127+0.0411652j, 0.0536584+0.0409193j, 0.0539024+0.0406723j, 0.0541444+0.0404256j, 0.0543862+0.0401756j, 0.0546271+0.0399243j, 0.0548674+0.0396717j, 0.0551053+0.0394183j, 0.0553412+0.0391633j, 0.0555777+0.0389058j, 0.0558117+0.0386493j, 0.0560462+0.0383891j, 0.0562788+0.0381283j, 0.0565087+0.0378665j, 0.056739+0.0376031j, 0.0569672+0.0373386j, 0.0571951+0.0370713j, 0.0574199+0.0368044j, 0.0576454+0.0365353j, 0.0578688+0.0362653j, 0.058091+0.0359939j, 0.058312+0.035721j, 0.0585303+0.0354467j, 0.0587492+0.0351724j, 0.0589664+0.0348946j, 0.0591829+0.0346163j, 0.0593963+0.0343375j, 0.0596082+0.034057j, 0.0598212+0.0337743j, 0.0600317+0.0334919j, 0.0602403+0.0332069j, 0.0604472+0.0329217j, 0.0606536+0.0326341j, 0.0608584+0.0323471j, 0.0610616+0.0320567j, 0.0612632+0.0317661j, 0.0614634+0.0314756j, 0.0616627+0.0311812j, 0.0618604+0.0308874j, 0.0620572+0.0305911j, 0.0622527+0.030295j, 0.0624445+0.0299965j, 0.0626364+0.0296976j, 0.0628275+0.0293974j, 0.0630173+0.0290958j, 0.0632044+0.0287934j, 0.0633903+0.0284896j, 0.0635732+0.0281851j, 0.0637571+0.0278787j, 0.0639386+0.0275721j, 0.0641184+0.0272633j, 0.0642973+0.0269542j, 0.0644737+0.0266435j, 0.0646493+0.0263321j, 0.0648234+0.0260196j, 0.0649955+0.0257053j, 0.0651678+0.0253905j, 0.0653355+0.0250748j, 0.0655046+0.0247573j, 0.0656692+0.02444j, 0.0658353+0.0241216j, 0.0659971+0.0237997j, 0.0661592+0.0234796j, 0.0663189+0.0231573j, 0.0664767+0.0228344j, 0.0666336+0.0225105j, 0.0667881+0.0221846j, 0.0669417+0.0218596j, 0.0670931+0.0215322j, 0.0672423+0.0212042j, 0.067392+0.0208747j, 0.067539+0.0205446j, 0.0676831+0.0202141j, 0.0678267+0.019882j, 0.0679696+0.0195486j, 0.0681095+0.0192156j, 0.0682467+0.0188812j, 0.0683839+0.0185464j, 0.0685191+0.0182096j, 0.0686527+0.0178721j, 0.0687846+0.0175343j, 0.0689146+0.0171943j, 0.0690435+0.0168551j, 0.0691694+0.0165144j, 0.069294+0.0161719j, 0.0694172+0.0158298j, 0.0695383+0.0154873j, 0.0696576+0.0151426j, 0.0697762+0.0147982j, 0.0698916+0.0144524j, 0.070006+0.0141067j, 0.0701185+0.013759j, 0.0702304+0.0134102j, 0.070339+0.0130621j, 0.0704467+0.0127131j, 0.0705523+0.0123621j, 0.0706557+0.0120115j, 0.0707579+0.0116598j, 0.0708576+0.0113077j, 0.0709562+0.0109543j], ('P1@0', 'P2@0'): [-0.0182841-0.0357247j, -0.0185047-0.0356628j, -0.0187246-0.0355998j, -0.0189444-0.0355354j, -0.0191639-0.0354696j, -0.0193839-0.0354026j, -0.0196032-0.0353342j, -0.0198225-0.0352645j, -0.0200414-0.0351936j, -0.0202602-0.0351212j, -0.0204788-0.0350476j, -0.0206973-0.0349727j, -0.0209156-0.0348966j, -0.0211335-0.034819j, -0.0213513-0.0347402j, -0.021569-0.03466j, -0.0217863-0.0345785j, -0.0220035-0.0344958j, -0.0222205-0.0344115j, -0.0224371-0.0343262j, -0.022653-0.0342397j, -0.0228691-0.0341517j, -0.0230849-0.0340624j, -0.0233006-0.0339715j, -0.0235153-0.0338799j, -0.0237305-0.0337867j, -0.0239451-0.0336921j, -0.0241589-0.0335964j, -0.0243729-0.0334992j, -0.0245867-0.0334005j, -0.0247996-0.033301j, -0.0250128-0.0331999j, -0.0252249-0.0330976j, -0.0254373-0.032994j, -0.0256488-0.0328891j, -0.0258603-0.0327827j, -0.026071-0.0326754j, -0.026282-0.0325664j, -0.0264919-0.0324564j, -0.0267013-0.0323451j, -0.026911-0.0322323j, -0.0271196-0.0321182j, -0.027328-0.0320031j, -0.0275363-0.0318863j, -0.0277437-0.0317686j, -0.0279505-0.0316494j, -0.0281569-0.0315292j, -0.028363-0.0314075j, -0.0285691-0.0312842j, -0.028774-0.03116j, -0.0289786-0.0310346j, -0.0291825-0.0309079j, -0.0293864-0.0307797j, -0.0295892-0.0306505j, -0.0297918-0.0305199j, -0.0299937-0.0303879j, -0.0301953-0.0302549j, -0.030396-0.0301205j, -0.0305963-0.0299847j, -0.030796-0.0298476j, -0.0309953-0.0297094j, -0.0311935-0.0295705j, -0.0313916-0.0294297j, -0.0315889-0.0292876j, -0.0317858-0.0291443j, -0.0319815-0.0290002j, -0.0321771-0.0288544j, -0.0323721-0.0287074j, -0.0325665-0.0285591j, -0.0327597-0.02841j, -0.0329528-0.0282592j, -0.0331447-0.0281077j, -0.0333364-0.0279545j, -0.0335271-0.0278004j, -0.0337175-0.0276447j, -0.0339068-0.0274881j, -0.0340959-0.0273301j, -0.0342836-0.027171j, -0.0344712-0.0270105j, -0.0346578-0.0268491j, -0.034844-0.0266862j, -0.0350289-0.0265222j, -0.0352134-0.0263575j, -0.0353972-0.0261907j, -0.0355798-0.0260233j, -0.0357619-0.0258545j, -0.0359429-0.0256848j, -0.0361243-0.0255133j, -0.0363036-0.0253413j, -0.0364825-0.0251679j, -0.0366607-0.0249933j, -0.0368378-0.0248177j, -0.0370143-0.0246408j, -0.0371901-0.0244629j, -0.0373648-0.0242836j, -0.0375388-0.0241032j, -0.037712-0.0239217j, -0.0378843-0.0237391j, -0.0380557-0.0235553j, -0.0382262-0.0233702j, -0.0383959-0.0231843j, -0.0385648-0.022997j, -0.0387327-0.0228086j, -0.0388998-0.0226192j, -0.0390655-0.0224289j, -0.0392308-0.0222372j, -0.039395-0.0220445j, -0.0395584-0.0218504j, -0.0397205-0.0216558j, -0.039882-0.0214598j, -0.0400425-0.0212625j, -0.040202-0.0210646j, -0.0403606-0.0208651j, -0.0405184-0.0206646j, -0.0406744-0.0204634j, -0.0408307-0.0202608j, -0.0409848-0.0200575j, -0.0411386-0.0198527j, -0.041291-0.0196474j, -0.041443-0.0194404j, -0.0415931-0.019233j, -0.0417426-0.0190243j, -0.0418912-0.0188143j, -0.0420386-0.0186038j, -0.0421848-0.0183922j, -0.0423305-0.018179j, -0.0424747-0.0179652j, -0.0426177-0.0177506j, -0.0427596-0.0175349j, -0.0429012-0.0173176j, -0.043041-0.0171001j, -0.0431799-0.0168814j, -0.0433175-0.0166618j, -0.0434542-0.016441j, -0.0435897-0.0162195j, -0.0437241-0.0159968j, -0.0438572-0.0157731j, -0.0439895-0.0155489j, -0.0441205-0.0153233j, -0.0442504-0.0150969j, -0.0443793-0.0148694j, -0.0445069-0.0146412j, -0.0446332-0.0144119j, -0.0447586-0.0141819j, -0.0448826-0.0139508j, -0.0450055-0.0137186j, -0.045127-0.0134864j, -0.0452476-0.0132526j, -0.0453669-0.0130181j, -0.0454849-0.0127823j, -0.0456017-0.0125466j, -0.0457176-0.0123091j, -0.0458321-0.0120709j, -0.0459451-0.0118326j, -0.0460572-0.0115925j, -0.0461676-0.0113523j, -0.0462772-0.0111106j, -0.0463858-0.0108683j, -0.0464925-0.0106256j, -0.0465984-0.0103813j, -0.0467027-0.0101372j, -0.0468058-0.00989187j, -0.0469076-0.00964533j, -0.0470081-0.0093986j, -0.0471077-0.00915041j, -0.0472056-0.00890208j, -0.0473021-0.00865299j, -0.0473977-0.00840242j, -0.0474917-0.00815185j, -0.0475844-0.00790056j, -0.0476758-0.00764836j, -0.0477661-0.00739471j, -0.0478548-0.00714096j, -0.047942-0.0068869j, -0.0480282-0.00663173j, -0.0481128-0.00637589j, -0.0481961-0.00611933j, -0.0482783-0.00586232j, -0.0483589-0.00560438j, -0.0484382-0.00534574j, -0.0485161-0.00508642j, -0.0485926-0.00482652j, -0.0486678-0.00456581j, -0.0487415-0.00430471j, -0.0488139-0.00404277j, -0.0488849-0.00378016j, -0.0489544-0.00351699j, -0.0490224-0.00325389j, -0.0490892-0.00298936j, -0.0491546-0.00272432j, -0.0492186-0.00245867j, -0.0492808-0.0021931j, -0.0493419-0.00192618j, -0.0494016-0.00165869j, -0.0494596-0.0013915j, -0.0495164-0.00112288j, -0.0495717-0.000853753j, -0.0496255-0.000584731j, -0.049678-0.000314542j, -0.0497289-4.45534e-05j, -0.0497782+0.000226819j]}, ports={'P0': Port(center=(0, 0), input_direction=0, spec=PortSpec(description="Strip TE 1550 nm, w=500 nm", width=2, limits=(-1, 1.22), num_modes=1, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(0.5, 0, (1, 0))]), extended=True, inverted=False), 'P1': Port(center=(5, -0.75), input_direction=180, spec=PortSpec(description="Strip TE 1550 nm, w=500 nm", width=2, limits=(-1, 1.22), num_modes=1, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(0.5, 0, (1, 0))]), extended=True, inverted=False), 'P2': Port(center=(5, 0.75), input_direction=180, spec=PortSpec(description="Strip TE 1550 nm, w=500 nm", width=2, limits=(-1, 1.22), num_modes=1, added_solver_modes=0, polarization="", target_neff=3.5, path_profiles=[(0.5, 0, (1, 0))]), extended=True, inverted=False)})
y_s_matrix["P0@0", "P1@0"]
array([-0.37189264+0.58843566j, -0.37028664+0.58944627j,
-0.36868221+0.59045012j, -0.36707552+0.59144912j,
-0.36546514+0.5924444j , -0.3638479 +0.59343745j,
-0.36223253+0.59442391j, -0.36061536+0.59540549j,
-0.35899398+0.59638318j, -0.35737042+0.59735544j,
-0.35574422+0.5983242j , -0.3541162 +0.59928801j,
-0.35248353+0.60024838j, -0.35085157+0.60120292j,
-0.34921454+0.60215389j, -0.34757449+0.60310068j,
-0.34593418+0.60404171j, -0.34428993+0.60497919j,
-0.34264291+0.60591181j, -0.34099383+0.60684014j,
-0.33934703+0.60776137j, -0.33769232+0.60868111j,
-0.33603577+0.6095957j , -0.33437704+0.61050564j,
-0.33271909+0.61140985j, -0.33105551+0.61231047j,
-0.32938944+0.61320841j, -0.32772399+0.61409758j,
-0.3260531 +0.61498458j, -0.32437959+0.61586808j,
-0.32270736+0.61674453j, -0.32102979+0.61761789j,
-0.31935282+0.61848536j, -0.31767019+0.61934968j,
-0.31598945+0.62020747j, -0.3143011 +0.62106306j,
-0.31261591+0.62191217j, -0.31092375+0.62275809j,
-0.30923283+0.62359809j, -0.30754046+0.62443327j,
-0.30584239+0.62526508j, -0.30414421+0.62609205j,
-0.3024457 +0.62691232j, -0.30073948+0.62773221j,
-0.29903515+0.62854342j, -0.29732963+0.62934996j,
-0.29562213+0.63015231j, -0.29391213+0.63095069j,
-0.29219542+0.63174629j, -0.29048049+0.63253482j,
-0.28876476+0.63331843j, -0.28704477+0.63409861j,
-0.28532505+0.63487271j, -0.28360199+0.63564247j,
-0.28187598+0.63640742j, -0.28015062+0.6371682j ,
-0.27842065+0.63792349j, -0.27668951+0.63867586j,
-0.27495788+0.63942204j, -0.27322331+0.64016345j,
-0.27148414+0.64090073j, -0.26975092+0.64163071j,
-0.26800974+0.64235851j, -0.26626702+0.64308108j,
-0.26452157+0.6437989j , -0.26277963+0.64451106j,
-0.26103113+0.64521928j, -0.25927988+0.64592365j,
-0.25752754+0.64662191j, -0.25577803+0.64731483j,
-0.2540205 +0.64800454j, -0.2522683 +0.64868769j,
-0.25050954+0.64936692j, -0.24875126+0.65004092j,
-0.24698809+0.65071113j, -0.24522742+0.65137516j,
-0.24345974+0.6520363j , -0.24169604+0.65269028j,
-0.23992446+0.65334186j, -0.2381573 +0.65398638j,
-0.23638231+0.65462856j, -0.23461152+0.65526356j,
-0.23283921+0.65589393j, -0.23105962+0.6565206j ,
-0.2292834 +0.65714138j, -0.22750599+0.65775694j,
-0.22572608+0.65836869j, -0.2239415 +0.65897555j,
-0.2221567 +0.6595778j , -0.22037286+0.66017371j,
-0.21858661+0.66076651j, -0.21679931+0.66135317j,
-0.21501019+0.66193536j, -0.21321976+0.66251218j,
-0.21142705+0.66308523j, -0.20963358+0.66365206j,
-0.20783834+0.6642147j , -0.20604122+0.66477241j,
-0.20424271+0.66532483j, -0.20244512+0.66587321j,
-0.20064171+0.6664165j , -0.19883994+0.66695467j,
-0.19703507+0.6674881j , -0.19522911+0.66801639j,
-0.19342774+0.66853902j, -0.19161948+0.66905743j,
-0.18980949+0.66957125j, -0.18799789+0.67008047j,
-0.18619044+0.67058266j, -0.18437659+0.67108201j,
-0.18256229+0.67157566j, -0.18075051+0.67206447j,
-0.17893264+0.67254877j, -0.17711367+0.67302805j,
-0.17529806+0.67350132j, -0.17347626+0.67397082j,
-0.17165855+0.67443445j, -0.16983451+0.67489395j,
-0.16801435+0.6753477j , -0.16618763+0.67579752j,
-0.16436549+0.67624138j, -0.16254003+0.67668037j,
-0.16071055+0.6771149j , -0.15888433+0.6775438j ,
-0.15705737+0.67796781j, -0.15522413+0.67838823j,
-0.15339372+0.67880257j, -0.15156356+0.67921104j,
-0.14973094+0.67961597j, -0.14789373+0.6800157j ,
-0.14605894+0.68041083j, -0.14422458+0.68079932j,
-0.14238847+0.68118368j, -0.14055212+0.68156309j,
-0.13871374+0.68193773j, -0.13687356+0.68230757j,
-0.13503413+0.68267163j, -0.13319323+0.68303126j,
-0.13135138+0.68338588j, -0.12950839+0.68373511j,
-0.12766494+0.68408019j, -0.12581974+0.68441995j,
-0.12397455+0.68475446j, -0.12212796+0.685084j ,
-0.12028058+0.685408j , -0.11843375+0.6857279j ,
-0.11658837+0.68604258j, -0.11473944+0.68635136j,
-0.112888 +0.68665677j, -0.11103715+0.68695653j,
-0.10918889+0.68725041j, -0.10733609+0.68754005j,
-0.10548224+0.68782489j, -0.10363256+0.68810357j,
-0.10177759+0.68837829j, -0.09992699+0.68864738j,
-0.09806937+0.68891273j, -0.09621304+0.68917244j,
-0.09435859+0.68942604j, -0.09250032+0.6896757j ,
-0.09064652+0.68991949j, -0.08879103+0.69015846j,
-0.08693019+0.69039368j, -0.08507371+0.69062257j,
-0.08321241+0.69084718j, -0.08135563+0.69106614j,
-0.07949706+0.6912799j , -0.07763388+0.69148915j,
-0.07577423+0.69169384j, -0.07391475+0.69189309j,
-0.0720548 +0.69208641j, -0.07018767+0.69227615j,
-0.06832832+0.69245965j, -0.06646594+0.69263948j,
-0.06460391+0.69281254j, -0.06274073+0.69298114j,
-0.06087895+0.69314575j, -0.05901592+0.69330478j,
-0.05715173+0.69345819j, -0.05528814+0.69360732j,
-0.05342312+0.69375097j, -0.0515586 +0.69388976j,
-0.04969384+0.69402357j, -0.04782769+0.69415243j,
-0.04596231+0.69427624j, -0.04409576+0.69439468j,
-0.04222846+0.69450855j, -0.04036718+0.69461695j,
-0.038501 +0.69472076j, -0.03663332+0.69481896j,
-0.03476569+0.69491259j, -0.03290287+0.69500168j,
-0.03103477+0.69508515j, -0.02916612+0.69516324j,
-0.02730277+0.69523714j, -0.02543464+0.69530517j,
-0.02356613+0.69536861j, -0.02170239+0.69542668j,
-0.01983323+0.69548037j, -0.01796871+0.69552883j,
-0.01610006+0.69557249j])
y_s_matrix.wavelengths
array([1.545 , 1.54505, 1.5451 , 1.54515, 1.5452 , 1.54525, 1.5453 ,
1.54535, 1.5454 , 1.54545, 1.5455 , 1.54555, 1.5456 , 1.54565,
1.5457 , 1.54575, 1.5458 , 1.54585, 1.5459 , 1.54595, 1.546 ,
1.54605, 1.5461 , 1.54615, 1.5462 , 1.54625, 1.5463 , 1.54635,
1.5464 , 1.54645, 1.5465 , 1.54655, 1.5466 , 1.54665, 1.5467 ,
1.54675, 1.5468 , 1.54685, 1.5469 , 1.54695, 1.547 , 1.54705,
1.5471 , 1.54715, 1.5472 , 1.54725, 1.5473 , 1.54735, 1.5474 ,
1.54745, 1.5475 , 1.54755, 1.5476 , 1.54765, 1.5477 , 1.54775,
1.5478 , 1.54785, 1.5479 , 1.54795, 1.548 , 1.54805, 1.5481 ,
1.54815, 1.5482 , 1.54825, 1.5483 , 1.54835, 1.5484 , 1.54845,
1.5485 , 1.54855, 1.5486 , 1.54865, 1.5487 , 1.54875, 1.5488 ,
1.54885, 1.5489 , 1.54895, 1.549 , 1.54905, 1.5491 , 1.54915,
1.5492 , 1.54925, 1.5493 , 1.54935, 1.5494 , 1.54945, 1.5495 ,
1.54955, 1.5496 , 1.54965, 1.5497 , 1.54975, 1.5498 , 1.54985,
1.5499 , 1.54995, 1.55 , 1.55005, 1.5501 , 1.55015, 1.5502 ,
1.55025, 1.5503 , 1.55035, 1.5504 , 1.55045, 1.5505 , 1.55055,
1.5506 , 1.55065, 1.5507 , 1.55075, 1.5508 , 1.55085, 1.5509 ,
1.55095, 1.551 , 1.55105, 1.5511 , 1.55115, 1.5512 , 1.55125,
1.5513 , 1.55135, 1.5514 , 1.55145, 1.5515 , 1.55155, 1.5516 ,
1.55165, 1.5517 , 1.55175, 1.5518 , 1.55185, 1.5519 , 1.55195,
1.552 , 1.55205, 1.5521 , 1.55215, 1.5522 , 1.55225, 1.5523 ,
1.55235, 1.5524 , 1.55245, 1.5525 , 1.55255, 1.5526 , 1.55265,
1.5527 , 1.55275, 1.5528 , 1.55285, 1.5529 , 1.55295, 1.553 ,
1.55305, 1.5531 , 1.55315, 1.5532 , 1.55325, 1.5533 , 1.55335,
1.5534 , 1.55345, 1.5535 , 1.55355, 1.5536 , 1.55365, 1.5537 ,
1.55375, 1.5538 , 1.55385, 1.5539 , 1.55395, 1.554 , 1.55405,
1.5541 , 1.55415, 1.5542 , 1.55425, 1.5543 , 1.55435, 1.5544 ,
1.55445, 1.5545 , 1.55455, 1.5546 , 1.55465, 1.5547 , 1.55475,
1.5548 , 1.55485, 1.5549 , 1.55495, 1.555 ])
fig, ax = pf.plot_s_matrix(y_s_matrix, y="dB")
Create straight section from the internal parametric library.
straight = pf.parametric.straight(port_spec="TE_1550_500", length=80)
viewer(straight)
Inspect available models:
straight.models
{'Tidy3D': Tidy3DModel(run_time=None, medium=None, symmetry=(0, 0, 0), boundary_spec=None, monitors=(), structures=(), grid_spec=None, shutoff=None, subpixel=None, courant=None, port_symmetries=[('P1', 'P0')], bounds=((None, None, None), (None, None, None)), verbose=True),
'Waveguide': WaveguideModel(n_complex=None, length=None, mesh_refinement=None, verbose=True)}
straight.active_model
WaveguideModel(n_complex=None, length=None, mesh_refinement=None, verbose=True)
The waveguide model allows us to quickly evaluate the effects of length changes in the S matrix.
_ = pf.plot_s_matrix(straight.s_matrix(freqs), y="phase")
Progress: 100%
straight.active_model.update(length=120)
pf.plot_s_matrix(straight.s_matrix(freqs), y="phase")
_ = straight.active_model.update(length=None)
Progress: 100%
The second delay arm will be a spiral, also from the parametric library.
spiral = pf.parametric.rectangular_spiral(
port_spec="TE_1550_500",
radius=10,
full_length=500,
size=(80, 0),
align_ports="y",
bend_kwargs={"euler_fraction": 0.5},
)
viewer(spiral)
spiral.active_model
CircuitModel()
spiral.references
[Reference(component="straight_3OF5GAY6MWYZ46STPQYX4ANQSQCIQ63LSVEX6E3SCLLAZV2M7BRQ", origin=(35, 14), rotation=90, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="bend_UJJD4NAARVLGN57ZK22UVYRAYYJ2TECKN7LEGWDOM2B7M5ROZIHA", origin=(35, 24.0635), rotation=90, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="bend_LAJDY2TV624CS2DEMWLUM2IS3HXAXBZYSNIBSLV7YFZ32X2WBWJA", origin=(25, 4), rotation=0, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="straight_AAGNTKIF3N4PWGOVNZS6VDPREKBQYJMDNENFFG2QDS4U5PFO7H6A", origin=(45, 34.0635), rotation=0, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="straight_AAGNTKIF3N4PWGOVNZS6VDPREKBQYJMDNENFFG2QDS4U5PFO7H6A", origin=(14, 4), rotation=0, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="bend_UJJD4NAARVLGN57ZK22UVYRAYYJ2TECKN7LEGWDOM2B7M5ROZIHA", origin=(56, 34.0635), rotation=0, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="bend_LAJDY2TV624CS2DEMWLUM2IS3HXAXBZYSNIBSLV7YFZ32X2WBWJA", origin=(4, 14), rotation=270, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="straight_RAZRFPM3UH24TAY5XELDFFQFURPLJ3W54UA7EUY3QQ25FMF4UWGA", origin=(66, 24.0635), rotation=270, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="straight_RAZRFPM3UH24TAY5XELDFFQFURPLJ3W54UA7EUY3QQ25FMF4UWGA", origin=(4, 26.0635), rotation=270, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="bend_UJJD4NAARVLGN57ZK22UVYRAYYJ2TECKN7LEGWDOM2B7M5ROZIHA", origin=(66, 12), rotation=270, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="bend_LAJDY2TV624CS2DEMWLUM2IS3HXAXBZYSNIBSLV7YFZ32X2WBWJA", origin=(14, 36.0635), rotation=180, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="straight_7ACDJC2AZ5TVURQZJ2YD5GMT45DLJBFGYSJZ3NX3CVHOJ2U7S6FA", origin=(56, 2), rotation=180, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="straight_7ACDJC2AZ5TVURQZJ2YD5GMT45DLJBFGYSJZ3NX3CVHOJ2U7S6FA", origin=(58, 36.0635), rotation=180, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="bend_UJJD4NAARVLGN57ZK22UVYRAYYJ2TECKN7LEGWDOM2B7M5ROZIHA", origin=(12, 2), rotation=180, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="bend_LAJDY2TV624CS2DEMWLUM2IS3HXAXBZYSNIBSLV7YFZ32X2WBWJA", origin=(68, 26.0635), rotation=90, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="straight_AUZ2RGRUSCKI4M775MQIR2OWGGMJVJDSTWMGIUYIM56OVXIUKPTA", origin=(2, 12), rotation=90, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="straight_AUZ2RGRUSCKI4M775MQIR2OWGGMJVJDSTWMGIUYIM56OVXIUKPTA", origin=(68, 10), rotation=90, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="bend_UJJD4NAARVLGN57ZK22UVYRAYYJ2TECKN7LEGWDOM2B7M5ROZIHA", origin=(2, 28.0635), rotation=90, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="bend_LAJDY2TV624CS2DEMWLUM2IS3HXAXBZYSNIBSLV7YFZ32X2WBWJA", origin=(58, 0), rotation=0, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="straight_76AOQCCKYGBSLPKTLZT53IU6PZNQR5ZFVDOMEOSCR2V2OZIMBNVA", origin=(0, 0), rotation=0, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="straight_Z5DIGLEHBUCDW7D7HEJ3VOFXIMZOJE3SJQIDI36BUYKZGEU7V7JQ", origin=(12, 38.0635), rotation=0, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="bend_UJJD4NAARVLGN57ZK22UVYRAYYJ2TECKN7LEGWDOM2B7M5ROZIHA", origin=(60, 38.0635), rotation=0, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="straight_RE3OSXXKD35JOLDAK74E2ROSYR46HA5IOZZ5XDNXNQ7GQLSOBCZA", origin=(70, 28.0635), rotation=270, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0))), Reference(component="bend_LAJDY2TV624CS2DEMWLUM2IS3HXAXBZYSNIBSLV7YFZ32X2WBWJA", origin=(70, 10), rotation=270, scaling=1, x_reflection=False, repetition=Repetition(columns=1, rows=1, spacing=(0, 0)))]
spiral.references[1].component.active_model
WaveguideModel(n_complex=None, length=16.63498, mesh_refinement=None, verbose=True)
pf.plot_s_matrix(spiral.s_matrix(freqs), y="phase")
Loading cached simulation from /home/lucas/.tidy3d/pf_cache/GLJ/ms_info-F6NXBKXG7RZWYTV55FOX44G6HCZDOE7A2P6DQA2H27J5TJE7OSUA.json. Loading cached simulation from /home/lucas/.tidy3d/pf_cache/VJI/ms_info-TDH6QCMTV7OVTBJ6ILVLXI7US2T4MKLJAEVJGOE5WDFNRR7YXRFQ.json. Loading cached simulation from /home/lucas/.tidy3d/pf_cache/53H/ms_info-FNFMNEZUX3M526PKSKQQIRVSADHFSNHVZ7VL5BAAHWCUUS3RZN7A.json. Loading cached simulation from /home/lucas/.tidy3d/pf_cache/RXM/ms_info-S6AW7R5TU3N6U2G2REXS452POKIELVRD2ZOK7NLEPISQAPMLS4JQ.json. Progress: 100%
(<Figure size 500x350 with 1 Axes>, array([<Axes: xlabel='Wavelength (µm)', ylabel='∠S (rad)'>], dtype=object))
mzi = pf.Component("MZI")
y_in = mzi.add_reference(y_splitter)
arm_bot = mzi.add_reference(straight)
arm_bot.connect("P0", y_in["P1"])
arm_top = mzi.add_reference(spiral)
arm_top.connect("P0", y_in["P2"])
y_out = mzi.add_reference(y_splitter)
y_out.connect("P2", arm_bot["P1"])
viewer(mzi)
mzi.add_reference_ports(add_model=pf.CircuitModel())
viewer(mzi)
_ = pf.plot_s_matrix(mzi.s_matrix(freqs))
Progress: 100%
Before setting up a proper thermal simulation using our heat solver, we can easily test the effects to first order by changing the straight section length.
straight.active_model.update(length=200)
_ = pf.plot_s_matrix(mzi.s_matrix(freqs))
Progress: 100%
_, ax = plt.subplots(1, 1)
for length in (80.00, 80.05, 80.10):
straight.active_model.update(length=length)
s = mzi.s_matrix(freqs, show_progress=False)
ax.plot(s.wavelengths, np.abs(s["P0@0", "P1@0"]) ** 2)
straight.active_model.update(length=None)
_ = ax.set(xlabel="Wavelength (μm)", ylabel="|S₁₀|²")
We can write any number of components to a GDSII or OASIS layout file.
pf.write_layout("seminar_mzi.oas", mzi)