Comments (7)
Can someone explain how BscPmParaxial spreads field to focal plane and calculate expansion coefficients? I don't have any idea.
from ott.
It fits the beam shape coefficients "at infinite" distance from the focus. This means that the input is in the Fourier space of the microscope. Any feature there is in the units of wavenumber, k. This works because at sufficiently large distances the vector field is essentially 2D and thus the paraxial problem simply maps into it. The near field (focal plane) is evaluated directly from weighted sums of the vector spherical wavefunctions.
This function is intended model the effect of a field produced from a device such as a spatial light modulator. This would ordinarily be mapped to the back-focal-plane of the microscope and that's what this class processes.
I what you want is a particular paraxial beam mode, BscPmGauss may be better for you. It has Laguerre--Gaussian, Hermite--Gaussian, and Ince--Gausian beams built in with the ability to change their fill factor.
from ott.
Thanks for the quick response. But I still don't understand how exactly this method works. What is the physical meaning of "tan theta scaling, thin lens appropriate"? For example, in VOLPE it is written that field propagation can be done using a simple Fourier transform. what's the approach here?
from ott.
The fit implicitly results in a Fourier 3D vector field transformation. It will be equivalent to performing the Fourier transform on all three vector components, but assuming they are mapped onto some surface. The thin-lens approximation is that the surface is a flat sheet. For a high-NA "real" lens it is, by design, the surface is a solid angle cut out of a sphere (perhaps with some amplitude modulation towards the edges).
from ott.
Can you please explain in detail why it is "equivalent to performing the Fourier transform on all three vector components, but assuming they are mapped onto some surface"? Or can you share source of literature in which this is described?
Honestly speaking, I want to comprehend how it's work.
What is "wscaling" (BscPmParaxial, 168)?
Why in 242,243 lines do use sign(cos(theta))? not just cos(theta)?
"Et=(sign(cos(theta)).*cos(phi).*Ex_toolbox+sign(cos(theta)).*sin(phi).*Ey_toolbox);
Ep=(-sin(phi).*Ex_toolbox+cos(phi).*Ey_toolbox);"
from ott.
The radiation is far enough away at it can be considered as being a 2D vector field projected from the surface of the sphere. If the field were paraxial, it has no associated "z" field. This is the heart of the assumption. We have a collimated paraxial beam with x and y polarisation entering an optical system from "a long distance away".
The idea is not limited to the problem solved by the toolbox. It also applies to microscopes more generally:
Abbe, E., Hon. (1881), VII.βOn the Estimation of Aperture in the Microscope.. Journal of the Royal Microscopical Society, 1: 388-423. https://doi.org/10.1111/j.1365-2818.1881.tb05909.x
It's worth a read, the important part can be found, pp. 393. If you don't have access look for "Abbe sine condition". By default the toolbox assumes a thin lens formulation. However, I found that with the microscopes we use in the lab I get the best match using the sine condition. The default is 'tantheta' because that's what the first version used.
from ott.
- "wscaling" (BscPmParaxial, 168)? It controls the beam fit to the back aperture. By default it is tuned to achieve 1/exp(2) peak power at the edge of the aperture.
- Why in 242,243 lines do use sign(cos(theta))? not just cos(theta)? See "Abbe sine condition".
The equations:
"Et=(sign(cos(theta)).*cos(phi).*Ex_toolbox+sign(cos(theta)).*sin(phi).*Ey_toolbox);
Ep=(-sin(phi).*Ex_toolbox+cos(phi).*Ey_toolbox);"
follow from that reasoning.
from ott.
Related Issues (20)
- Multiple beams in BSC class HOT 1
- Unit tests for all components HOT 1
- Optimise examples HOT 1
- Get rid of the shapesurface function HOT 3
- Multiple translation matrices not returned by Bsc.translateZ
- BscPlane translations as phase shifts HOT 1
- GUI commands HOT 3
- Filling factor HOT 5
- Smarties method does not work HOT 1
- Absorption calculations?
- Migrate apps to use ComponentContainer
- Setting the T-matrix of particle with other shape in GUI HOT 3
- The range of particle sizes to which the program applies HOT 6
- Material database
- The refractive index of a medium varies with the laser of different wavelength HOT 2
- About "Warning: Ignoring fz<0 entries at start of vector " may be a bug
- Extinction coefficient
- emFieldXyz: E-field units
- transform from center-of-mass frame to lab frame
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
π Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. πππ
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google β€οΈ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ott.