Architecture Overview¶
GDS in, S-parameters out, with every engine behind one contract.
layout (GDS / gdsfactory / SiEPIC)
│ lyprocessor · layout.gdsfactory ports auto-detected
▼
Component ───────── Technology (YAML, schema v2: named materials)
│
▼
Solver ABC (solvers.base) ── registry + entry points
│ validate() · build() · estimate() [offline, free]
│ run() [the only spending step]
▼
SMatrix ── checks (reciprocity/passivity) · .dat / Touchstone / HDF5 / npz
│
▼
plotting · convergence.sweep · validation.validate_across · caching
Core modules¶
geometryComponent,Structure(flat, role-tagged: device / substrate / superstrate),Port(with port-extension stubs through the boundary),Region.technology/materials.riiPydantic-validated technology files. Schema v2 defines named materials once (neutral
nk/rii+ per-engine hints) and layers reference them;gds-fdtd convert-techmigrates v1 files.lyprocessor/simprocessor/layout.gdsfactoryGDS loading via KLayout (SiEPIC pin conventions), component assembly, and gdsfactory (>= 9) conversion.
specSimulationSpec— every numeric simulation setting, validated, in package-wide units (µm / degrees / Hz).smatrixThe canonical
SMatrixcontainer plus the internal Lumerical-format.datreader/writer (_sparams) it interoperates with.
Solver layer¶
solvers.baseThe
SolverABC and registry. Constructors are cheap and pure;validate/build/estimateare offline; onlyrun()spends. Third-party engines register via thegds_fdtd.solversentry-point group (see Adding your own solver).solvers.tidy3d/solvers.lumerical/solvers.beamzThe engine adapters. The tidy3d adapter drives an internal scene builder (
solvers/_tidy3d_base+solvers/_tidy3d_engine); the Lumerical adapter generates.lsfdirectly; beamz builds a JAX FDTD grid. The pre-0.5solver_tidy3d/solver_lumericalmodules were removed in 0.6.0.grid/modes/extractionThe kernel-engine pipeline: permittivity rasterization with sub-pixel averaging, local mode solving, and bidirectional mode-overlap extraction — for engines that only accept raw permittivity arrays.
Orchestration¶
convergence/caching/validationField sweeps with converged-value recommendation; job-hash result caching (repeat runs are free); cross-engine agreement reports.
execution/cliSerializable
JobSpec+ local/subprocess backends and thegds-fdtdcommand-line interface — the remote-compute surface (see Running gds_fdtd jobs on remote compute).errors/settings/logging_configOne exception hierarchy (
GdsFdtdError),GDS_FDTD_*environment configuration, and package-scoped logging (text or JSON lines).