Skip to content

Releases: tachsin/photonoxide

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 14:38
218fb84

Breaking

  • ParametricModel::fit takes an Interpolation in place of the polynomial degree: Interpolation::Polynomial { degree } for the previous fit, Interpolation::PiecewiseLinear for Triverio's (#86)
  • 2D FDFD ports: with H along z, S's reflections are the tangential E's, as the 3D ports' and mode expansions', and so minus those before 0.4.0; a mode's backward amplitude follows (#90)
  • Boundaries3d has a new public field, real_stretch: struct literals need it, or ..Boundaries3d::pml(cells) (#84)

Added

  • components and netlists, the foundation of circuits (#71)
  • the circuit solve: one sparse system per netlist, checked against Filipsson's sub-network growth (#74)
  • read and write Touchstone files, Version 1 and 2.0 (#72)
  • the circuit adjoint: every parameter's gradient from one transposed solve (#75)
  • optimization at circuit level through genoxide: a splitter, a ring at critical coupling and a fit (#76)
  • compact models by vector fitting, over parameters, and the measured fidelity (#78)
  • 3D FDFD ports: the grid's own full-vector port modes, one-way mode sources and a reciprocal S-matrix (#77)
  • the first components: waveguide, bend, couplers, MMI, Y-branch, rings and MZI (#79)
  • (studio) a component library and a chip view (#80)
  • validate against measured Mach-Zehnder interferometers (Dwivedi 2015) (#85)
  • (material) AlN's index (Rigler 2015), AlGaN films (Rigler 2013), and InGaP beyond Tanaka's range (Ferrini 2002) (#87)
  • [breaking] compact models checked against their papers: Triverio's piecewise-linear model with an exact uniform stability test (#86)
  • [breaking] QMR preconditioned by ILU(0) on Shin and Fan's operator, with PMLs stretched as much as they absorb (#84)

Fixed

  • a 3D direct solve reaches round-off on any machine, finishing by QMR on an inaccurate factorization (#82)
  • 0.4 follow-ups: MMI port polarization, provenance -0.000, parallel spectra, roadmap (#83)
  • [breaking] 2D reflections with H along z by the tangential E's convention, as the 3D ports' (#90)

Documentation

  • bring the README up to date with 0.3.3 and the 0.4 work on main (#88)
  • bring the site, getting started, the studio's README and AGENTS.md up to date (#89)
  • animate the studio in the README, recorded by a script (#91)
  • describe the crate as 0.4.0 has it, with FDTD, inverse design, layout and PDKs as planned (#92)

v0.3.3

Choose a tag to compare

@github-actions github-actions released this 03 Oct 01:53
c8e4057

Added

  • the selected mode travels along its guide in the 3D viewer, and job previews show a modes job whole (#61)
  • (validation) the cases' math as LaTeX, rendered by KaTeX in the studio and on the site (#62)
  • flip through a sweep's points in the viewer, each with its structure and its modes (#67)
  • a materials catalogue with provenance, and a Materials page in the studio (#70)

Fixed

  • (studio) a release in the making is announced as on its way, not as an error (#58)
  • the check refuses windows that run backwards, a step that isn't positive and sweeps a run can't take; a width sweep's point shows its own cross-section (#68)
  • new run events go after the old ones, so their discriminants keep their values (#69)

Documentation

  • method write-ups' math as GitHub renders it (#63)

v0.3.2

Choose a tag to compare

@github-actions github-actions released this 02 Oct 22:27
66d5b96

Added

  • (studio) rings, 3D previews of every job, and a steady 3D view (#54)
  • (studio) look for a new release every hour while the window is open (#56)

v0.3.1

Choose a tag to compare

@github-actions github-actions released this 02 Oct 20:54
5c838c6

Added

  • (studio) the studio as a workspace, with examples inside and updates by one click (#52)

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 19:26
61b23e4

Added

  • [breaking] make the studio a Tauri app with a 3D view, and the photonoxide program (#36)
  • open the studio's start page with a bare photonoxide, and release binaries (#38)
  • add a multilayer stack's reflection and transmission of a plane wave (#40)
  • add 2D FDFD with stretched-coordinate PMLs and its exact power flux (#41)
  • add 2D FDFD ports: the grid's own modes, one-way sources and a reciprocal S-matrix (#42)
  • reuse an FDFD matrix's symbolic analysis across a sweep (#43)
  • add an fdfd job: a device on one layer by 2D FDFD with ports, live in the studio (#44)
  • add adjoint gradients for 2D FDFD, checked against finite differences (#45)
  • add Hadley's high-accuracy interface and corner equations as a full-vector mode solver (#47)
  • add 3D FDFD on the Yee grid with stretched-coordinate PMLs (#46)
  • add a QMR iterative solver for 3D FDFD, on the curl-curl operator or Shin and Fan's (#48)

Fixed

  • (fdfd) put Shin and Fan's ε⁻¹ at the nodes, inside the gradient (#50)

Documentation

  • reshape the roadmap around components, circuits and active photonics (#49)
  • mark 0.2 and 0.3 done in the roadmap (#51)

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 08:38
30965b7

Added

  • add the exact TE and TM modes of three-layer slabs (#14)
  • add the full-vector finite-difference mode solver, with shift-and-invert Arnoldi (#16)
  • add mirror walls to the vector mode solver, and validate its corners against Hadley (#20)
  • add group index, dispersion, loss and mode tracking (#21)
  • add exact multilayer slab modes and leaky waves by transfer matrices (#22)
  • add a PML to the vector mode solver for leaky modes (#23)
  • add the effective index method, with its error against the vector solver (#24)
  • add bends: an exact bent slab, and bent cross-sections in the vector solver (#26)
  • add a vector mode's full fields, power and coupling into another mode (#28)
  • add Marcatili's approximation, validated against the vector solver in its regime (#29)
  • add planar profiles by 1D finite differences, with a PML (#30)
  • add the studio's mode viewer, with sweeps over wavelength and width (#31)

Documentation

  • add examples, each reproducing a published result (#18)
  • add the banner, logo and README badges (#19)
  • add the project site, method write-ups and example outputs (#25)
  • describe 0.2 as released (#35)

v0.1.1

Choose a tag to compare

@github-actions github-actions released this 01 Oct 14:17
89b90d4

Added

  • check the material data against Li, Malitson and Luke, and validate silica against Malitson's Table I (#11)

Documentation

  • cite the book's page and words for the 220 nm on 2 um SOI stack (#13)

v0.1.0

Choose a tag to compare

@tachsin tachsin released this 01 Oct 13:40
50047cb

0.1 Foundations (ROADMAP.md).

Added

  • add the error type, and CI on Linux, macOS and Windows (#1)
  • add typed lengths, wavelengths and frequencies, and the e^(-iwt) convention (#2)
  • add materials with their provenance: Si (Li 1980), SiO2 (Malitson 1965), Si3N4 (Luke 2015) (#3)
  • add planar shapes, layer stacks with SOI and nitride presets, and structures (#4)
  • add job files, run directories, event records with exact replay, and stops (#5)
  • add the validation harness, its report and the photonoxide validate command (#6)
  • add the studio window, structure jobs and permittivity rasters (#7)
  • read refractiveindex.info files: its nine formulas, tabulated n, k and nk, with their provenance (#8)

Changed

  • raise the minimum Rust to 1.95 for eframe and egui 0.36 (#9)