The range of temporal evolution of the amplified pulse #4
-
|
Hi, Yihao. file path: GMMNLSE/Examples/Gain-rate-equation model/GMNA |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 5 replies
-
|
Hi, First thanks for using my code. I'm always happy to see that people can find it useful. The functionality of pulse temporal centering is default to turn on. This means that the pulse is always centered to the time window based on its weighted temporal center: This time-shifted information is stored in the output as You can turn this temporal centering off by having Because of periodic nature of Fourier Transform, the pulse can go beyond the time window and come out on the other side. This just looks annoying to me, so I added this temporal pulse centering function to the code. With this, it is also easier to visualize the correct pulse relative positions if you have multiple pulses. For example, if you simulate a soliton fission process, many solitons propagate at different speeds. It's so easy to have one soliton propagate really slowly (if there is Raman SSFS effect) and later go beyond the time window and then appear at the leading edge of the time window. This artificial numerical effect will potentially mislead people to think that there is a pulse that propagates faster than all the others if we don't check the propagation carefully. Besides, in general, the actual delay of the pulse is usually not important. The time window is moving as well. It's called "moving frame". The time window is moving with the pulse due to beta_(1) in the equation. See Chapter 1 of readme.pdf. If you care about the actual delay, you need to take into account moving frame I think. By the way, if beta_(1) is zero, the simulation will run super slowly. It makes the final beta(omega) huge, and thus the z-stepping cannot be huge. You need to resolve the phase beta*z correctly in simulations to capture many phase-related physics. Therefore, it's important to have beta_(0) and beta_(1) to be values that minimize beta(omega) to speed up simulations. And from physics, we know that applying this mathematical trick doesn't affect the physics regarding phases. Is this what you're asking? |
Beta Was this translation helpful? Give feedback.
-
|
I edited it again. It should be I see that you're trying to duplicate that. I'm not the one who generated that figure. It's from our postdoc who left. I remembered he once complained about me adding this temporal centering as well, so I'm guessing that his code didn't have temporal centering. Therefore, he artificially put the pulse at the trailing edge of the time window to keep the moving pulse in it without hitting the window edge. As I said, beta_(1) can be any value. Perhaps in his simulations, he used a smaller beta_(1) such that the time window can't catch up with the redshifted pulse. You can duplicate that figure by turning off pulse_centering and slightly reducing fiber.betas(2). In my GMNA example, I set beta_(1) to be the value at 1080 nm, so before perfectly redshifting to the final GMNA, the pulse is relatively slow (bluer color under normal dispersion) to the time window and thus it has a positive T_delay. In that figure from our postdoc, apparently he set beta_(1) at 1030 nm, the center wavelength of his seed pulse, so the pulse is always faster than (redder color under normal dispersion) the time window. This is the reason of the discrepancy between our simulations. You can duplicate his result by turning off pulse_centering and changing beta_(1) is the inverse group velocity, the inverse speed of the moving frame (time window), and its unit is ps/m. Comparing it with the width of the time window is comparing apple and orange; they're just different things. By the way, don't use Hope this helps. |
Beta Was this translation helpful? Give feedback.
Hi,
First thanks for using my code. I'm always happy to see that people can find it useful.
The functionality of pulse temporal centering is default to turn on. This means that the pulse is always centered to the time window based on its weighted temporal center:
int(t,\abs{A}^2)is shifted to be zero.This time-shifted information is stored in the output as
prop_output.t_delay. The unit is ps, the same as time window.You can restore the time delay of the pulse by
restored_field(:,i) = circshift(prop_output.fields(:,1,i),floor(prop_output.t_delay/dt)).You can turn this temporal centering off by having
sim.pulse_centering = false;before running GMMNLSE_propagate().Because of periodic n…