v3.0.1
TransferMatrix v3.0.1
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)