Skip to content

v3.0.1

Choose a tag to compare

@github-actions github-actions released this 23 Mar 10:37
· 33 commits to main since this release
9ffd94e

TransferMatrix v3.0.1

Diff since v3.0.0

v3.0.1

Bug fix

  • Fix data race in sweep_thickness — a single mutable layer vector was shared across threads, causing scrambled
    output when multithreading was enabled. Each thread now operates on its own copy.

Examples

  • Update dbr_cavity, fabry-perot, and quarter_wave examples for v3 TransferResult return type

Merged pull requests:

  • docs: fix invalid @ref to fresnel_amplitude (#50) (@garrekstemo)
  • Fix docs ref (#51) (@garrekstemo)
  • feat: add PrecompileTools to reduce time-to-first-execution (#52) (@garrekstemo)
  • Update TransferMatrix requirement from 2.1.1 to 2.1.1, 3.0 in /examples in the all-julia-packages group across 1 directory (#54) (@dependabot[bot])
  • Add CLAUDE.md with project documentation (#55) (@garrekstemo)
  • fix: thread safety, split propagate, birefringence comments (#64) (@garrekstemo)
  • fix: anisotropic first/last layer crash in propagate (#65) (@garrekstemo)
  • fix: consolidate airy prefactors, reorder constants, update docs (#66) (@garrekstemo)
  • fix: γ normalization, reflected Poynting wavevectors, testing gaps (#67) (@garrekstemo)
  • fix: γ₃₃ sign error and mode sorting for rotated anisotropic media (#69) (@garrekstemo)
  • test: add Aqua.jl code quality checks (#73) (@garrekstemo)
  • Update examples to v3.0 and fix extinction probe bug (#74) (@garrekstemo)
  • Fix sweep_thickness thread safety and update examples for v3 (#75) (@garrekstemo)

Closed issues:

  • Calculate scattering matrix (#6)
  • Use PrecompileTools (#25)
  • Allow Layer to take data for a single wavelength (#32)
  • Bug: Thread safety race condition in sweep_thickness (#56)
  • Bug: Anisotropic first/last layer crashes propagate (#57)
  • Bug: Reflected Poynting vectors computed with wrong wavevector (#58)
  • Potential issue: γ normalization uses wrong inner product for complex vectors (#59)
  • Performance: unnecessary allocations in transfer path (#60)
  • Clarify evaluate_birefringence branching logic (#61)
  • Minor: airy prefactors, constant ordering, find_bounds semantics (#62)
  • Testing gaps: anisotropic boundaries, Brewster via TMM, numerical stability (#63)