Skip to content

v0.1.0

Choose a tag to compare

@cjcscheper cjcscheper released this 20 Oct 14:36
· 3 commits to master since this release

First release.

Added

  • solve_tmm(omega, layer_thickness, layer_n, ...): transfer-matrix method for
    planar multilayer stacks, s and p polarization at oblique incidence, absorbing
    layers and evanescent waves, returning a frozen Result (omega, r, t, R, T, A).
  • num_substrate_passes for time-gated measurements, with a UserWarning when
    front-layer echoes beyond the implied gate exceed substrate_pass_tolerance.
  • conjugate_model for the exp(+i omega t) time convention.
  • Single-interface functions: fresnel_r, fresnel_t, fresnel_R, fresnel_T,
    critical_angle, brewster_angle, admittance, snell_cos_theta,
    snell_theta, and propagation_phase.
  • Physical constants SPEED_OF_LIGHT, VACUUM_PERMEABILITY,
    VACUUM_PERMITTIVITY, VACUUM_IMPEDANCE.
  • THEORY.md (derivation, conventions, substrate-pass validity), examples
    (antireflection coating, Fabry–Pérot slab, angle dependence), tests and a
    GitHub Actions workflow.
  • examples extra installing cjcplot pinned to v0.2.0; the examples plot
    with cjcplot. pip install cjctmm itself stays numpy-only.