Skip to content

Code for simulating plasma lensing effects on radio pulse propagation

Notifications You must be signed in to change notification settings

ggrillo93/plasma-lensing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python code to simulate the gain, TOA perturbations, and dispersion measure perturbations of 2D plasma lenses on radio pulses. Currently under development.

  • Right now, code is able to reliably construct the field for circular and elliptical Gaussian lenses based on the geometrical optics amplitudes (see the file fieldconstruction.pdf for more details). The function planeSliceG in upslice.py plots a comparison between the field constructed using the geometrical optics amplitudes and the field found by solving the Kirchhoff diffraction integral using the FFT. This works for relatively small sizes of lenses, ie. ax, ay > 0.1 AU, and small values of the maximum DM perturbation, ie. -1e-5 < DM < 1e-5. Larger magnitudes of these parameters result in aliasing in the FFT solution for reasonable grid sizes. Large values of ux' and uy' also cause aliasing, so it is better to keep these < 5. Will post code that does not have these restrictions by not trying to solve by FFT; current code is simply intended as a demonstration to show that the wave optics field can be constructed from the geometrical optics field.

  • Code is designed such that the observer movement across the u' leads to the encounter of at least two caustics. To make sure this will happen, use function causPlotter in order to draw the caustic curves and the motion of the observer, and then run planeSliceG. Caustics are formed when at least one of the values in [\alpha/a_x^2, \alpha/a_y^2] is < -1.1215 or > 0.5. See fieldconstruction.pdf for the definition of these quantities. The size of the generated caustics will be on the order of these two coefficients. There are two .pdf with output examples included in the repository, and the script testing.py contains some lines that make it easier to test the code for different parameters.

  • As of 03/21/18, the code has been generalized to accept other types of lens structures. The equation for the lens can be specified in fundfunctions.py, line 15. causPlotter works with essentially any kind of lens structure and enables one to see the types of catastrophes that are generated. solveKDI also works with any lens structure as long as the lens size and the magnitude of the perturbation is not too large.

About

Code for simulating plasma lensing effects on radio pulse propagation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published