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

mistake on exp_D #48

Open
TomFD opened this issue Oct 14, 2018 · 1 comment
Open

mistake on exp_D #48

TomFD opened this issue Oct 14, 2018 · 1 comment

Comments

@TomFD
Copy link

TomFD commented Oct 14, 2018

Hi, for the symmetric split-step, the linear step is currently set as:
A[:] = self.LinearStep(A,dz,direction)
However, is uses
self.Calculate_expD(h,direction)
and there:
self.exp_D[:] = np.exp(directionh0.5*(1j*self.betas-self.alpha/2.0))
In my opinion, the 0.5 is a mistake.
It actually works for the RK4IP implementation, because there, the first step is only dz/2. Currently it is done by
self.A_I[:] = self.LinearStep(A,h,direction)
but should be something like: self.A_I[:] = self.LinearStep(A,h/2.0 ,direction)
if the LinearStep is corrected.

You can check that there are different results when replacing the method for simple problems
evol.method=SSFM.SSFM.METHOD_SSFM
#evol.method=SSFM.SSFM.METHOD_RK4IP

as well as the dispersion parameter D tells you by its value for linear propagation, how the pulse should spread, but it does only half its value.

cheers, Tom

@TomFD TomFD changed the title mistake on mistake on exp_D Oct 14, 2018
@pyNLO
Copy link
Owner

pyNLO commented Oct 15, 2018

Thanks for reading through the code so carefully. You are entirely correct.

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