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

Enhancement of Coherence Calculation in Lightwave Explorer #45

Open
889562 opened this issue Nov 1, 2024 · 2 comments
Open

Enhancement of Coherence Calculation in Lightwave Explorer #45

889562 opened this issue Nov 1, 2024 · 2 comments

Comments

@889562
Copy link

889562 commented Nov 1, 2024

Hello,
I am a second-year graduate student majoring in laser science. Recently,pulse propagation in the presence of quantum noise has been generalized to waveguides with arbitrary frequency-dependent nonlinear profiles. This specifically involves two types of coherence:

  1. Interpulse Coherence:|g_12^((1)) (λ,t_1-t_2)|=|(⟨E_i^* (λ,t_1)E_j (λ,t_2)⟩_(i≠j))/([⟨|E_i (λ,t_1)|^2⟩⟨|E_j (λ,t_2)|^2⟩]^(1/2) )|,
  2. Intrapulse Coherence:Γ_CEP (λ)=(|⟨E ̃_i^2 (2λ)E ̃_i^* (λ)⟩|)/(⟨|E ̃_i^2 (2λ)E ̃_i^* (λ)|⟩).

When calculating coherence, it is common practice to include quantum-limited shot noise phenomenologically. This approach is part of my code, g12, where the Unidirectional Pulse Propagation Equation (UPPE) is solved in MATLAB. However, there may still be issues, particularly when adding noise to the spatial electric field.

I would like to inquire whether this functionality could be integrated into Lightwave Explorer. I believe this feature would be very useful. If feasible, I am willing to provide the corresponding materials to support this addition.

The image is sourced from the following article:
"Space-time focusing and coherence properties of supercontinua in multipass cells"
Mei, Chao; Steinmeyer, Günter
Physical Review Research, 03/2021, Vol. 3, Issue 1
DOI https://doi.org/10.1103/PhysRevResearch.3.013259
11 1

111

@NickKarpowicz
Copy link
Owner

Hi there! Thanks for your comment and suggestion! I have to think about how to treat this kind of thing within LWE since so far my mental picture of how the processes unfolds is with the field as a well-defined quantity in time and space. One option would be to have a different kind of batch mode where rather than performing a sweep of one parameter of the pulse, it provides some kind of expectation under variability of some parameters... Interesting concept!

@889562
Copy link
Author

889562 commented Nov 5, 2024

Figure 2
Figure1
Figure3
Hi Nick,
Thank you once again for your thoughtful response and for considering my suggestion. To provide further context, there have been successful applications of the generalized nonlinear Schrödinger equation in the case of one-dimensional fibers, where a similar functionality was implemented, with the noise form being one-dimensional as well. I believe the core of my code is sound, and the process is as follows: I add noise to the initial electric field in each simulation, save multiple simulation results with different noise realizations, and then use these results to plot the two types of coherence.
I have also experimented with adding multi-dimensional noise to a radial symmetric electric field in both MATLAB and Mathematica, Just add a noise to each row of the radial electric field matrix or directly add a noise matrix, although further improvements may still be necessary. For reference, you may find a similar approach in this Python code: GNLStools GitHub, specifically in the file path results/numExp03_noise_model_01/pp_fig_FIG03. In MATLAB, I follow a similar method of saving results to .mat files to avoid memory issues, and it seems that the Python code linked above does the same.
As I am still becoming familiar with the structure of C++ code, I was wondering whether implementing this functionality in Lightwave Explorer would be feasible, and if there might be any significant challenges in doing so. I truly believe this addition could be a valuable enhancement to Lightwave Explorer, and I sincerely appreciate your willingness to explore how it might fit into the framework.
Additionally, I am currently unable to fully reproduce the k-space results (Do I need to perform row transformation first and then column transformation to obtain the result of k-space) and time-domain plots as presented in Issue #36, particularly the horizontal axis of the time-domain plot. The time-domain axis seems to differ from what is shown in the program, and I suspect that the s.timeVector may not correspond to the time coordinate moving with the group velocity. Any guidance on this would be very much appreciated. If possible, could you kindly let me know if there is any way I could access the core code for the Unidirectional Pulse Propagation Equation (UPPE)? I would be grateful if you could point me to the specific part of the LWE source code responsible for solving UPPE and plotting the results.
Thank you again for your time and consideration. I look forward to hearing your thoughts.
issue36_result_pictures.zip
338219397-11bace39-b6b4-4cfa-a6dd-b9a756db34be

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

No branches or pull requests

2 participants