Split-step method: Difference between revisions
imported>NBrush linkage |
over-write |
||
| Line 1: | Line 1: | ||
In [[Numerical analysis|numerical analysis]], the '''split-step''' | {{Short description|Method in numerical analysis}} | ||
In [[Numerical analysis|numerical analysis]], the '''split-step''' '''Fourier''' '''method''' is a [[Pseudo-spectral method|pseudo-spectral]] numerical method used to solve nonlinear [[Partial differential equation|partial differential equation]]s like the [[Nonlinear Schrödinger equation|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|frequency domain]] while the nonlinear step is made in the [[Time domain|time domain]]. | |||
==Description of the method== | 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 [[Physics:Kerr frequency comb|Kerr frequency comb]] dynamics in optical microresonators.<ref>{{Cite journal|last1=Erkintalo|first1=Miro|last2=Sylvestre|first2=Thibaut|last3=Randle|first3=Hamish G.|last4=Coen|first4=Stéphane|date=2013-01-01|title=Modeling of octave-spanning Kerr frequency combs using a generalized mean-field Lugiato–Lefever model|journal=Optics Letters|language=EN|volume=38|issue=1|pages=37–39|doi=10.1364/OL.38.000037|pmid=23282830|issn=1539-4794|arxiv=1211.1697|bibcode=2013OptL...38...37C|s2cid=7248349 }}</ref><ref>{{Cite journal|last1=Maleki|first1=L.|last2=Seidel|first2=D.|last3=Ilchenko|first3=V. S.|last4=Liang|first4=W.|last5=Savchenkov|first5=A. A.|last6=Matsko|first6=A. B.|date=2011-08-01|title=Mode-locked Kerr frequency combs|journal=Optics Letters|language=EN|volume=36|issue=15|pages=2845–2847|doi=10.1364/OL.36.002845|pmid=21808332|issn=1539-4794|bibcode=2011OptL...36.2845M}}</ref><ref>{{Cite journal|last1=Hansson|first1=Tobias|last2=Wabnitz|first2=Stefan|date=2016|title=Dynamics of microresonator frequency comb generation: models and stability|journal=Nanophotonics|volume=5|issue=2|pages=231–243|doi=10.1515/nanoph-2016-0012|issn=2192-8606|bibcode=2016Nanop...5...12H|url=https://iris.unibs.it/bitstream/11379/477683/1/nanoph-2016-0012.pdf|doi-access=free}}</ref> 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|soliton]] behavior in these microresonators has made the method very popular. | ||
== Description of the method == | |||
Consider, for example, the [[Nonlinear Schrödinger equation|nonlinear Schrödinger equation]]<ref name="NonlinearAgrawal">{{cite book |last=Agrawal |first=Govind P. |title=Nonlinear Fiber Optics |edition=3rd|year=2001 |publisher=Academic Press |location=San Diego, CA, USA|isbn=0-12-045143-3}}</ref> | Consider, for example, the [[Nonlinear Schrödinger equation|nonlinear Schrödinger equation]]<ref name="NonlinearAgrawal">{{cite book |last=Agrawal |first=Govind P. |title=Nonlinear Fiber Optics |edition=3rd|year=2001 |publisher=Academic Press |location=San Diego, CA, USA|isbn=0-12-045143-3}}</ref> | ||
:<math>{\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, </math> | : <math>{\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, </math> | ||
where <math>A(t,z)</math> describes the pulse envelope in time <math>t</math> at the spatial position <math>z</math>. The equation can be split into a linear part, | where <math>A(t,z)</math> describes the pulse envelope in time <math>t</math> at the spatial position <math>z</math>. The equation can be split into a linear part, | ||
:<math>{\partial A_D \over \partial z} = - {i\beta_2 \over 2} {\partial^2 A \over \partial t^2} = \hat D A, </math> | : <math>{\partial A_D \over \partial z} = - {i\beta_2 \over 2} {\partial^2 A \over \partial t^2} = \hat D A, </math> | ||
and a nonlinear part, | and a nonlinear part, | ||
:<math>{\partial A_N \over \partial z} = i \gamma | A |^2 A = \hat N A. </math> | : <math>{\partial A_N \over \partial z} = i \gamma | A |^2 A = \hat N A. </math> | ||
Both the linear and the nonlinear parts have analytical solutions, but the [[Nonlinear Schrödinger equation|nonlinear Schrödinger equation]] containing both parts does not have a general analytical solution. | Both the linear and the nonlinear parts have analytical solutions, but the [[Nonlinear Schrödinger equation|nonlinear Schrödinger equation]] containing both parts does not have a general analytical solution. | ||
However, if only a 'small' step <math>h</math> is taken along <math>z</math>, then the two parts can be treated separately with only a 'small' numerical error. One can therefore first take a small nonlinear step, | However, if only a 'small' step <math>h</math> is taken along <math>z</math>, then the two parts can be treated separately with only a 'small' numerical error. One can therefore first take a small nonlinear step, | ||
: <math>A_N(t, z+h) = \exp\left[i \gamma |A(t, z)|^2 h \right] A(t, z), </math> | |||
:<math>A_N(t, z+h) = \exp\left[i \gamma |A(t, z)|^2 h \right] A(t, z), </math> | using the analytical solution. Note that this ansatz imposes <math>|A(z)|^2=\text{const}.</math> and consequently <math>\gamma \in \mathbb{R}</math>. | ||
using the analytical solution. Note that this ansatz imposes <math>|A(z)|^2=const.</math> and consequently <math>\gamma \in \mathbb{R}</math>. | |||
The dispersion step has an analytical solution in the [[Frequency domain|frequency domain]], so it is first necessary to Fourier transform <math>A_N</math> using | The dispersion step has an analytical solution in the [[Frequency domain|frequency domain]], so it is first necessary to Fourier transform <math>A_N</math> using | ||
:<math>\tilde A_N(\omega, z) = \int_{-\infty}^\infty A_N(t,z) \exp[i(\omega-\omega_0)t] dt </math>, | : <math>\tilde A_N(\omega, z) = \int_{-\infty}^\infty A_N(t,z) \exp[i(\omega-\omega_0)t] dt </math>, | ||
where <math>\omega_0</math> is the center frequency of the pulse. | where <math>\omega_0</math> 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 | 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 | ||
: <math>\tilde{A}(\omega, z+h) = \exp\left[{i \beta_2 \over 2} (\omega-\omega_0)^2 h \right] \tilde{A}_N(\omega, z).</math> | |||
:<math>\tilde{A}(\omega, z+h) = \exp\left[{i \beta_2 \over 2} (\omega-\omega_0)^2 h \right] \tilde{A}_N(\omega, z).</math> | |||
By taking the inverse Fourier transform of <math>\tilde{A}(\omega, z+h)</math> one obtains <math>A\left(t, z+h\right)</math>; the pulse has thus been propagated a small step <math>h</math>. By repeating the above <math>N</math> times, the pulse can be propagated over a length of <math>N h</math>. | By taking the inverse Fourier transform of <math>\tilde{A}(\omega, z+h)</math> one obtains <math>A\left(t, z+h\right)</math>; the pulse has thus been propagated a small step <math>h</math>. By repeating the above <math>N</math> times, the pulse can be propagated over a length of <math>N h</math>. | ||
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 | 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 | ||
: <math>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, </math> | |||
:<math>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, </math> | |||
where <math>\psi(x, t)</math> describes the wave function at position <math>x</math> and time <math>t</math>. Note that | where <math>\psi(x, t)</math> describes the wave function at position <math>x</math> and time <math>t</math>. Note that | ||
:<math>\hat D=- {{\hbar}^2 \over {2m}} {\partial^2 \over \partial x^2}</math> and <math> \hat N =\gamma | \psi|^2 </math>, and that <math> m </math> is the mass of the particle and <math> \hbar </math> is Planck | : <math>\hat D=- {{\hbar}^2 \over {2m}} {\partial^2 \over \partial x^2}</math> and <math> \hat N =\gamma | \psi|^2 </math>, and that <math> m </math> is the mass of the particle and <math> \hbar </math> is the [[Physics:Reduced Planck constant|reduced Planck constant]]. | ||
The formal solution to this equation is a complex exponential, so we have that | The formal solution to this equation is a complex exponential, so we have that | ||
:<math> \psi(x, t)=e^{-it(\hat D+\hat N)/\hbar}\psi(x, 0)</math>. | : <math> \psi(x, t)=e^{-it(\hat D+\hat N)/\hbar}\psi(x, 0)</math>. | ||
Since <math>\hat{D}</math> and <math>\hat{N}</math> are operators, they do not in general commute. However, the Baker-Hausdorff formula can be applied to show that the error from treating them as if they do will be of order <math>dt^2</math> if we are taking a small but finite time step <math>dt</math>. We therefore can write | Since <math>\hat{D}</math> and <math>\hat{N}</math> are operators, they do not in general commute. However, the [[Baker–Campbell–Hausdorff formula|Baker-Campbell-Hausdorff formula]] can be applied to show that the error from treating them as if they do will be of order <math>dt^2</math> if we are taking a small but finite time step <math>dt</math>. We therefore can write | ||
:<math> \psi(x, t+dt) \approx e^{-idt\hat D/\hbar}e^{-idt\hat N/\hbar}\psi(x, t)</math>. | : <math> \psi(x, t+dt) \approx e^{-idt\hat D/\hbar}e^{-idt\hat N/\hbar}\psi(x, t)</math>. | ||
The part of this equation involving <math> \hat N </math> can be computed directly using the wave function at time <math> t </math>, but to compute the exponential involving <math> \hat D </math> we use the fact that in frequency space, the partial derivative operator can be converted into a number by substituting <math> ik </math> for <math> \partial \over \partial x </math>, where <math> k</math> 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 | The part of this equation involving <math> \hat N </math> can be computed directly using the wave function at time <math> t </math>, but to compute the exponential involving <math> \hat D </math> we use the fact that in frequency space, the partial derivative operator can be converted into a number by substituting <math> ik </math> for <math> \partial \over \partial x </math>, where <math> k</math> 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 | ||
:<math>e^{-idt\hat N/\hbar}\psi(x, t)</math>, | : <math>e^{-idt\hat N/\hbar}\psi(x, t)</math>, | ||
recover the associated wave number, compute the quantity | recover the associated wave number, compute the quantity | ||
:<math> e^{idtk^2}</math>, | : <math> e^{idtk^2}</math>, | ||
and use it to find the product of the complex exponentials involving <math> \hat N</math> and <math> \hat D </math> in frequency space as below: | and use it to find the product of the complex exponentials involving <math> \hat N</math> and <math> \hat D </math> in frequency space as below: | ||
:<math> e^{idtk^2}F[e^{-idt\hat N}\psi(x, t)]</math>, | : <math> e^{idtk^2}F[e^{-idt\hat N}\psi(x, t)]</math>, | ||
where <math> F</math> denotes a Fourier transform. We then inverse Fourier transform this expression to find the final result in physical space, yielding the final expression | where <math> F</math> denotes a Fourier transform. We then inverse Fourier transform this expression to find the final result in physical space, yielding the final expression | ||
:<math>\psi(x, t+dt)=F^{-1}[e^{idtk^2}F[e^{-idt\hat N}\psi(x, t)]]</math>. | : <math>\psi(x, t+dt)=F^{-1}[e^{idtk^2}F[e^{-idt\hat N}\psi(x, t)]]</math>. | ||
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 <math>dt^3</math> for a time step <math>dt</math>. | 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 <math>dt^3</math> for a time step <math>dt</math>. | ||
The [[Fourier transform]]s of this [[Algorithm|algorithm]] can be computed relatively fast using the ''[[Fast Fourier transform|fast Fourier transform (FFT)]]''. The split-step Fourier method can therefore be much faster than typical [[Finite difference method|finite difference method]]s.<ref name="Taha1984">{{cite journal | The [[Fourier transform]]s of this [[Algorithm|algorithm]] can be computed relatively fast using the ''[[Fast Fourier transform|fast Fourier transform (FFT)]]''. The split-step Fourier method can therefore be much faster than typical [[Finite difference method|finite difference method]]s.<ref name="Taha1984"> | ||
{{cite journal | |||
| author = T. R. Taha and M. J. Ablowitz | | author = T. R. Taha and M. J. Ablowitz | ||
| year = 1984 | | year = 1984 | ||
| Line 53: | Line 52: | ||
| pages = 203–230 | | pages = 203–230 | ||
| doi =10.1016/0021-9991(84)90003-2 | | doi =10.1016/0021-9991(84)90003-2 | ||
|bibcode = 1984JCoPh..55..203T }}</ref> | |bibcode = 1984JCoPh..55..203T | ||
}}</ref> | |||
==References== | == References == | ||
{{reflist}} | {{reflist}} | ||
==External references== | == External references == | ||
* Thomas E. Murphy, Software, http://www.photonics.umd.edu/software/ssprop/ | * Thomas E. Murphy, Software, http://www.photonics.umd.edu/software/ssprop/ | ||
* Andrés A. Rieznik, Software, | * 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 | * Prof. G. Agrawal, Software, http://www.optics.rochester.edu/workgroups/agrawal/grouphomepage.php?pageid=software | ||
* Thomas Schreiber, Software, http://www.fiberdesk.com | * Thomas Schreiber, Software, http://www.fiberdesk.com | ||
* Edward J. Grace, Software, http://www.mathworks.com/matlabcentral/fileexchange/24016 | * Edward J. Grace, Software, http://www.mathworks.com/matlabcentral/fileexchange/24016 | ||
{{Numerical PDE}} | {{Numerical PDE}} | ||
[[Category:Fiber optics]] | [[Category:Fiber optics]] | ||
{{Sourceattribution|Split-step method}} | {{Sourceattribution|Split-step method}} | ||
Latest revision as of 21:06, 14 May 2026
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.[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
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
- ↑ 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" (in EN). Optics Letters 38 (1): 37–39. doi:10.1364/OL.38.000037. ISSN 1539-4794. PMID 23282830. Bibcode: 2013OptL...38...37C.
- ↑ Maleki, L.; Seidel, D.; Ilchenko, V. S.; Liang, W.; Savchenkov, A. A.; Matsko, A. B. (2011-08-01). "Mode-locked Kerr frequency combs" (in EN). Optics Letters 36 (15): 2845–2847. doi:10.1364/OL.36.002845. ISSN 1539-4794. PMID 21808332. Bibcode: 2011OptL...36.2845M.
- ↑ Hansson, Tobias; Wabnitz, Stefan (2016). "Dynamics of microresonator frequency comb generation: models and stability". Nanophotonics 5 (2): 231–243. doi:10.1515/nanoph-2016-0012. ISSN 2192-8606. Bibcode: 2016Nanop...5...12H. https://iris.unibs.it/bitstream/11379/477683/1/nanoph-2016-0012.pdf.
- ↑ 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. doi:10.1016/0021-9991(84)90003-2. Bibcode: 1984JCoPh..55..203T.
External references
- 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
