Symplectic integrator
In mathematics, a symplectic integrator (SI) is a numerical integration scheme for Hamiltonian systems. Symplectic integrators form the subclass of geometric integrators which, by definition, are canonical transformations. They are widely used in nonlinear dynamics, molecular dynamics, discrete element methods, accelerator physics, plasma physics, quantum physics, and celestial mechanics.
Introduction
Symplectic integrators are designed for the numerical solution of Hamilton's equations, which read
- [math]\displaystyle{ \dot p = -\frac{\partial H}{\partial q} \quad\mbox{and}\quad \dot q = \frac{\partial H}{\partial p}, }[/math]
where [math]\displaystyle{ q }[/math] denotes the position coordinates, [math]\displaystyle{ p }[/math] the momentum coordinates, and [math]\displaystyle{ H }[/math] is the Hamiltonian. The set of position and momentum coordinates [math]\displaystyle{ (q,p) }[/math] are called canonical coordinates. (See Hamiltonian mechanics for more background.)
The time evolution of Hamilton's equations is a symplectomorphism, meaning that it conserves the symplectic 2-form [math]\displaystyle{ dp \wedge dq }[/math]. A numerical scheme is a symplectic integrator if it also conserves this 2-form.
Symplectic integrators also might possess, as a conserved quantity, a Hamiltonian which is slightly perturbed from the original one (only true for a small class of simple cases). By virtue of these advantages, the SI scheme has been widely applied to the calculations of long-term evolution of chaotic Hamiltonian systems ranging from the Kepler problem to the classical and semi-classical simulations in molecular dynamics.
Most of the usual numerical methods, like the primitive Euler scheme and the classical Runge–Kutta scheme, are not symplectic integrators.
Methods for constructing symplectic algorithms
Splitting methods for separable Hamiltonians
A widely used class of symplectic integrators is formed by the splitting methods.
Assume that the Hamiltonian is separable, meaning that it can be written in the form
-
[math]\displaystyle{ H(p,q) = T(p) + V(q). }[/math]
(
)
This happens frequently in Hamiltonian mechanics, with T being the kinetic energy and V the potential energy.
For the notational simplicity, let us introduce the symbol [math]\displaystyle{ z=(q,p) }[/math] to denote the canonical coordinates including both the position and momentum coordinates. Then, the set of the Hamilton's equations given in the introduction can be expressed in a single expression as
-
[math]\displaystyle{ \dot{z}=\{z,H(z)\}, }[/math]
(
)
where [math]\displaystyle{ \{\cdot, \cdot\} }[/math] is a Poisson bracket. Furthermore, by introducing an operator [math]\displaystyle{ D_H \cdot = \{\cdot, H\} }[/math], which returns a Poisson bracket of the operand with the Hamiltonian, the expression of the Hamilton's equation can be further simplified to
- [math]\displaystyle{ \dot{z}=D_H z. }[/math]
The formal solution of this set of equations is given as a matrix exponential:
-
[math]\displaystyle{ z(\tau)=\exp(\tau D_H)z(0). }[/math]
(
)
Note the positivity of [math]\displaystyle{ \tau D_H }[/math] in the matrix exponential.
When the Hamiltonian has the form of equation (1), the solution (3) is equivalent to
-
[math]\displaystyle{ z(\tau) = \exp[\tau (D_T + D_V)]z(0). }[/math]
(
)
The SI scheme approximates the time-evolution operator [math]\displaystyle{ \exp[\tau (D_T + D_V)] }[/math] in the formal solution (4) by a product of operators as
-
[math]\displaystyle{ \begin{align} \exp[\tau (D_T + D_V)] & = \prod_{i=1}^k \exp(c_i \tau D_T)\exp(d_i \tau D_V) + O(\tau^{k+1}) \\ &= \exp(c_1 \tau D_T)\exp(d_1 \tau D_V)\dots\exp(c_k \tau D_T)\exp(d_k \tau D_V) + O(\tau^{k+1}), \end{align} }[/math]
(
)
where [math]\displaystyle{ c_i }[/math] and [math]\displaystyle{ d_i }[/math] are real numbers, [math]\displaystyle{ k }[/math] is an integer, which is called the order of the integrator, and where [math]\displaystyle{ \sum_{i=1}^k c_i = \sum_{i=1}^k d_i = 1 }[/math]. Note that each of the operators [math]\displaystyle{ \exp(c_i \tau D_T) }[/math] and [math]\displaystyle{ \exp(d_i \tau D_V) }[/math] provides a symplectic map, so their product appearing in the right-hand side of (5) also constitutes a symplectic map.
Since [math]\displaystyle{ D_T^2 z = \{\{z,T\},T\} = \{(\dot{q}, 0),T\} = (0,0) }[/math] for all [math]\displaystyle{ z }[/math], we can conclude that
-
[math]\displaystyle{ D_T^2 = 0. }[/math]
(
)
By using a Taylor series, [math]\displaystyle{ \exp(a D_T) }[/math] can be expressed as
-
[math]\displaystyle{ \exp(a D_T) = \sum_{n=0}^\infty \frac{(a D_T)^n}{n!}, }[/math]
(
)
where [math]\displaystyle{ a }[/math] is an arbitrary real number. Combining (6) and (7), and by using the same reasoning for [math]\displaystyle{ D_V }[/math] as we have used for [math]\displaystyle{ D_T }[/math], we get
-
[math]\displaystyle{ \begin{cases} \exp(a D_T) &= 1 + a D_T, \\ \exp(a D_V) &= 1 + a D_V. \end{cases} }[/math]
(
)
In concrete terms, [math]\displaystyle{ \exp(c_i \tau D_T) }[/math] gives the mapping
- [math]\displaystyle{ \begin{pmatrix} q \\ p \end{pmatrix} \mapsto \begin{pmatrix} q + \tau c_i \frac{\partial T}{\partial p}(p)\\ p \end{pmatrix}, }[/math]
and [math]\displaystyle{ \exp(d_i \tau D_V) }[/math] gives
- [math]\displaystyle{ \begin{pmatrix} q \\ p \end{pmatrix} \mapsto \begin{pmatrix} q \\ p - \tau d_i \frac{\partial V}{\partial q}(q)\\ \end{pmatrix}. }[/math]
Note that both of these maps are practically computable.
Examples
The simplified form of the equations (in executed order) are:
- [math]\displaystyle{ q_{i+1} = q_{i} + c_{i} \frac{p_{i+1}}{m}t }[/math]
- [math]\displaystyle{ p_{i+1} = p_{i} + d_{i} F(q_{i}) t }[/math]
Note that due to the definitions adopted above (in the operator version of the explanation), the index [math]\displaystyle{ i }[/math] is traversed in decreasing order when going through the steps ([math]\displaystyle{ i=4,3,2,1 }[/math] for a fourth-order scheme).
After converting into Lagrangian coordinates:
- [math]\displaystyle{ x_{i+1} = x_{i} + c_{i} v_{i+1} t }[/math]
- [math]\displaystyle{ v_{i+1} = v_{i} + d_{i} a(x_{i}) t }[/math]
Where [math]\displaystyle{ F(x) }[/math] is the force vector at [math]\displaystyle{ x }[/math], [math]\displaystyle{ a(x) }[/math] is the acceleration vector at [math]\displaystyle{ x }[/math], and [math]\displaystyle{ m }[/math] is the scalar quantity of mass.
Several symplectic integrators are given below. An illustrative way to use them is to consider a particle with position [math]\displaystyle{ q }[/math] and momentum [math]\displaystyle{ p }[/math].
To apply a timestep with values [math]\displaystyle{ c_{1,2,3}, d_{1,2,3} }[/math] to the particle, carry out the following steps (again, as noted above, with the index [math]\displaystyle{ i=3,2,1 }[/math] in decreasing order):
Iteratively:
- Update the position [math]\displaystyle{ i }[/math] of the particle by adding to it its (previously updated) velocity [math]\displaystyle{ i }[/math] multiplied by [math]\displaystyle{ c_i }[/math]
- Update the velocity [math]\displaystyle{ i }[/math] of the particle by adding to it its acceleration (at updated position) multiplied by [math]\displaystyle{ d_i }[/math]
A first-order example
The symplectic Euler method is the first-order integrator with [math]\displaystyle{ k=1 }[/math] and coefficients
- [math]\displaystyle{ c_1 = d_1 = 1. }[/math]
Note that the algorithm above does not work if time-reversibility is needed. The algorithm has to be implemented in two parts, one for positive time steps, one for negative time steps.
A second-order example
The Verlet method is the second-order integrator with [math]\displaystyle{ k=2 }[/math] and coefficients
- [math]\displaystyle{ c_1 = 0, \qquad c_2 = 1, \qquad d_1 = d_2 = \tfrac 1 2. }[/math]
Since [math]\displaystyle{ c_1 = 0 }[/math], the algorithm above is symmetric in time. There are 3 steps to the algorithm, and step 1 and 3 are exactly the same, so the positive time version can be used for negative time.
A third-order example
A third-order symplectic integrator (with [math]\displaystyle{ k=3 }[/math]) was discovered by Ronald Ruth in 1983.[1] One of the many solutions is given by
- [math]\displaystyle{ \begin{align} c_1 &= 1, & c_2 &= -\tfrac{2}{3}, & c_3 &= \tfrac{2}{3}, \\ d_1 &=-\tfrac{1}{24}, & d_2 &= \tfrac{3}{4}, & d_3 &= \tfrac{7}{24}. \end{align} }[/math]
A fourth-order example
A fourth-order integrator (with [math]\displaystyle{ k=4 }[/math]) was also discovered by Ruth in 1983 and distributed privately to the particle-accelerator community at that time. This was described in a lively review article by Forest.[2] This fourth-order integrator was published in 1990 by Forest and Ruth and also independently discovered by two other groups around that same time.[3][4][5]
- [math]\displaystyle{ \begin{align} c_1 &= c_4 = \frac{1}{2(2-2^{1/3})}, & c_2 &= c_3 = \frac{1-2^{1/3}}{2(2-2^{1/3})}, \\ d_1 &= d_3 = \frac{1}{2-2^{1/3}}, & d_2 &= -\frac{2^{1/3}}{2-2^{1/3}}, \quad d_4 = 0. \end{align} }[/math]
To determine these coefficients, the Baker–Campbell–Hausdorff formula can be used. Yoshida, in particular, gives an elegant derivation of coefficients for higher-order integrators. Later on, Blanes and Moan[6] further developed partitioned Runge–Kutta methods for the integration of systems with separable Hamiltonians with very small error constants.
Splitting methods for general nonseparable Hamiltonians
General nonseparable Hamiltonians can also be explicitly and symplectically integrated.
To do so, Tao introduced a restraint that binds two copies of phase space together to enable an explicit splitting of such systems.[7] The idea is, instead of [math]\displaystyle{ H(Q,P) }[/math], one simulates [math]\displaystyle{ \bar{H}(q,p,x,y) = H(q,y) + H(x,p) + \omega \left(\left\|q-x\right\|_2^2/2 + \left\|p-y\right\|_2^2/2\right) }[/math], whose solution agrees with that of [math]\displaystyle{ H(Q,P) }[/math] in the sense that [math]\displaystyle{ q(t)=x(t)=Q(t),p(t)=y(t)=P(t) }[/math].
The new Hamiltonian is advantageous for explicit symplectic integration, because it can be split into the sum of three sub-Hamiltonians, [math]\displaystyle{ H_A=H(q,y) }[/math], [math]\displaystyle{ H_B=H(x,p) }[/math], and [math]\displaystyle{ H_C = \omega \left(\left\|q-x\right\|_2^2/2 + \left\|p-y\right\|_2^2/2\right) }[/math]. Exact solutions of all three sub-Hamiltonians can be explicitly obtained: both [math]\displaystyle{ H_A, H_B }[/math] solutions correspond to shifts of mismatched position and momentum, and [math]\displaystyle{ H_C }[/math] corresponds to a linear transformation. To symplectically simulate the system, one simply composes these solution maps.
Applications
In plasma physics
In recent decades symplectic integrator in plasma physics has become an active research topic,[8] because straightforward applications of the standard symplectic methods do not suit the need of large-scale plasma simulations enabled by the peta- to exa-scale computing hardware. Special symplectic algorithms need to be customarily designed, tapping into the special structures of physics problem under investigation. One such example is the charged particle dynamics in an electromagnetic field. With the canonical symplectic structure, the Hamiltonian of the dynamics is [math]\displaystyle{ H(\boldsymbol{p},\boldsymbol{x})=\frac{1}{2}\left(\boldsymbol{p}-\boldsymbol{A}\right)^{2}+\phi, }[/math] whose [math]\displaystyle{ \boldsymbol{p} }[/math]-dependence and [math]\displaystyle{ \boldsymbol{x} }[/math]-dependence are not separable, and standard explicit symplectic methods do not apply. For large-scale simulations on massively parallel clusters, however, explicit methods are preferred. To overcome this difficulty, we can explore the specific way that the [math]\displaystyle{ \boldsymbol{p} }[/math]-dependence and [math]\displaystyle{ \boldsymbol{x} }[/math]-dependence are entangled in this Hamiltonian, and try to design a symplectic algorithm just for this or this type of problem. First, we note that the [math]\displaystyle{ \boldsymbol{p} }[/math]-dependence is quadratic, therefore the first order symplectic Euler method implicit in [math]\displaystyle{ \boldsymbol{p} }[/math] is actually explicit. This is what is used in the canonical symplectic particle-in-cell (PIC) algorithm.[9] To build high order explicit methods, we further note that the [math]\displaystyle{ \boldsymbol{p} }[/math]-dependence and [math]\displaystyle{ \boldsymbol{x} }[/math]-dependence in this [math]\displaystyle{ H(\boldsymbol{p},\boldsymbol{x}) }[/math] are product-separable, 2nd and 3rd order explicit symplectic algorithms can be constructed using generating functions,[10] and arbitrarily high-order explicit symplectic integrators for time-dependent electromagnetic fields can also be constructed using Runge-Kutta techniques.[11]
A more elegant and versatile alternative is to look at the following non-canonical symplectic structure of the problem, [math]\displaystyle{ i_{(\dot{\boldsymbol{x}},\dot{\boldsymbol{v}})}\Omega=-dH,\ \ \ \Omega=d(\boldsymbol{v}+\boldsymbol{A})\wedge d\boldsymbol{x},\ \ \ H=\frac{1}{2}\boldsymbol{v}^{2}+\phi. }[/math] Here [math]\displaystyle{ \Omega }[/math] is a non-constant non-canonical symplectic form. General symplectic integrator for non-constant non-canonical symplectic structure, explicit or implicit, is not known to exist. However, for this specific problem, a family of high-order explicit non-canonical symplectic integrators can be constructed using the He splitting method.[12] Splitting [math]\displaystyle{ H }[/math] into 4 parts, [math]\displaystyle{ \begin{aligned} H & = H_{x} + H_{y} + H_{z} + H_{\phi},\\ H_{x} &= \frac{1}{2}v_{x}^{2},\ \ H_{y} = \frac{1}{2}v_{y}^{2},\ \ H_{z} = \frac{1}{2}v_{z}^{2},\ \ H_{\phi} = \phi, \end{aligned} }[/math] we find serendipitously that for each subsystem, e.g., [math]\displaystyle{ i_{(\dot{\boldsymbol{x}},\dot{\boldsymbol{v}})}\Omega=-dH_{x} }[/math] and [math]\displaystyle{ i_{(\dot{\boldsymbol{x}},\dot{\boldsymbol{v}})}\Omega=-dH_{\phi}, }[/math] the solution map can be written down explicitly and calculated exactly. Then explicit high-order non-canonical symplectic algorithms can be constructed using different compositions. Let [math]\displaystyle{ \Theta_{x},\Theta_{y},\Theta_{z} }[/math] and [math]\displaystyle{ \Theta_{\phi} }[/math] denote the exact solution maps for the 4 subsystems. A 1st-order symplectic scheme is [math]\displaystyle{ \begin{aligned} \Theta_{1}\left(\Delta\tau\right)=\Theta_{x}\left(\Delta\tau\right)\Theta_{y}\left(\Delta\tau\right)\Theta_{z}\left(\Delta\tau\right)\Theta_{\phi}\left(\Delta\tau\right)~.\end{aligned} }[/math] A symmetric 2nd-order symplectic scheme is, [math]\displaystyle{ \begin{aligned} \Theta_{2}\left(\Delta\tau\right) & =\Theta_{x}\left(\Delta\tau/2\right)\Theta_{y}\left(\Delta\tau/2\right)\Theta_{z}\left(\Delta\tau/2\right)\Theta_{\phi}\left(\Delta\tau\right)\\ & \Theta_{z}\left(\Delta t/2\right)\Theta_{y}\left(\Delta t/2\right)\Theta_{x}\left(\Delta t/2\right)\!, \end{aligned} }[/math] which is a customarily modified Strang splitting. A [math]\displaystyle{ 2(l+1) }[/math]-th order scheme can be constructed from a [math]\displaystyle{ 2l }[/math]-th order scheme using the method of triple jump, [math]\displaystyle{ \begin{aligned} \Theta_{2(l+1)}(\Delta\tau) & =\Theta_{2l}(\alpha_{l}\Delta\tau)\Theta_{2l}(\beta_{l}\Delta\tau)\Theta_{2l}(\alpha_{l}\Delta\tau)~,\\ \alpha_{l} & =1/(2-2^{1/(2l+1)})~,\\ \beta_{l} & =1-2\alpha_{l}~. \end{aligned} }[/math] The He splitting method is one of key techniques used in the structure-preserving geometric particle-in-cell (PIC) algorithms.[13][14][15][16]
See also
References
- ↑ Ruth, Ronald D. (August 1983). "A Canonical Integration Technique". IEEE Transactions on Nuclear Science NS-30 (4): 2669–2671. doi:10.1109/TNS.1983.4332919. Bibcode: 1983ITNS...30.2669R. https://cds.cern.ch/record/143981.
- ↑ Forest, Etienne (2006). "Geometric Integration for Particle Accelerators". J. Phys. A: Math. Gen. 39 (19): 5321–5377. doi:10.1088/0305-4470/39/19/S03. Bibcode: 2006JPhA...39.5321F.
- ↑ Forest, E.; Ruth, Ronald D. (1990). "Fourth-order symplectic integration". Physica D 43: 105–117. doi:10.1016/0167-2789(90)90019-L. Bibcode: 1990PhyD...43..105F. https://cloudfront.escholarship.org/dist/prd/content/qt35h9v2k9/qt35h9v2k9.pdf.
- ↑ Yoshida, H. (1990). "Construction of higher order symplectic integrators". Phys. Lett. A 150 (5–7): 262–268. doi:10.1016/0375-9601(90)90092-3. Bibcode: 1990PhLA..150..262Y.
- ↑ Candy, J.; Rozmus, W (1991). "A Symplectic Integration Algorithm for Separable Hamiltonian Functions". J. Comput. Phys. 92 (1): 230–256. doi:10.1016/0021-9991(91)90299-Z. Bibcode: 1991JCoPh..92..230C.
- ↑ Blanes, S.; Moan, P. C. (May 2002). "Practical symplectic partitioned Runge–Kutta and Runge–Kutta–Nyström methods". Journal of Computational and Applied Mathematics 142 (2): 313–330. doi:10.1016/S0377-0427(01)00492-7. Bibcode: 2002JCoAM.142..313B.
- ↑ Tao, Molei (2016). "Explicit symplectic approximation of nonseparable Hamiltonians: Algorithm and long time performance". Phys. Rev. E 94 (4): 043303. doi:10.1103/PhysRevE.94.043303. PMID 27841574. Bibcode: 2016PhRvE..94d3303T.
- ↑ Qin, H.; Guan, X. (2008). "A Variational Symplectic Integrator for the Guiding Center Motion of Charged Particles for Long Time Simulations in General Magnetic Fields". Physical Review Letters 100 (3): 035006. doi:10.1103/PhysRevLett.100.035006. PMID 18232993. https://digital.library.unt.edu/ark:/67531/metadc932923/m2/1/high_res_d/960290.pdf.
- ↑ Qin, H.; Liu, J.; Xiao, J. (2016). "Canonical symplectic particle-in-cell method for long-term large-scale simulations of the Vlasov–Maxwell equations". Nuclear Fusion 56 (1): 014001. doi:10.1088/0029-5515/56/1/014001. Bibcode: 2016NucFu..56a4001Q.
- ↑ Zhang, R.; Qin, H.; Tang, Y. (2016). "Explicit symplectic algorithms based on generating functions for charged particle dynamics". Physical Review E 94 (1): 013205. doi:10.1103/PhysRevE.94.013205. PMID 27575228. Bibcode: 2016PhRvE..94a3205Z.
- ↑ Tao, M. (2016). "Explicit high-order symplectic integrators for charged particles in general electromagnetic fields". Journal of Computational Physics 327: 245. doi:10.1016/j.jcp.2016.09.047. Bibcode: 2016JCoPh.327..245T.
- ↑ He, Y.; Qin, H.; Sun, Y. (2015). "Hamiltonian integration methods for Vlasov-Maxwell equations". Physics of Plasmas 22: 124503. doi:10.1063/1.4938034.
- ↑ Xiao, J.; Qin, H.; Liu, J. (2015). "Explicit high-order non-canonical symplectic particle-in-cell algorithms for Vlasov-Maxwell systems". Physics of Plasmas 22 (11): 112504. doi:10.1063/1.4935904. Bibcode: 2015PhPl...22k2504X.
- ↑ Kraus, M; Kormann, K; Morrison, P.; Sonnendrucker, E (2017). "GEMPIC: geometric electromagnetic particle-in-cell methods". Journal of Plasma Physics 83 (4): 905830401. doi:10.1017/S002237781700040X. Bibcode: 2017JPlPh..83d9001K.
- ↑ Xiao, J.; Qin, H.; Liu, J. (2018). "Structure-preserving geometric particle-in-cell methods for Vlasov-Maxwell systems". Plasma Science and Technology 20 (11): 110501. doi:10.1088/2058-6272/aac3d1. Bibcode: 2018PlST...20k0501X.
- ↑ Glasser, A.; Qin, H. (2022). "A gauge-compatible Hamiltonian splitting algorithm for particle-in-cell simulations using finite element exterior calculus". Journal of Plasma Physics 88 (2): 835880202. doi:10.1017/S0022377822000290. Bibcode: 2022JPlPh..88b8302G.
- Leimkuhler, Ben; Reich, Sebastian (2005). Simulating Hamiltonian Dynamics. Cambridge University Press. ISBN 0-521-77290-7.
- Hairer, Ernst; Lubich, Christian; Wanner, Gerhard (2006). Geometric Numerical Integration: Structure-Preserving Algorithms for Ordinary Differential Equations (2 ed.). Springer. ISBN 978-3-540-30663-4.
- Kang, Feng; Qin, Mengzhao (2010). Symplectic geometric algorithms for Hamiltonian systems. Springer.
Original source: https://en.wikipedia.org/wiki/Symplectic integrator.
Read more |