Skip to content
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

Enable initialisation and estimation of optional spatio-temperal coupling parameters to gaussian profile #307

Merged
merged 426 commits into from
Dec 19, 2024

Conversation

huixingjian
Copy link
Contributor

@huixingjian huixingjian commented Oct 15, 2024

PR Description

This PR, synergized with PR #182, introduces the initialization and estimation of first-order spatio-temporal coupling parameters in the GaussianLongitudinalProfile class. Four additional parameters have been added to the constructor:

  • Group-delay dispersion phi2 in $s^2$ parameterized by: $\varphi^{(2)} = \frac{dt_0}{d\omega}$,
  • Spatial chirp zeta in $m \cdot s$ parameterized by: $\zeta = \frac{dx_0}{d\omega}$(Here $x_0$ is the beam center position),
  • Angular dispersion beta in $s$ parameterized by: $\beta = \frac{d\theta_0}{d\omega}$( Here $\theta_0$ is the propagation angle of this component.)
  • Finally stc_theta is the direction of transverse spatio-coupling in xoy plane

Issue addressed

With the introduction of spatio-temporal coupling (STC), the LongitudinalProfile class can leverage additional information from the transverse profile. Along with the aforementioned parameters, the waist and focus length are also incorporated into the constructor. The transverse points x and y have been set to default values of 0 in the evaluate member function.

In the laser utilities, a new function, get_STC, has been added to evaluate the STC parameters using the following formulas, with the laser envelope expressed as $a = a_0 e^{i\theta}$:

  • The temporal chirp is calculated through
    $\phi^{(2)} = \frac{4\varphi^{(2)}}{4(\varphi^{(2)})^2+\tau^4}$
    Here $\tau$ is duration in s, and phi2 refers to group-delay dispersion $\phi^{(2)} $, and $\Phi^{(2)}$ can be calculated by $\frac{\partial^2 \theta }{\partial t ^2}$.
  • Similarly, the spatial chirp is tested through:
    $\nu = \frac{4\zeta }{w_0^2\tau^2+4\zeta^2}$
    Here $L_0$ and $w_0$ are the laser duration and laser waist respectively. $\zeta = \frac{dr_0}{d\omega}$, where $r_0$ is the transverse beam centroid ($\theta$ is the stc_thetamentioned above).
  • Finally, the angular chirp term is tested through:
    $\beta = \frac{d_{\theta_0}}{ d\omega}$
    with $\theta_0$ refering to the propagating angle of the frequency component

Benefits

First order STC is enabled on both the initialisation and evaluation sides.

Test

The initialisation and the utils are tested through CI test test_STC.py

@huixingjian huixingjian marked this pull request as draft October 16, 2024 09:09
@huixingjian huixingjian force-pushed the add_diag_util branch 3 times, most recently from c218700 to d2732b3 Compare October 16, 2024 10:30
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
@huixingjian huixingjian marked this pull request as ready for review October 18, 2024 20:50
@huixingjian huixingjian marked this pull request as draft October 18, 2024 20:54
@huixingjian huixingjian marked this pull request as ready for review October 18, 2024 21:16
@huixingjian huixingjian changed the title [WIP] Enable initialisation of optional spatio-temperal coupling parameters to gaussian profile Enable initialisation of optional spatio-temperal coupling parameters to gaussian profile Oct 18, 2024
@huixingjian huixingjian changed the title Enable initialisation of optional spatio-temperal coupling parameters to gaussian profile Enable initialisation and estimation of optional spatio-temperal coupling parameters to gaussian profile Oct 18, 2024
@huixingjian huixingjian reopened this Oct 28, 2024
@huixingjian huixingjian changed the title Enable initialisation and estimation of optional spatio-temperal coupling parameters to gaussian profile [WIP]Enable initialisation and estimation of optional spatio-temperal coupling parameters to gaussian profile Oct 28, 2024
@huixingjian huixingjian marked this pull request as draft October 28, 2024 20:20
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
lasy/utils/laser_utils.py Fixed Show fixed Hide fixed
Copy link
Contributor

@MaxThevenet MaxThevenet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks fantastic! Just minor comments.

lasy/profiles/gaussian_profile.py Outdated Show resolved Hide resolved
lasy/utils/laser_utils.py Outdated Show resolved Hide resolved
lasy/utils/laser_utils.py Outdated Show resolved Hide resolved
lasy/utils/laser_utils.py Outdated Show resolved Hide resolved
lasy/profiles/gaussian_profile.py Outdated Show resolved Hide resolved
lasy/profiles/gaussian_profile.py Outdated Show resolved Hide resolved
Copy link
Contributor

@MaxThevenet MaxThevenet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

\o/

@MaxThevenet MaxThevenet merged commit acca4f6 into LASY-org:development Dec 19, 2024
6 checks passed
@huixingjian huixingjian deleted the add_diag_util branch December 19, 2024 15:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants