Skip to content

mistake on exp_D #48

Description

@TomFD

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions