gregmoille / pyLLE

Lugiato Lefever Equation Solver in Python/Julia
Other
66 stars 39 forks source link

How to understand the Main Solver in 'ComputeLLE.jl'? #26

Closed yxwroth closed 2 years ago

yxwroth commented 3 years ago

image I met some problems while rewriting the core code in 'ComputeLLE.jl' about the basic Spilt-Step Fourier Method in Main Solver code area.(See Fig.1)

As we known,SSFFT alogrithm obey the following solving method: image image The two terms required by the SSFFT method can be obtained by setting the linear term to zero or the nonlinear term to zero respectively.For example: fig1

However,it is difficult to figure out the original terms in Main Solver of 'ComputeLLE.jl'.Could you please show me the original form of the formula?Thanks a lot.

gregmoille commented 2 years ago

That’s a super late answer sorry about that. The SSF Fourier you are presenting is a simple one. The error propagation and stability of the solver is not great this way. Usually using a half split step Fourier method provides much better convergence and stability of the solver. The linear term and nonlinear term in the solver are quite self-explanatory: everything with loss and dispersion are linear (i.e.the cbeta term and everything before the iteration nested loop to find the correct step for the NL propagation), everything that has field mixing is nonlinear (i.e. everything in the iteration nested loop). For more info, you could look at Agrawal’s book and his implementation in matlab