salpha_equilibrium_m Module

Module containing the implementation of an salpha like equilibrium type. N.b. this equilibrium is axisymmetric - phi, when required, is not used


Note: This equilibrium is currently implemented in an inconsitent way, i.e. the analytical q-profile does not match the calculated one. To be consistent the q-profile needs to stay as it is while the magnetic field has to be b_x = -rhosin(theta)/(xrhosqrt(1-rho2)) and b_y = rhocos(theta)/(xrhosqrt(1-rho**2)) A consistent equilibrium of this form with a smaller set of parameters is implemented in circular_toroidal_equilibrium_m.f90




Derived Types

type, public, extends(equilibrium_t) ::  salpha_t

Type implementing an salpha like equilibrium. The equilibrium has concentric flux surfaces in a toroidal geometry. Shear as well as the q-factor can be specified. To get the correct poloidal flux in Wb = V*s the reference magnetic field strength has to be provided in Tesla and the reference length scale has to be provided in meters.

Components

Type Visibility Attributes Name Initial
logical, public :: initialized = .false.
real(kind=FP), public :: x0

Magnetic axis x = R/R0 (in normalised units)

real(kind=FP), public :: y0

Magnetic axis y = Z/R0 (in normalised units)

real(kind=FP), public :: phi0 = 0.0_FP

Magnetic axis phi

real(kind=FP), public :: xmin

Box limits

real(kind=FP), public :: xmax

Box limits

real(kind=FP), public :: ymin

Box limits

real(kind=FP), public :: ymax

Box limits

real(kind=FP), public :: rhomax

Global limits for rho (rho = normalised psi, n.b. there may also be region-specific limits defined in equi)

real(kind=FP), public :: rhomin

Global limits for rho (rho = normalised psi, n.b. there may also be region-specific limits defined in equi)

real(kind=FP), public :: rho_limiter

Radial position (start) of limiter

Type-Bound Procedures

procedure, public, pass(self) :: absb
procedure, public, pass(self) :: bpol
procedure, public :: init
procedure, public :: display
procedure, public :: debug
procedure, public :: is_axisymmetric
procedure, public :: rho
procedure, public :: psi
procedure, public :: bx
procedure, public :: by
procedure, public :: btor
procedure, public :: jacobian
procedure, public :: epol
procedure, public :: erad
procedure, public :: district
procedure, public :: in_vessel
procedure, public :: mag_axis_loc
procedure, public :: qval
procedure, public, nopass :: theta
procedure, public :: x_point_psi
procedure, public :: o_point_psi