fmmax icon indicating copy to clipboard operation
fmmax copied to clipboard

Variations to the Lorentzian Broadening

Open smartalecH opened this issue 1 year ago • 1 comments

To condition the manual vjp of the eigenvectors, fmmax uses a lorentzian broadening term (like many other FMM/RCWA implementations):

https://github.com/facebookresearch/fmmax/blob/a509ffa99afd325673483893bf76efcf96ddba0d/src/fmmax/utils.py#L164-L168

That being said, the current formulation looks particularly sensitive to phase differences between eigenvalues. The convolution with the lorentzian test function should be complex-valued. One possible change could be:

$$ f_0 = \frac{\bar{Z}}{\bar{Z}Z + \epsilon} $$

where

$$ Z = \lambda_i-\lambda_j $$

smartalecH avatar Mar 29 '24 18:03 smartalecH