Warwick-Plasma / epoch

Particle-in-cell code for plasma physics simulations
https://epochpic.github.io
GNU General Public License v3.0
177 stars 57 forks source link

Allow lasers to be defined at an angle #45

Open keithbennett opened 3 years ago

keithbennett commented 3 years ago

In GitLab by Keith Bennett (@keithbennett) on 21 Aug 2018, 12:48 (GitLab issue GL#1801)

Description

EPOCH currently only allows lasers to be driven perpendicular to a boundary. It is quite common to require a laser at an angle and there is an example for achieving this in the documentation. However, it is difficult to implement by hand and produces artefacts at the laser front.

Links / references

See for example issue GL#1616

The change could be implemented using the total field/scattered field approach of the FDTD community. (eg. https://doi.org/10.1109/CEMTD.2007.4373540)

keithbennett commented 3 years ago

In GitLab by Stephan Kuschel on 04 Oct 2018, 23:26

Dear Keith,

I wonder what you mean by "only perpendicular to a boundary"? The artefact seen in GL#1616 seems to be caused simply by the fact that the simulation does not start early enough. By the time the simulation starts, a part of the pulse should have already entered the box (which is clearly impossible) resulting in the tilted corner around (-15, 7)lambda.

I have looked into that problem quite thoroughly about 5 yeas ago and finally I was able to inject a laser pulse centrally over a corner of the box (meaning 45deg to both boundaries) and in addition this laser pulse had a focal spot on a defined position inside the simulation box.

Therefore I believe that this is not a code issue but rather an issue on how to properly choose the input parameters. I was using the paraxial approximation, which worked fine up to f/5 or maybe f/3 focusing if I remember correctly.

Cheers Stephan

keithbennett commented 3 years ago

In GitLab by Keith Bennett (@keithbennett) on 10 Oct 2018, 13:44

Hi Stephan,

The problem is that in order to properly drive a laser at an angle in 2D, you need to drive two boundaries at the same time, not just one. This is obvious when you consider driving a plane wave rather than a gaussian beam. If you have a wave that is damped sufficiently such that is zero at the corner of the domain, then just starting from an earlier time will fix issues such as GL#1616. However, it would be nice to be able to drive any wave at an angle, including a gaussian beam which starts with its centre coming in from a corner. That is what this feature is primarily aiming to achieve. It would also be convenient to just specify an angle of propagation and not have to worry about how that translates to the phase fronts along a boundary.

Keith.