GyroSurface Derived Type

type, public :: GyroSurface

Surface containing the fast-ion velocity vectors for all values of the gyro-angle. It takes the form of a hyperboloid where is the gyro-angle, is the ion gyro-frequency and


Contents

Source Code


Components

TypeVisibility AttributesNameInitial
real(kind=Float64), public :: v =0.d0

Particle speed

real(kind=Float64), public :: omega =0.d0

Ion gyro-frequency

real(kind=Float64), public, dimension(3):: axes =0.d0

Semi-axes of the hyperboloid, i.e. a, b, c coefficients

real(kind=Float64), public, dimension(3):: center =0.d0

Center of the gyrosurface

real(kind=Float64), public, dimension(3,3):: A =0.d0

Coefficients of quartic surface i.e. basis*diagm(1/a^2,1/b^2,1/c^2)*basis'

real(kind=Float64), public, dimension(3,3):: basis =0.d0

Basis of coordinate system of gyrosurface


Source Code

type GyroSurface
    !+ Surface containing the fast-ion velocity vectors for all values of the
    !+ gyro-angle. It takes the form of a hyperboloid
    !+ \((x(\gamma,t) = \alpha \sqrt{1-\rm{pitch}^2}(cos(\gamma + \pi/2) - \omega_i t sin(\gamma + \pi/2)) \)
    !+ \((y(\gamma,t) = \alpha \sqrt{1-\rm{pitch}^2}(sin(\gamma + \pi/2) + \omega_i t cos(\gamma + \pi/2)) \)
    !+ \((z(\gamma,t) = \alpha \omega_i \rm{pitch} t\)
    !+ where \(\gamma\) is the gyro-angle, \(\omega_i\) is the ion
    !+ gyro-frequency and \(\alpha = V/\omega_i \)
    real(Float64) :: v = 0.d0
        !+ Particle speed
    real(Float64) :: omega = 0.d0
        !+ Ion gyro-frequency
    real(Float64), dimension(3)   :: axes = 0.d0
        !+ Semi-axes of the hyperboloid, i.e. a, b, c coefficients
    real(Float64), dimension(3)   :: center = 0.d0
        !+ Center of the gyrosurface
    real(Float64), dimension(3,3) :: A = 0.d0
        !+ Coefficients of quartic surface i.e. `basis*diagm(1/a^2,1/b^2,1/c^2)*basis'`
    real(Float64), dimension(3,3) :: basis = 0.d0
        !+ Basis of coordinate system of gyrosurface
end type GyroSurface