Skip to content

Incoherent TMM #2

@KDH136

Description

@KDH136

Dear Xinge Yang

Thank you for sharing awesome project!

All of your opensource projects are truly helpful for optics and photonics community.

I would like to request the addition of incoherent layer support natively within the differentiable PyTorch solvers (IsotropicFilmSolver and the general FilmSolver).

Currently, the PyTorch solvers assume perfectly coherent wave propagation across the entire multi-layer stack.
When simulating structures that include layers significantly thicker than the wavelength, the coherent TMM calculation produces extremely dense and highly oscillatory Fabry-Perot ripples in the spectrum.

In actual experimental measurements, these ripples are typically washed out because the finite coherence length of the light source.
As a result, a purely coherent simulation creates a massive discrepancy between the calculated spectrum and the real-world ground truth.

For example, thin film stacks on both the front and back sides of a thick substrate.
To accurately model this, we need to treat the thin films as coherent while breaking the phase coherence at the thick intermediate substrate.

I noticed that the bundled reference library (tmm_numpy/tmm_core.py) already handles this perfectly via the inc_tmm function using the c_list parameter.
It would be a massive improvement if the logic of inc_tmm (calculating intensity-based transfer matrices for specific layers) could be ported into the differentiable PyTorch pipeline.

Thank you for your time, and I appreciate your work on this repository!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions