-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Warning when paraxiality is violated #59
Comments
I released a new version of LightPipes (2.0.8) which includes a new command "propagate". This command is still experimental and the idea is to call Fresnel or Forvard depending on some criterium. Maybe the formula z <~ m * (x^4/labda)^(1/3) can be used for this? Fred van Goor. At this moment the propagate command (in propagators.py) looks like this:
|
That’s great but I thought that only Forward, with a double-u, was exact, while Forvard and Fresnel were paraxial approximations. In any case I think that an automatic propagator is a good idea, that’s what is used by VirtualLab Fusion (they also have the Spectrum of Plane Wave method, SPW): Of Forward is added, I think that a safeguard should be added when grid size is large. And maybe the NF criterion should be rescaled to a reference NF0 value, to be more intuitive, especially when printing the reason why a propagator has been chosen.
|
I suggest to add a warning when the paraxial approximation is violated, especially when using the Lens function.
Or to add a special function to test it on demand.
I know this cannot replace common physical sense, but that could help.
I have read that it happens when :
z <~ m * (x^4/labda)^(1/3).
for a lens, z == f, and x could be half the grid siz.
As for m, we could use 1 as a first implementation. Indeed, we can safely assume that most people will use a grid “a few times” larger than the beam radius w. Let’s call this margin N. So, if the m=1 condition is violated at r=grid.siz, then the m=N violation will occur at r=grid.siz/m == w.
The text was updated successfully, but these errors were encountered: