-
Notifications
You must be signed in to change notification settings - Fork 219
Refactor laser implementation #5318
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
base: dev
Are you sure you want to change the base?
Refactor laser implementation #5318
Conversation
36092a3
to
83ef24e
Compare
83ef24e
to
4568194
Compare
* getCurrentTime() -> getTminusXoverC() for separable profiles * make focus the origin of internal coordinate system * fix language typos * rename Unitless::w -> Unitless::OMEGA0 * delete PulseFrontTilt laser * Perform parameter range checks in ExpRampWithPrepulse
* update, expand, and fix language typos in doc-strings * use currentTimeOrigin & evaluate for all times * take Unitless::TIME_DELAY into account * apply dispersions only along polarization axis * move doubly performed computations into common place and compute only once * rename Unitless::w -> Unitless::OMEGA0 * decrease indentation level by namespace nesting * Add metadata
ac4d155
to
b01cbd0
Compare
@psychocoderHPC @PrometheusPi @chillenzer @ikbuibui PR is ready for review now. It is intentionally split in three commits each of which refactors a specific part of the old implementation. Test results have been discussed offline already and are documented in #5269. |
* update, expand, and fix language typos in doc-strings * allow for elliptic transverse shape by having different W0 per axis * remove pulse-front tilt (use via DispersivePulse for TEM_00, for all other modes the propagation is not known anyways) * adapt to new definition of internalCoordinates and time * straighten expressions for field computation (implementation follows Pausch et al. paper now) * rename Unitless::w -> Unitless::OMEGA0
b01cbd0
to
3e9c742
Compare
This refactoring straightens the implementation of laser profiles and removes confusing terms being added and later subtracted.
Major changes are:
origin
variable refers to the position on the Huygens surface where the field needs to be evaluated in order to feed it into the simulation=> This allows to implement expressions for laser fields as they are printed in publications and text books w/o additional phase and envelope terms
=> For pulse-front tilted standard Gaussian pulses the DispersivePulse can and should be used
Draft status of this PR will be removed when the following action items are performed
GaussianPulse
:DispersivePulse
:Close #5269