Multiple Boris integrators for particle-in-cell simulation
Seiji Zenitani, Tsunehiko N Kato

TL;DR
This paper introduces multiple Boris integrators for particle-in-cell simulations, significantly reducing errors and enabling larger timesteps through a novel combination of Boris procedures and Chebyshev polynomial techniques.
Contribution
The paper develops multiple Boris integrators that enhance accuracy and stability in PIC simulations by combining Boris steps and employing Chebyshev polynomials for one-step formulation.
Findings
Errors reduced by a factor of n^2
Allow larger timesteps without loss of stability
Demonstrated improved performance in numerical tests
Abstract
We construct Boris-type schemes for integrating the motion of charged particles in particle-in-cell (PIC) simulation. The new solvers virtually combine the 2-step Boris procedure arbitrary n times in the Lorentz-force part, and therefore we call them the multiple Boris solvers. Using Chebyshev polynomials, a one-step form of the new solvers is provided. The new solvers give n^2 times smaller errors, allow larger timesteps, and have a long-term stability. We present numerical tests of the new solvers, in comparison with other particle integrators.
| # | |||
|---|---|---|---|
| 1 | (0,0,0) | (1,0,0) | direct acceleration by E |
| 2 | (0,0,0.1) | (1,0,0) | E-dominated |
| 3 | (0,0,1) | (1,0,0) | |
| 4 | (0,0,1) | (0.1,0,0) | EB drift |
| 5 | (0,0,1) | (0,0,0) | gyration about B |
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsNumerical methods for differential equations · Electromagnetic Simulation and Numerical Methods · Particle accelerators and beam dynamics
Multiple Boris integrators for particle-in-cell simulation
Seiji Zenitani
Tsunehiko N. Kato
Research Center for Urban Safety and Security, Kobe University, 1-1 Rokkodai-cho, Nada-ku, Kobe 657-8501, Japan
Research Institute for Sustainable Humanosphere, Kyoto University, Gokasho, Uji, Kyoto 611-0011, Japan
Center for Computational Astrophysics, National Astronomical Observatory of Japan, 2-21-1 Osawa, Mitaka, Tokyo 181-8588, Japan
Abstract
We construct Boris-type schemes for integrating the motion of charged particles in particle-in-cell (PIC) simulation. The new solvers virtually combine the 2-step Boris procedure arbitrary times in the Lorentz-force part, and therefore we call them the multiple Boris solvers. Using Chebyshev polynomials, a one-step form of the new solvers is provided. The new solvers give times smaller errors, allow larger timesteps, and have a long-term stability. We present numerical tests of the new solvers, in comparison with other particle integrators.
keywords:
Boris integrator; Particle-in-cell simulation; Lorentz force equation
††journal: Computer Physics Communications
1 Introduction
Particle-in-cell (PIC) simulation [1, 2] has been extensively used to study complex kinetic phenomena in plasma systems. The Boris solver [3] (or the Boris pusher) is a de fact standard method to advance charged particles in PIC simulation. Although its algorithm is simple, it is robust and provides moderately good accuracy. For these reasons, it has been used about a half century.
Since mid 2010s, there is a renewed interest to develop new particle integrators. In recent PIC simulations, one often solves the system evolution much longer than before. In such a case, we want to solve the particle motion as accurately as possible, because small errors could be accumulated over many timesteps. The Boris solver is proven to be stable [4, 5], however, it does produce a second-order error. For this reason, there is a growing demand for higher-accuracy extensions to the Boris solver.
Umeda [6, 7] has proposed multistep Boris solvers. Repeating a Boris-type procedure multiple steps in the Lorentz-force part, the author managed to set an effective timestep times smaller. Since the Boris solver is a second-order scheme, -step Boris solvers provide times higher accuracy for gyration. Zenitani & Umeda [8] have proposed to use a rotation formula in the Lorentz-force part. The solver virtually provides no error in the phase angle in gyration. Because of operator-splitting, their scheme offers second-order accuracy.
In addition to higher numerical accuracy, it is also important to improve computation cost. A fast solver helps us to reduce the total computation time of PIC simulation. The cost depends on many other factors, but the timestep is certainly one of them. If the solver allows us to use a larger , we can further reduce the computation time. Thus it is important to evaluate the constraint on for particle solvers.
In this article, we propose new Boris-type integrators to solve the charged-particle motion. The new solvers use a Boris-type procedure multiple times in the Lorentz-force part. We call them “multiple Boris solvers.” They provide higher accuracy and allow larger timesteps than the original Boris solver. In Section 2, we briefly review the classical 2-step Boris solver and discuss its graphical meanings. In Section 3, we introduce our multiple Boris solvers. Using Chebyshev polynomials, we derive coefficients for -tuple Boris solvers, where is an arbitrary integer. Then we discuss errors, limitations to the timesteps, and the stability of the phase-space volume. In Section 4, we present benchmark results. The new solvers and other particle integrators are briefly compared. Section 5 contains discussion and summary.
2 Boris solver
We describe a popular form of the Boris algorithm [1, 2]. We refer to it as the classical Boris solver. The algorithm solves the particle motion in a time-staggered manner,
[TABLE]
The superscripts (, …) indicate time, is the spatial part of a 4-vector, and is the Lorentz factor. Other symbols have their standard meanings. Hereafter we denote as for brevity.
The acceleration part (Eq. (2)) is split into the Coulomb-force part for the first half:
[TABLE]
the middle Lorentz-force part:
[TABLE]
and the Coulomb-force part for the second half:
[TABLE]
In these equations, , is the gyro frequency, is the gyration angle during , is a unit vector in the direction, and are two intermediate states.
We focus on the Lorentz-force part in the middle (Eqs. (4a)–(4c)). This 2-step procedure is illustrated in Figure 1(a). The coefficient is provided such that the particle energy remains constant in the Lorentz-force part, . A base angle is given by,
[TABLE]
We will use the following relations for in subsequent discussions.
[TABLE]
From Eqs. (4b), (4c), and (8), we obtain
[TABLE]
where the subscript indicates the component along . These forms are known as Euler–Rodrigues rotation formula. The equations correspond to a rotation about the magnetic field by an approximate angle of , instead of the true angle . As indicated in Figure 1(a), the half acceleration in the tangent direction (; Eq. (4b)) corresponds to the half approximate angle by the Boris solver. The true rotation angle contains a second-order error of .
[TABLE]
3 Multiple Boris solver
Umeda [6] has proposed a novel way to reduce the error (). He employed a half timestep in the Lorentz-force part (Eqs. (4a)–(4c)) and then repeated the Boris procedure twice. Importantly, the timestep for the position (Eq. (1)) and the Coulomb-force parts (Eqs. (3) and (5)) are unchanged. We call this method the double Boris solver, and it is illustrated in Figure 1(b). Instead of Eq. (4a), we use
[TABLE]
The base angle is redefined, as indicated in Figure 1(b). Then, we repeat the 2-step Boris procedure (Eqs. (4b) and (4c)) twice. We obtain a half state by the first Boris procedure, which is given by Eq. (11) with Eq. (13). Applying to Eq. (11), one can confirm that the parallel component is preserved, . Substituting to Eq. (11) again, we obtain the next state ,
[TABLE]
The second Boris operation advances the phase angle by another , and the entire procedure gives gyration by . In Ref. [6], the author proposed a 3-step procedure to repeat the Boris operation twice. Now we obtain a smaller second-order error in gyration, .
[TABLE]
Let us extend this idea. In order to better approximate the gyro motion, we propose to repeat the Boris procedure times, where is an arbitrary positive integer. We call the resulting schemes “multiple Boris solvers.” Here below, we describe its procedure in the Lorentz-force part.
We define the tangent vector and the base angle as follows.
[TABLE]
Note that is divided by . From the discussion on the double Boris solver, repeating the Boris operation times, one can obtain a rotation angle of . The next state should be given by
[TABLE]
The subscript indicates quantities for the -tuple solver. For brevity, we hereafter omit the minus sign from . Since we desire a simulation-friendly expression with , we modify Eq. (18) to
[TABLE]
where , , and are coefficients.
Next, we construct generic expressions for these coefficients. We use Chebyshev polynomials of the first kind and the second kind . They satisfy useful relations:
[TABLE]
We also employ
[TABLE]
With help from Eqs. (7), (8), (21), and (22), we express the coefficients in Eq. (20) in the following way,
[TABLE]
Here, is a positive integer. We derive Eq. (28) for () in A. Practically, we compute first, and then calculate Eqs. (23)-(28) by using . Some higher-order polynomials can be calculated via nesting relations [9]:
[TABLE]
We can also express the coefficients with . From the polynomials,
[TABLE]
we obtain explicit forms, for example,
[TABLE]
[TABLE]
It is interesting to see that the , , and share the same denominator, . One can confirm this by inspecting Eqs. (30)–(35).
As a result, the multiple Boris solver advances the velocity by using Eqs. (3), (17), (22)–(28), (20), and (5). One can also use the coefficients in Eqs. (36)–(39) instead of Eqs. (22)–(28).
The Lorentz-force part of the multiple Boris solvers provides a second-order error in phase angle. From Eq. (17), we obtain
[TABLE]
Thus, the multiple Boris solvers provide times smaller errors than the single Boris solver. Eq. (40) approaches the exact angle for .
In Figure 2(a), we plot relative accuracy in phase angle, , for several . In the classical Boris solver, which is equivalent to the case, we typically set – to keep an error within 1%. Considering , we obtain
[TABLE]
The multiple Boris solvers allow -times larger timestep than the single Boris solver.
Next, we evaluate an effective Larmor radius. We consider a simple gyration about in the case of . From Eq. (1), we obtain
[TABLE]
where is the velocity. The two points and are located on the same circle with a Larmor radius of . The two points should be two endpoints of an arc with a central angle . Then we expect
[TABLE]
From Eqs. (42) and (43), we obtain
[TABLE]
where is a physical Larmor radius. For , we obtain a familiar result of from Eq. (7). In general cases, Eq. (44) can be expanded to
[TABLE]
Figure 2(b) shows the relative length of Larmor radius, . In the square brackets in Eq. (45), the first term is insensitive to , while the second depends on . Thus, higher does not allow -times larger timestep. To keep an error within , we need to limit the timestep to
[TABLE]
For , we find . If we set the threshold to , both Eqs. (41) and (46) can be relaxed by a factor of . For example, Eq. (46) gives for .
The multiple Boris solvers have two nice properties for stable solvers. The first one is the time symmetry. As evident in Eqs. (3), (18), and (5), the multiple Boris solvers is symmetric in time. In such a case, it is unlikely that the solvers numerically damp or amplify a motion in one time direction. In Eq. (20), procedures in the reverse-time direction are obtained by reversing the sign of the second coefficient, i.e., , and . It is obvious that , and for . As a result, we have the coefficients not only for positive integers, but also for any integer .
The second is the volume preservation [4, 5], which is related to the long-term stability. We consider the evolution of a volume in the phase-space from to . Since the Lorentz-force part of the multiple Boris solver is equivalent to -times repetition of the Boris-type element, we express the equivalent numerical procedures into the following steps [5] of , where indicates the -th step. The third step, the Lorentz-force part of the solver, is further divided into substeps. Boris indicates the Boris-type procedure (Eqs. (4a)–(4c)) on the vector for a timestep .
[TABLE]
We check the Jacobian for the -th step, .
[TABLE]
For the first two and the last two steps (, , , and ), we obtain
[TABLE]
In addition, Zhang et al. [5] proved that the Lorentz-force part of the relativistic Boris solver (Boris) preserves a phase-space volume,111The authors claimed that they developed a new volume-preserving algorithm, but the algorithm appears to be the standard relativistic Boris solver. and the proof holds true for an arbitrary timestep . Then, for the substeps in the third step (), each Boris-type element (Boris) preserves the phase-space volume, i.e., . As a result, the Jacobian throughout the entire procedure satisfies . This indicates that the entire procedure preserves the phase-space volume. The multiple Boris solvers are volume-preserving.
4 Numerical tests
To evaluate the new solvers, we have conducted four numerical tests. For comparison, the following ten particle integrators are benchmarked:
Classical Boris solver (Eqs. (4a)–(4c)), 2. 2.
Single Boris solver (; Eqs. (20), (36)) 3. 3.
Double Boris solver (; Eqs. (20), (37)) 4. 4.
Quadruple Boris solver (; Eqs. (20), (39)). 5. 5.
Octuple Boris solver (; Eqs. (20), (22)–(28)). 6. 6.
x Boris solver (; Eqs. (20), (22)–(28)). 7. 7.
x Boris solver (; Eqs. (20), (22)–(28)). 8. 8.
Umeda solver () [6] 9. 9.
Umeda solver () [7] 10. 10.
Exact-gyration solver [8]
The first one is the classical Boris solver [1, 2]. The next six are the multiple Boris solvers with , , , , , and . The coefficients are given by Eqs. (36)–(39) or Eqs. (22)–(28). We refer to them as the single, double, quadruple, octuple, x and x Boris solvers, respectively. The next two are the Umeda solvers with steps [6] and steps [7]. We follow procedures in Eqs. (8)–(10) in Ref. [7]. As they contain Boris elements, they are equivalent to the double and quadruple Boris solvers. The last one is Zenitani & Umeda [8]’s solver, which directly calculates Euler’s rotation formula in the Lorentz-force part:
[TABLE]
By definition, this solver does not produce an error during the gyration phase. We refer to it as the exact-gyration solver. Since it uses trigonometric functions, its computation cost is usually higher than those of polynomial-based solvers. Note that all these solvers share the same Coulomb-force procedures (Eqs: (3) and (5)).
In the first test, we have run test-particle simulations in a static magnetic field and . Parameters are set to , , and . The initial condition is and the timestep is set to , , , or . We have calculated errors in from the analytic solutions. We have run the simulations until , and then we have evaluated the maximum errors in a 4-vector, . Since , the interval corresponds to rotations. This test is a subset of numerical tests in our recent study [8]. Here, almost all of the solvers are combinations of the exact solver for the Coulomb-force parts (Eqs. (3) and (5)) and the second-order solver for the Lorentz-force part. These solvers only differ in the Lorentz-force part.
Figure 3 shows the results as a function of . Errors by the classical Boris solver and the Umeda solvers are not presented, because the errors are identical to those by the single, double, and quadruple Boris solvers. One can see that the multiple Boris schemes give second-order errors with respect to . The errors also scale like . This is because the error simply accumulates in the interval of our interest. From Eq. (40), the errors can be estimated to . The results are in excellent agreement with the prediction. Meanwhile, the exact-gyration solver only gives small errors of .
In the second test, we have measured elapse times of test-particle simulations. Since algorithms’ performance relies on CPU architectures, we have run the code on Intel and SPARC processors. We have compiled the program on an Intel Core i7 processor with Intel Fortran compiler 2019. For each solver, we have run the program for timesteps. We have measured the elapse time six times for every cases. The black bars in Figure 4 show the results, in normalized units. We have also benchmarked the program on a SPARC processor with FUJITSU Fortran compiler on FX100 supercomputer at the Japan Aerospace Exploration Agency (JAXA). The elapsed times are averaged over three runs, because the results on the SPARC processor have less variations than those on the Intel processor. The results are presented in the gray bars in Figure 4. To emphasize the difference, the leftmost value is set to 0.5. Note that we show total elapse time of test-particle simulations. The programs contain not only the Lorentz-force part, but also the Coulomb-force parts (Eqs. (3) and (5)) and the position part (Eq. (1)). Thus the results are not proportional to, but highly affected by the computation time of the Lorentz-force solvers.
As far as we have tested, the new solvers are adequately fast. On the Intel processor, they are slower than the classical Boris solver, but faster than the Umeda solvers and the exact-gyration solver except for the case. The multiple Boris solvers become slower as increases. On the SPARC processor, the new solvers are more promising than on the Intel processor. Some of them (–) are 50% faster than the exact-gyration solver and even faster than the classical Boris solver. It is noteworthy that the double Boris solver () is significantly faster than the Umeda solver (), although the two solvers are equivalent. Similarly, the quadruple Boris solver () is faster than the Umeda solver (). Surprisingly, even the 32x Boris solver () looks as good as the Umeda solver (), even though it gives times higher accuracy.
In the third test, we have run test-particle simulations with the single () Boris solver, the quadruple () Boris solver, and the exact-gyration solver in various configurations. We consider five configurations, as shown in Table 1. In cases 1 and 2, the electric field E is dominant: . In case 3, the electric and magnetic fields are equal: . In cases 4 and 5, the magnetic field B is dominant: . In particular, case 5 stands for the gyration about B, as studied in the first test. Other parameters, timesteps, and the initial conditions are similar to those in the first test. We evaluate maximum values of the normalized error during the time interval of . Here, is deviations from analytic solutions (cases 1 and 5) or numerical reference values (cases 2–4). We obtain the numerical reference values by using the exact-gyration solver with . These configurations and procedures are the same as in Ref. [8].
Figure 5 shows the errors as a function of the timestep. The dotted, solid, and dashdotted lines indicate the results by the single () Boris solver, the quadruple () solver, and the exact-gyration solver, respectively. In case 1 (in red) by the three solvers and case 5 by the exact-gyration solver, one can essentially see no error. All the other curves suggest the second-order accuracy. In cases 2 and 3, the three solvers return similar results. Meanwhile, in cases 4 and 5, their results are different. The quadruple Boris solver provides 10.9–16.5 times smaller errors than the single Boris solver, as emphasized by the solid arrows in green and blue. The improvement is asymptotic to for in case 5. The exact-gyration solver provides even better results, as indicated by the dashed arrows. The quadruple Boris solver provides similar errors in cases 4 and 5. So does the single Boris solver. It appears that the accuracy in the Lorentz-force solver (case 5) limits the overall accuracy for (case 4).
In the fourth test, we study the long-term stability of the particle motion in a non-uniform electromagnetic field. As done in Refs. [4, 8], we have run test-particles in the following field,
[TABLE]
The conditions are set to , , , and . We compare the single () Boris solver, the quadruple () Boris solver, the exact-gyration solver, and the fourth order Runge–Kutta solver. The blue and gray lines in Figure 6 show the trajectories by the quadruple Boris solver and by the Runge–Kutta solver, at (a) an initial stage and at (b) a late stage. The time history of the total energy is presented in Figure 6(c). It combines the particle kinetic energy and the electric potential energy at the midpoint positions ()). The values are normalized by the initial values.
One can see typical trajectories in Figure 6(a). It consists of a fast small-scale gyration and a slow large-scale rotation. The large-scale rotation is due to the drift and the E drift. In the case of the quadruple Boris solver, the particle keeps gyrating even after a long time (300th turn; ) in Fig. 6(b). The particle energy is excellently conserved. We only recognize a relative error of . The trajectories (not shown), the time histories, and the error amplitudes (not shown) by the single () Boris solver and the exact-gyration solver are similar to those of the quadruple () Boris solver. In contrast, as evident in the gray line in Fig. 6(b), the particle gyroradius becomes smaller and smaller in the case of the Runge–Kutta solver. The particle numerically lost 30% of its total energy (Fig. 6(c)).
These results are attributed to the volume-preserving property of the numerical schemes. It is known that the Runge–Kutta solver is not volume preserving. The solver is incapable of preserving the energy of the small-scale oscillation. On the other hand, as discussed in Section 3, the multiple Boris solvers are volume-preserving. The other two solvers are also known to be volume-preserving [4, 5, 8]. These three schemes are capable of preserving the energy of the small-scale oscillation, even in a nonuniform field.
5 Discussion and Summary
We have proposed the multiple Boris integrators that virtually use the Boris procedure times in the Lorentz-force part. The schemes provide second-order but -times smaller errors (Eq. (40)) than the classical Boris solver. The coefficients are given by either the generic forms of (Eqs. (23)–(28)), the generic forms of (Eqs. (30)–(35)), or the explicit forms (Eqs. (36)–(39)). In our experience, the generic forms with are useful for large . For small (), we prefer the explicit form, because we can further optimize the code. In our implementation for , we have calculated the numerators and denominators in Eqs. (36)–(39) separately, because the explicit forms share the same denominator, . As contains (Eq. (17)), we multiply the numerators and denominators by . By doing so, we reduce the number of division operations to save the total computation cost.
The new solvers are developed in the same spirit as in the multistep Boris solvers [6, 7], which considered -times smaller timesteps in the Lorentz-force part. In the multiple Boris solvers, we virtually divide the rotation angle into Boris units. This is arbitrary and not limited to . Thus one can choose the best for one’s application. In addition, we calculate the vector equation (Eq. (20)) only once, because we prepare the coefficients in advance. The coefficients are rational fractions, and so it is easy to calculate them. Consequently, the program runs efficiently, as evident in the benchmark results.
We have also evaluated numerical accuracy of several solvers in general cases of and . Figure 5 demonstrates the second-order accuracy in most cases, because the second-order Lorentz-force solvers are combined with the Coulomb-force procedures (Eqs. (3) and (5)) in an operator-splitting manner. In this study, since all the Lorentz-force solvers are combined with the same Coulomb-force procedures, the numerical accuracy for is essentially controlled by the Lorentz-force solvers, even though the resulting schemes provide the same second-order accuracy. This is evident in cases 4 and 5 in Figure 5 — the quadruple () Boris solver provides times better accuracy, and the exact-gyration solver, which corresponds to the multiple Boris solver in the limit, provides even better accuracy. In general, the multiple Boris solvers have higher accuracy than the classic Boris solver, and then they bring better accuracy in the cases. Importantly, we often consider in practical applications in PIC simulation.
The new solvers may further reduce the computation cost, by allowing larger timesteps. In PIC simulation, the timestep is limited by the plasma frequency and the gyrofrequency . The ratio of to depends on applications, and both frequencies are limited to due to the numerical accuracy and due to the numerical stability [1]. If the gyrofrequency limits the timestep, the multiple Boris solvers can relax the limitations for the accuracy. As evaluated in Eq. (41), the -tuple Boris solver allows -times larger timestep, because it repeats the classical Boris solver with a smaller timestep in the Lorentz-force part. Actually, in the other parts of PIC simulation, the timesteps are unchanged. For example, we update the position (Eq. (1)) for , not for . This fact makes the timestep condition more complicated. The new condition is given by Eq. (46). This is more restrictive than Eq. (41).
In the nonuniform electromagnetic field, the multiple Boris solvers have a favorable property of the long-term stability. Since they inherit a volume-preservation property from the Boris-type element, the new solvers are capable of preserving a small-scale oscillation, as they should be. As far as we have tested, they conserve the total energy very well. These facts give us further confidence to use the new solvers in PIC simulations for practical applications.
Among the new solvers, considering the accuracy, the timestep, and computation costs, we recommend the quadruple () Boris solver with to the readers. One can develop higher-order solvers () to obtain even better accuracy. In such a case, we recommend the exact-gyration solver [8] to the readers. As shown in Figure 4, the 32x Boris solver () is already more expensive than the exact-gyration solver on Intel processors. It is likely that higher-order solvers are as expensive as the exact-gyration solver on SPARC processors for . In any case, since the extra cost is limited, the exact-gyration solver will be another choice for . Finally, we note that our recommendation is partly based on the benchmarks on our specific systems. Performance may be different on other systems such as GPU-based systems and FGPA systems. In general, since it is impossible to predict future computing platforms, we can only prepare as many particle solvers as possible. Our solvers will be the latest additions.
In summary, we have proposed the multiple Boris solvers that virtually combine multiple Boris units in the Lorentz-force part. We have derived one-step expressions with polynomial-based coefficients for arbitrary divisions. The new solvers provide second-order, -times smaller errors than the classical Boris solver. They also allow larger timesteps. Their performance is promising. They are stable over a long time. We hope that the proposed solvers will be useful in studies with PIC simulations.
Acknowledgements
This work was partially carried out on facilities of the JSS2 system at Japan Aerospace Exploration Agency (JAXA). This work was supported by Grant-in-Aid for Scientific Research (C) 17K05673, (S) 17H06140, and (B) 17H02877 from the Japan Society for the Promotion of Science (JSPS).
Appendix A Third coefficients for
We recall the following relation of trigonometric functions.
[TABLE]
We substitute to , where is a positive integer, . Using Chebyshev polynomials, we obtain
[TABLE]
With help from Eqs. (7), (8), and (22), we obtain
[TABLE]
The reference list from the paper itself. Each links out to its DOI / PubMed record.
- 1Birdsall & Langdon [1985] C. K. Birdsall, A. B. Langdon, Plasma Physics via Computer Simulation , Mc Graw-Hill, New York, 1985.
- 2Hockney & Eastwood [1981] R. W. Hockney, J. W. Eastwood, Computer simulation using particles , Mc Graw-Hill, New York, 1981.
- 3Boris [1970] J. P. Boris, in Proceedings of 4th Conference on Numerical Simulation of Plasmas , Naval Research Laboratory, Washington D. C., 1970, pp. 3–67.
- 4Qin et al. [2013] H. Qin, S. Zhang, J. Xiao, J. Liu, Y. Sun, W. M. Tang, Phys. Plasmas 20 (2013) 084503.
- 5Zhang et al. [2015] R. Zhang, J. Liu, J. Liu, H. Qin, Y. Wang, Y. He, Y. Sun, Phys. Plasmas 22 (2015) 044501.
- 6Umeda [2018] T. Umeda, Comput. Phys. Commun. 228 (2018) 1.
- 7Umeda [2019] T. Umeda, Comput. Phys. Commun. 237 (2019) 37.
- 8Zenitani & Umeda [2018] S. Zenitani, T. Umeda, Phys. Plasmas 25 (2018) 112110.
