You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently the collision operator C[F,F] acts on a single velocity space described by vpa and vperp. However, the introduction of electrons, fast ions, or just using moment_kinetic normalisations will mean that vpa and vperp will describe a different physical velocity range for each species.
Denoting the reference velocity of species s and s' by crefs and crefsp, the corresponding distribution functions by Fs and Fsp, and the corresponding Rosenbluth potentials by Hs and Hsp, the prescription for obtaining the Rosenbluth potentials in this more general case will be as follows:
If crefs > crefsp then interpolate Fsp on to the grid used by Fs, and solve for Hsp using the existing routines (and apply any normalisation scaling factors).
If crefs < crefsp then solve for Hsp using Fsp and the existing routines, and then interpolate Hsp onto the grid used by Hs (and apply any normalisation scaling factors).
The ratio of crefs/crefsp determines the scaling needed for the interpolation, whereas the data stored always remains on the original vpavperp normalised coordinates, which simply change interpretation when the interpolation is carried out.
The main computational challenge is in providing a fast interpolation for the 2D space of vpavperp. A naive implementation based on matrix assembly would appear to scale like
N^2 * ngrid^2 ,
where N is the number of points in a single global coordinate dimension vpa or vperp and ngrid is the number of polynomials in a local element. We assume that each point in the interpolated function will depend only on a single element in the un-interpolated data. This scaling is comparable to the assembly step already used in the collision operator which suggests that it may be possible to construct an interpolation which does not slow the operator down by more that O(1).
@johnomotani@LucasMontoya4 Thoughts on this exercise? How quickly would you want either collisions with kinetic electrons or multiple charged species?
The text was updated successfully, but these errors were encountered:
The branch https://github.com/mabarnes/moment_kinetics/tree/cross-species-collisions has been created to start experimenting with the interpolation methods in the 2D velocity grid. Note that existing 1D interpolation methods cannot directly carry over to the 2D domain. The new routine interpolate_2D_vspace! is tested and can function with any of the input grid options (although the collision operator matrices do not support Chebyshev grids yet).
Currently the collision operator
C[F,F]
acts on a single velocity space described byvpa
andvperp
. However, the introduction of electrons, fast ions, or just using moment_kinetic normalisations will mean thatvpa
andvperp
will describe a different physical velocity range for each species.Denoting the reference velocity of species s and s' by
crefs
andcrefsp
, the corresponding distribution functions byFs
andFsp
, and the corresponding Rosenbluth potentials byHs
andHsp
, the prescription for obtaining the Rosenbluth potentials in this more general case will be as follows:If
crefs > crefsp
then interpolateFsp
on to the grid used byFs
, and solve forHsp
using the existing routines (and apply any normalisation scaling factors).If
crefs < crefsp
then solve forHsp
usingFsp
and the existing routines, and then interpolateHsp
onto the grid used byHs
(and apply any normalisation scaling factors).The ratio of
crefs/crefsp
determines the scaling needed for the interpolation, whereas the data stored always remains on the originalvpa
vperp
normalised coordinates, which simply change interpretation when the interpolation is carried out.The main computational challenge is in providing a fast interpolation for the 2D space of
vpa
vperp
. A naive implementation based on matrix assembly would appear to scale likeN^2 * ngrid^2
,where
N
is the number of points in a single global coordinate dimensionvpa
orvperp
andngrid
is the number of polynomials in a local element. We assume that each point in the interpolated function will depend only on a single element in the un-interpolated data. This scaling is comparable to the assembly step already used in the collision operator which suggests that it may be possible to construct an interpolation which does not slow the operator down by more that O(1).@johnomotani @LucasMontoya4 Thoughts on this exercise? How quickly would you want either collisions with kinetic electrons or multiple charged species?
The text was updated successfully, but these errors were encountered: