gds_fdtd.solvers.beamz¶
gds_fdtd simulation toolbox.
BeamzSolver: the beamz (>= 0.4.3, < 0.5) adapter on the Phase-3 Solver contract. beamz is an open-source JAX FDTD engine (Apache-2.0, pip-installable, CPU or GPU) — the first zero-cost engine in the registry.
Design decisions (rule 8 — everything below verified against beamz 0.4.3 and its own compact-model reference example, which is the UBC SiEPIC crossing):
geometry rides beamz’s
gdsf.prepare_componentpipeline (extrusion, port extension, padding) rather than re-deriving its delicate port-plane/PML tuning. It is fed the source gdsfactory component when one is present, or else a shim over the polygons gds_fdtd already extruded from ANY source (KLayout/SiEPIC, raw GDS) — so beamz is solver-agnostic like the other adapters, not limited to gdsfactory-object inputs.refractive indices resolve from, in order: explicit
n_core=/n_clad=kwargs → the technology material’sriireference (refractiveindex.info, evaluated at the center wavelength) →tidy3d_db.nk.multi-layer stacks supported: every tech device layer present in the component becomes an extruded core at its own z (e.g. the Si→SiN escalator — a Si core at z 0–0.22 and a SiN core at z 0.3–0.7 — cross-validated against recorded tidy3d/Lumerical within ~0.1 dB on the through path). Each port’s mode plane sits on its own core. Still TE / mode 1 per port; TM and higher modes are future work.
units: beamz is SI (meters, seconds); gds_fdtd is um — converted here.
run() executes one FDTD run per excited port (full S-matrix = N runs), with adaptive decay stopping; extraction via
get_S_matrix_modal_dft.
Functions
|
Classes
|
beamz JAX FDTD adapter (tier: full-service, execution: local, free). |