-
Notifications
You must be signed in to change notification settings - Fork 41
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
Field amplitude does not scale #225
Comments
Hi, import numpy as np
import poppy
import astropy.units as u
num_xy = 128
oversample = 2
w0 = 1.0
lam = 1000.0e-9
P0 = 1.0e3 # Beam power
wf = poppy.FresnelWavefront(2.0*w0*u.m, wavelength = lam*u.m, npix = num_xy, oversample = oversample)
wf *= poppy.GaussianAperture(w = w0*u.m)
wf *= poppy.QuadraticLens(0.5*u.m)
# Adjust electric field amplitude so that power is P0
P = wf.intensity.sum()
wf *= np.sqrt(P0/P)
P = wf.intensity.sum()
print(P) # Correct result, 1kW
# Propagate and print current power (which should not change!!!)
wf.propagate_fresnel(0.1*u.m)
P = wf.intensity.sum()
print(P)
wf.propagate_fresnel(0.1*u.m)
P = wf.intensity.sum()
print(P)
wf.propagate_fresnel(0.1*u.m)
P = wf.intensity.sum()
print(P) The result is as expected:
|
Hi, On the other hand, the power of the beam must be preserved when there are no losses due to scattering or absorption, which is a consequence of energy conservation. So: One can also check this by the analytical description of a Gaussian: integrate the suare of the electric field (e.g. calculate the power) and you end up with a constant (\pi w_0^2/2 assuming an initial field amplitude of 1). So the power is independent of the propagation length z! Maybe some real life example as well. In the current implementation, the intensity amplitude stays constant for all z. However, it should increase, which is the reason to focus a laser beam for many applications, e.g. material processing. You increase the field strength via focusing. After these arguments, do you still think the total intensity and not the power should be preserved while propagating? |
The normalization is motivated by digital imaging, specifically the measurement of PSFs on pixellated detectors (CCDs, CMOS, HgCdTe hybrid arrays, etc.). The count rate in a given pixel is an integral of the incident power over the area of the pixel. That's what we're trying to simulate, because that's the actual observable that one measures with a detector, in the lab or on a telescope.
|
Using Fresnel propagation, the electric field amplitude is not correctly scaled (not at all as it seems). I come to this conclusion after propagating a focused Gaussian and checking if the overall power is conserved, which it isn't. Check this script, which creates a Gaussian electric field with a certain power, applies a quadratic lens to focus it at 0.5m and propagates 3 times 0.1m. After every propagation step, I print the current power:
The result reads:
However, the power should stay constant since no absorption is applied anywhere.
The text was updated successfully, but these errors were encountered: