Hostname: page-component-74656f9884-2dmjx Total loading time: 0 Render date: 2026-11-07T07:41:50.972Z Has data issue: false hasContentIssue false

Fast and spectrally accurate evaluation of gyroaverages in non-periodic gyrokinetic-Poisson simulations

Published online by Cambridge University Press:  22 August 2017

J. Guadagni
Affiliation:
Courant Institute of Mathematical Sciences, New York University, New York, NY 10012, USA
A. J. Cerfon*
Affiliation:
Courant Institute of Mathematical Sciences, New York University, New York, NY 10012, USA
*
†Email address for correspondence: cerfon@cims.nyu.edu
Rights & Permissions [Opens in a new window]

Abstract

We present a fast and spectrally accurate numerical scheme for the evaluation of the gyroaveraged electrostatic potential in non-periodic gyrokinetic-Poisson simulations. Our method relies on a reformulation of the gyrokinetic-Poisson system in which the gyroaverage in Poisson’s equation is computed for the compactly supported charge density instead of the non-periodic, non-compactly supported potential itself. We calculate this gyroaverage with a combination of two Fourier transforms and a Hankel transform, which has the near optimal run-time complexity $O(N_{\unicode[STIX]{x1D70C}}(P+\hat{P})\log (P+\hat{P}))$ , where $P$ is the number of spatial grid points, $\hat{P}$ the number of grid points in Fourier space and $N_{\unicode[STIX]{x1D70C}}$ the number of grid points in velocity space. We present numerical examples illustrating the performance of our code and demonstrating geometric convergence of the error.

Information

Type
Research Article
Copyright
© Cambridge University Press 2017 
Figure 0

Figure 1. Illustration of the difficulties associated with using a Fourier series representation for computing the gyroaverage of a distribution function $f$ is a non-periodic setting. The computational domain is the box bounded by the continuous lines. The boxes bounded by dashed lines represent some of the boxes induced by the periodicity of the Fourier series representation. The gyroaverage along the blue orbits yield correct results, while the gyroaverage along the red and purple orbits lead to fictitious contributions to the true gyroaverage.

Figure 1

Figure 2. Graphical representation of the successive steps involved in the numerical evaluation of ${\mathcal{G}}f$. The lines in each coloured plane correspond to lines of constant $x$ and constant $y$ and we note the equispaced grid for the spatial variables and the Chebyshev grid in Fourier space. The successive planes correspond to different values of the variable $\unicode[STIX]{x1D70C}$. Since the computation of ${\mathcal{G}}f$ is done at a fixed time $t$, we omitted the time dependence in all the formulae in this figure.

Figure 2

Figure 3. Plot of $\unicode[STIX]{x1D716}_{\text{abs}}$ as a function of $L_{\hat{N}}$ and selected values of $L_{N_{\unicode[STIX]{x1D70C}}}$, for the fixed real sampling rate $L_{N}=12$.

Figure 3

Figure 4. Plot of $\unicode[STIX]{x1D716}_{\text{abs}}$ as a function of $L_{N_{\unicode[STIX]{x1D70C}}}$ and selected values of $L_{\hat{N}}$, for the fixed real sampling rate $L_{N}=12$.

Figure 4

Figure 5. Plot of $\unicode[STIX]{x1D716}_{\text{abs}}$ as a function of $L_{N}$ and selected values of $L_{N_{\unicode[STIX]{x1D70C}}}$, for the fixed Fourier sampling rate $L_{\hat{N}}=4.5$.

Figure 5

Figure 6. Plot of $\unicode[STIX]{x1D716}_{\text{abs}}$ as a function of $L_{N_{\unicode[STIX]{x1D70C}}}$ and selected values of $L_{N}$, for the fixed Fourier sampling rate $L_{\hat{N}}=4.5$.

Figure 6

Figure 7. Plot of $\unicode[STIX]{x1D716}_{\text{abs}}$ as a function of $L_{N}$ and selected values of $L_{\hat{N}}$, for the fixed gyroradius sampling rate $L_{N_{\unicode[STIX]{x1D70C}}}=35$.

Figure 7

Figure 8. Plot of $\unicode[STIX]{x1D716}_{\text{abs}}$ as a function of $L_{\hat{N}}$ and selected values of $L_{N}$, for the fixed gyroradius sampling rate $L_{N_{\unicode[STIX]{x1D70C}}}=35$.

Figure 8

Table 1. For each set of resolutions and for each code element, the CPU run time is reported in two ways: the time elapsed in seconds and the time elapsed as a percentage of the total time (excluding the time required to pre-compute the necessary libraries). The specific sampling rates used for each resolution were $(L_{N},L_{\hat{N}},L_{N_{\unicode[STIX]{x1D70C}}})=(4,2.5,11)$ for ‘low resolution’, $(L_{N},L_{\hat{N}},L_{N_{\unicode[STIX]{x1D70C}}})=(8,3.5,23)$ for ‘medium resolution’ and $(L_{N},L_{\hat{N}},L_{N_{\unicode[STIX]{x1D70C}}})=(12,4.5,35)$ for ‘high resolution’. The ‘high resolution’ sampling rates are the sampling rates we have suggested in § 3. These data were obtained by averaging the results of 1000 separate simulations of our code in Matlab on a home desktop computer operating on an Intel i7-6700k processor at 4.0 GHz.