Recent from talks
Nothing was collected or created yet.
Split-step method
View on WikipediaIn 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[dubious – discuss] 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.[1][2][3] 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
[edit]Consider, for example, the nonlinear Schrödinger equation[4]
where describes the pulse envelope in time at the spatial position . The equation can be split into a linear part,
and a nonlinear part,
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 is taken along , then the two parts can be treated separately with only a 'small' numerical error. One can therefore first take a small nonlinear step,
using the analytical solution. Note that this ansatz imposes and consequently .
The dispersion step has an analytical solution in the frequency domain, so it is first necessary to Fourier transform using
- ,
where 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
By taking the inverse Fourier transform of one obtains ; the pulse has thus been propagated a small step . By repeating the above times, the pulse can be propagated over a length of .
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
where describes the wave function at position and time . Note that
- and , and that is the mass of the particle and is the reduced Planck constant.
The formal solution to this equation is a complex exponential, so we have that
- .
Since and 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 if we are taking a small but finite time step . We therefore can write
- .
The part of this equation involving can be computed directly using the wave function at time , but to compute the exponential involving we use the fact that in frequency space, the partial derivative operator can be converted into a number by substituting for , where 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
- ,
recover the associated wave number, compute the quantity
- ,
and use it to find the product of the complex exponentials involving and in frequency space as below:
- ,
where denotes a Fourier transform. We then inverse Fourier transform this expression to find the final result in physical space, yielding the final expression
- .
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 for a time step . 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.[5]
References
[edit]- ^ Erkintalo, Miro; Sylvestre, Thibaut; Randle, Hamish G.; Coen, Stéphane (2013-01-01). "Modeling of octave-spanning Kerr frequency combs using a generalized mean-field Lugiato–Lefever model". Optics Letters. 38 (1): 37–39. arXiv:1211.1697. Bibcode:2013OptL...38...37C. doi:10.1364/OL.38.000037. ISSN 1539-4794. PMID 23282830. S2CID 7248349.
- ^ Maleki, L.; Seidel, D.; Ilchenko, V. S.; Liang, W.; Savchenkov, A. A.; Matsko, A. B. (2011-08-01). "Mode-locked Kerr frequency combs". Optics Letters. 36 (15): 2845–2847. Bibcode:2011OptL...36.2845M. doi:10.1364/OL.36.002845. ISSN 1539-4794. PMID 21808332.
- ^ Hansson, Tobias; Wabnitz, Stefan (2016). "Dynamics of microresonator frequency comb generation: models and stability" (PDF). Nanophotonics. 5 (2): 231–243. Bibcode:2016Nanop...5...12H. doi:10.1515/nanoph-2016-0012. ISSN 2192-8606.
- ^ Agrawal, Govind P. (2001). Nonlinear Fiber Optics (3rd ed.). San Diego, CA, USA: Academic Press. ISBN 0-12-045143-3.
- ^ T. R. Taha and M. J. Ablowitz (1984). "Analytical and numerical aspects of certain nonlinear evolution equations. II. Numerical, nonlinear Schrödinger equation". J. Comput. Phys. 55 (2): 203–230. Bibcode:1984JCoPh..55..203T. doi:10.1016/0021-9991(84)90003-2.
External references
[edit]- Thomas E. Murphy, Software, http://www.photonics.umd.edu/software/ssprop/
- Andrés A. Rieznik, Software, https://github.com/arieznik/freeopticsproject
- 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
Split-step method
View on GrokipediaIntroduction
Definition and Purpose
The split-step method is a pseudo-spectral numerical technique designed to solve time-dependent nonlinear partial differential equations (PDEs), such as those modeling wave propagation, by decomposing the evolution into alternating steps that handle linear dispersive effects and nonlinear interactions separately.[1] This approach leverages operator splitting to approximate the solution operator over discrete time intervals, enabling the efficient treatment of systems where dispersion and nonlinearity compete, as in optical fibers or quantum systems.[1] The primary purpose of the split-step method is to facilitate computationally efficient simulations of wave propagation phenomena governed by equations like the nonlinear Schrödinger equation (NLSE), where direct time-stepping methods become prohibitive due to the stiffness arising from disparate linear and nonlinear terms.[1] By isolating these operators, the method avoids the need for fully implicit schemes, which are often expensive, and instead promotes stability and accuracy through explicit, sequential advancements, particularly for long-distance or long-time propagations in nonlinear media.[1] At its core, the method approximates the full evolution operator for a time step , where denotes the linear (dispersive) operator and the nonlinear operator, via the symmetric product .[1] This second-order accurate splitting, rooted in Strang's formulation, preserves key physical properties like energy conservation while minimizing phase errors in dispersive waves.[1] The pseudo-spectral character of the method is realized through the use of fast Fourier transforms (FFTs) to compute spatial derivatives in the linear operator, transforming the problem into the frequency domain for dispersion and back to the spatial domain for nonlinearity, which is especially advantageous for periodic or extended domains.[1]Historical Development
The split-step method traces its origins to operator splitting techniques for ordinary differential equations, with foundational work by Gilbert Strang in 1968, who introduced symmetric splitting schemes that achieve second-order accuracy by alternating the application of sub-operators in a balanced manner.[5] Pioneering numerical simulations by Norman J. Zabusky and Martin D. Kruskal in 1965 demonstrated soliton interactions and recurrence in a collisionless plasma model governed by a KdV-like equation using finite-difference methods, coining the term "soliton" and inspiring later numerical techniques for nonlinear waves, including split-step approaches.[6] A significant advancement came in 1973 with the development of the split-step Fourier method by Robert H. Hardin and Frank D. Tappert, who applied it to solve nonlinear and variable-coefficient wave equations, including prototypes of the nonlinear Schrödinger equation (NLSE), by decomposing the evolution operator into linear (dispersive) and nonlinear parts, with the former handled via fast Fourier transforms. This pseudo-spectral approach drew inspiration from earlier spectral methods, as detailed in the 1977 book by David Gottlieb and Steven A. Orszag, which emphasized Fourier-based discretizations for efficient computation of dispersive phenomena. The method gained prominence in optics in 1976 through the work of J. A. Fleck Jr., J. R. Morris, and M. D. Feit, who adapted it to model the propagation of high-energy laser beams through the atmosphere, accounting for diffraction, absorption, and nonlinear effects.[2] The method's adaptation to quantum propagation was formalized in 1982 by Mark D. Feit, James A. Fleck Jr., and Arthur Steiger, who combined split-operator techniques with fast Fourier transforms to accurately simulate the time-dependent linear Schrödinger equation, demonstrating high efficiency for wave packet dynamics.[7] Key formalizations for the NLSE followed, such as the 1986 analysis by J. A. C. Weideman and B. M. Herbst, who presented a comprehensive split-step framework, including stability and convergence properties, for simulating modulational instability and soliton recurrence.[1] The 1990s saw evolution toward higher-order variants, incorporating multi-stage splittings to enhance accuracy while preserving computational efficiency, as explored in subsequent works building on Strang's symmetrization principles.Mathematical Foundation
Operator Splitting Technique
The operator splitting technique addresses the numerical solution of time-dependent evolution equations in a Banach space, typically of the form , where and are linear operators that generally do not commute, making direct exponentiation of the combined operator computationally challenging.[8] The core idea is to approximate the exact solution operator by products of simpler semigroups generated by and individually, leveraging their potentially easier solvability, such as through analytical expressions or efficient numerical schemes. A foundational result in this framework is the Trotter product formula, which states that for strongly continuous semigroups generated by and , the approximation holds in the strong operator topology, with the error scaling as . This was extended by the Trotter-Kato theorem, which provides conditions for the convergence of such approximations to the semigroup generated by , including consistency of resolvents and uniform boundedness, ensuring the limit operator generates a strongly continuous semigroup. For practical time-stepping with step size , the first-order Lie-Trotter splitting approximates (or the reverse order), achieving local truncation error of due to the non-commutativity term , as derived from the Baker-Campbell-Hausdorff formula.[9] Global error over with steps is then , assuming stability of the individual semigroups.[8] In Hamiltonian systems, where the evolution arises from with (kinetic plus potential energy operators), splitting methods preserve the symplectic structure if the individual flows are symplectic, ensuring long-term energy conservation up to for first-order schemes and preventing artificial dissipation in nonlinear wave simulations.[10] Higher accuracy is obtained via Strang splitting, , which reduces the local error to and maintains symplecticity for separable Hamiltonians.[9]The Nonlinear Schrödinger Equation
The nonlinear Schrödinger equation (NLSE) is a fundamental partial differential equation that models the propagation of wave envelopes in dispersive and nonlinear media, serving as the core equation addressed by the split-step method. In its standard one-dimensional cubic form for optical applications, it reads where represents the complex envelope of the electric field, is the propagation distance, and is the retarded time in a frame moving with the group velocity. This normalized form assumes anomalous group velocity dispersion and Kerr nonlinearity, balancing dispersive spreading against self-phase modulation. The equation can be expressed as , where the linear operator accounts for dispersion, and the nonlinear operator describes self-phase modulation due to the intensity-dependent refractive index.[11] In optics, the NLSE is derived from Maxwell's equations under the slowly varying envelope approximation, assuming a quasi-monochromatic field, negligible polarization changes, and weak nonlinearity, leading to the inclusion of second-order dispersion and third-order Kerr effects. Similarly, in quantum mechanics, an analogous form arises as the Gross-Pitaevskii equation for Bose-Einstein condensates (BECs), derived from the many-body Schrödinger equation in the mean-field limit for dilute, weakly interacting bosons, where the nonlinear term represents two-body interactions. Normalized versions introduce dimensionless parameters such as the dispersion length (with the pulse width and the dispersion coefficient) and nonlinear length (with the nonlinear coefficient and peak power), scaling by and by to yield the standard form.[11] Generalized forms extend this by incorporating higher-order effects, such as Raman scattering (delayed nonlinear response), self-steepening, and higher dispersion terms, resulting in equations like , where quantifies Raman contributions.[11] Exact solutions exist for the standard NLSE, including soliton profiles that propagate without distortion due to the balance between dispersion and nonlinearity. The fundamental soliton is given by , representing a stable, localized wave packet. The split-step method exploits the separation of linear and nonlinear operators to numerically integrate this equation efficiently.[11]Algorithm
Basic Split-Step Fourier Method
The basic split-step Fourier method provides an efficient numerical scheme for propagating solutions of the one-dimensional nonlinear Schrödinger equation (NLSE) by decomposing the evolution into linear dispersion and nonlinear self-phase modulation operators. The linear operator is handled exactly in the Fourier domain via fast Fourier transforms (FFTs), while the nonlinear operator is solved analytically in the time domain, enabling accurate simulations of soliton dynamics and pulse evolution in nonlinear media.[1] To advance the wave function over a propagation step , the algorithm first applies a half-step linear evolution. The field is transformed to the frequency domain: , where denotes the Fourier transform. The dispersion phase is then applied: . An inverse Fourier transform yields . This step accounts for half the dispersive effects over .[1] The full nonlinear evolution follows in the time domain, where the NLSE's nonlinearity permits an exact solution: . This multiplication incorporates the intensity-dependent phase shift over the entire step .[1] The process concludes with a second half-step linear evolution, mirroring the first: transform to frequency domain, multiply by , and inverse transform to obtain . These steps are iterated for subsequent propagation distances.[1] The following pseudocode illustrates the implementation for a single step on a discrete grid with time points and corresponding wavenumbers :import numpy as np # Assuming Python with [NumPy](/page/NumPy) for FFT
def basic_split_step_fourier(psi, delta_z, k):
# First half linear step (dispersion)
psi_hat = np.fft.fft(psi)
psi_hat *= np.exp(-1j * (k**2 * delta_z / 4))
psi = np.fft.ifft(psi_hat)
# Full nonlinear step
psi *= np.exp(1j * np.abs(psi)**2 * delta_z)
# Second half linear step (dispersion)
psi_hat = np.fft.fft(psi)
psi_hat *= np.exp(-1j * (k**2 * delta_z / 4))
psi = np.fft.ifft(psi_hat)
return psi
import numpy as np # Assuming Python with [NumPy](/page/NumPy) for FFT
def basic_split_step_fourier(psi, delta_z, k):
# First half linear step (dispersion)
psi_hat = np.fft.fft(psi)
psi_hat *= np.exp(-1j * (k**2 * delta_z / 4))
psi = np.fft.ifft(psi_hat)
# Full nonlinear step
psi *= np.exp(1j * np.abs(psi)**2 * delta_z)
# Second half linear step (dispersion)
psi_hat = np.fft.fft(psi)
psi_hat *= np.exp(-1j * (k**2 * delta_z / 4))
psi = np.fft.ifft(psi_hat)
return psi
