Split-step method

In numerical analysis, the split-step (Fourier) method is a pseudo-spectral numerical method used to solve nonlinear partial differential equations like the nonlinear Schrödinger equation. The name arises for two reasons. First, the method relies on computing the solution in small steps, and treating the linear and the nonlinear steps separately (see below). Second, it is necessary to Fourier transform back and forth because the linear step is made in the frequency domain while the nonlinear step is made in the time domain.

An example of usage of this method is in the field of light pulse propagation in optical fibers, where the interaction of linear and nonlinear mechanisms makes it difficult to find general analytical solutions. However, the split-step method provides a numerical solution to the problem. Another application of the split-step method that has been gaining a lot of traction since the 2010s is the simulation of Kerr frequency comb dynamics in optical microresonators. The relative ease of implementation of the Lugiato–Lefever equation with reasonable numerical cost, along with its success in reproducing experimental spectra as well as predicting soliton behavior in these microresonators has made the method very popular.

Description of the method
Consider, for example, the nonlinear Schrödinger equation
 * $${\partial A \over \partial z} = - {i\beta_2 \over 2} {\partial^2 A \over \partial t^2} + i \gamma | A |^2 A = [\hat D + \hat N]A, $$

where $$A(t,z)$$ describes the pulse envelope in time $$t$$ at the spatial position $$z$$. The equation can be split into a linear part,
 * $${\partial A_D \over \partial z} = - {i\beta_2 \over 2} {\partial^2 A \over \partial t^2} = \hat D A, $$

and a nonlinear part,
 * $${\partial A_N \over \partial z} = i \gamma | A |^2 A = \hat N A. $$

Both the linear and the nonlinear parts have analytical solutions, but the nonlinear Schrödinger equation containing both parts does not have a general analytical solution.

However, if only a 'small' step $$h$$ is taken along $$z$$, then the two parts can be treated separately with only a 'small' numerical error. One can therefore first take a small nonlinear step,


 * $$A_N(t, z+h) = \exp\left[i \gamma |A(t, z)|^2 h \right] A(t, z), $$

using the analytical solution. Note that this ansatz imposes $$|A(z)|^2=const.$$ and consequently $$\gamma \in \mathbb{R}$$.

The dispersion step has an analytical solution in the frequency domain, so it is first necessary to Fourier transform $$A_N$$ using
 * $$\tilde A_N(\omega, z) = \int_{-\infty}^\infty A_N(t,z) \exp[i(\omega-\omega_0)t] dt $$,

where $$\omega_0$$ is the center frequency of the pulse. It can be shown that using the above definition of the Fourier transform, the analytical solution to the linear step, commuted with the frequency domain solution for the nonlinear step, is


 * $$\tilde{A}(\omega, z+h) = \exp\left[{i \beta_2 \over 2} (\omega-\omega_0)^2 h \right] \tilde{A}_N(\omega, z).$$

By taking the inverse Fourier transform of $$\tilde{A}(\omega, z+h)$$ one obtains $$A\left(t, z+h\right)$$; the pulse has thus been propagated a small step $$h$$. By repeating the above $$N$$ times, the pulse can be propagated over a length of $$N h$$.

The above shows how to use the method to propagate a solution forward in space; however, many physics applications, such as studying the evolution of a wave packet describing a particle, require one to propagate the solution forward in time rather than in space. The non-linear Schrödinger equation, when used to govern the time evolution of a wave function, takes the form


 * $$i \hbar {\partial \psi \over \partial t} = - {{\hbar}^2 \over {2m}} {\partial^2 \psi \over \partial x^2} + \gamma | \psi|^2 \psi = [\hat D + \hat N]\psi, $$

where $$\psi(x, t)$$ describes the wave function at position $$x$$ and time $$t$$. Note that
 * $$\hat D=- {{\hbar}^2 \over {2m}} {\partial^2 \over \partial x^2}$$ and $$ \hat N =\gamma | \psi|^2 $$, and that $$ m $$ is the mass of the particle and $$ \hbar $$ is Planck's constant over $$2\pi$$.

The formal solution to this equation is a complex exponential, so we have that
 * $$ \psi(x, t)=e^{-it(\hat D+\hat N)/\hbar}\psi(x, 0)$$.

Since $$\hat{D}$$ and $$\hat{N}$$ are operators, they do not in general commute. However, the Baker-Campbell-Hausdorff formula can be applied to show that the error from treating them as if they do will be of order $$dt^2$$ if we are taking a small but finite time step $$dt$$. We therefore can write
 * $$ \psi(x, t+dt) \approx e^{-idt\hat D/\hbar}e^{-idt\hat N/\hbar}\psi(x, t)$$.

The part of this equation involving $$ \hat N $$ can be computed directly using the wave function at time $$ t $$, but to compute the exponential involving $$ \hat D $$ we use the fact that in frequency space, the partial derivative operator can be converted into a number by substituting $$ ik $$ for $$ \partial \over \partial x $$, where $$ k$$ is the frequency (or more properly, wave number, as we are dealing with a spatial variable and thus transforming to a space of spatial frequencies—i.e. wave numbers) associated with the Fourier transform of whatever is being operated on. Thus, we take the Fourier transform of
 * $$e^{-idt\hat N/\hbar}\psi(x, t)$$,

recover the associated wave number, compute the quantity
 * $$ e^{idtk^2}$$,

and use it to find the product of the complex exponentials involving $$ \hat N$$ and $$ \hat D $$ in frequency space as below:
 * $$ e^{idtk^2}F[e^{-idt\hat N}\psi(x, t)]$$,

where $$ F$$ denotes a Fourier transform. We then inverse Fourier transform this expression to find the final result in physical space, yielding the final expression
 * $$\psi(x, t+dt)=F^{-1}[e^{idtk^2}F[e^{-idt\hat N}\psi(x, t)]]$$.

A variation on this method is the symmetrized split-step Fourier method, which takes half a time step using one operator, then takes a full-time step with only the other, and then takes a second half time step again with only the first. This method is an improvement upon the generic split-step Fourier method because its error is of order $$dt^3$$ for a time step $$dt$$. The Fourier transforms of this algorithm can be computed relatively fast using the fast Fourier transform (FFT). The split-step Fourier method can therefore be much faster than typical finite difference methods.

External references

 * Thomas E. Murphy, Software, http://www.photonics.umd.edu/software/ssprop/
 * Andrés A. Rieznik, Software, http://www.freeopticsproject.org
 * Prof. G. Agrawal, Software, http://www.optics.rochester.edu/workgroups/agrawal/grouphomepage.php?pageid=software
 * Thomas Schreiber, Software, http://www.fiberdesk.com
 * Edward J. Grace, Software, http://www.mathworks.com/matlabcentral/fileexchange/24016