Skip to content

mistake on exp_D #48

@TomFD

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

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