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.
| 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 |
Absolute value of magnetic field.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(equilibrium_t), | intent(in) | :: | self | |||
| real(kind=FP), | intent(in) | :: | x |
3D position (x and y normalized) |
||
| real(kind=FP), | intent(in) | :: | y |
3D position (x and y normalized) |
||
| real(kind=FP), | intent(in) | :: | phi |
3D position (x and y normalized) |
Magnetic field component b poloidal normalised to absolute value of B (on axis)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(equilibrium_t), | intent(in) | :: | self | |||
| real(kind=FP), | intent(in) | :: | x |
3D position (x and y normalized) |
||
| real(kind=FP), | intent(in) | :: | y |
3D position (x and y normalized) |
||
| real(kind=FP), | intent(in) | :: | phi |
3D position (x and y normalized) |
Reads input parameters and initializes the equilibrium
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(inout) | :: | self | |||
| character(len=*), | intent(in), | optional | :: | filename |
Filename, where parameters are read from |
Prints to console information about the equilibrium
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self |
Prints to console information about the equilibrium
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self |
Returns the flux surface label
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self | |||
| real(kind=FP), | intent(in) | :: | x | |||
| real(kind=FP), | intent(in) | :: | y | |||
| real(kind=FP), | intent(in) | :: | phi |
Returns the poloidal flux function in SI units
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self | |||
| real(kind=FP), | intent(in) | :: | x | |||
| real(kind=FP), | intent(in) | :: | y |
Returns magnetic field component bx normalised to B_0 (on axis)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self | |||
| real(kind=FP), | intent(in) | :: | x | |||
| real(kind=FP), | intent(in) | :: | y | |||
| real(kind=FP), | intent(in) | :: | phi |
Return the magnetic field component by normalised to B_0 (on axis)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self |
Instnace of the type |
||
| real(kind=FP), | intent(in) | :: | x | |||
| real(kind=FP), | intent(in) | :: | y | |||
| real(kind=FP), | intent(in) | :: | phi |
Returns the magnetic field component btor normalised to B_0 (on axis)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self | |||
| real(kind=FP), | intent(in) | :: | x | |||
| real(kind=FP), | intent(in) | :: | y | |||
| real(kind=FP), | intent(in) | :: | phi |
Returns the jacobian of the geometry. The geometry is cylindrical and thus J = x
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self | |||
| real(kind=FP), | intent(in) | :: | x | |||
| real(kind=FP), | intent(in) | :: | y | |||
| real(kind=FP), | intent(in) | :: | phi |
Calculates the unit vector along poloidal (along flux surface) direction
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self | |||
| real(kind=FP), | intent(in) | :: | x | |||
| real(kind=FP), | intent(in) | :: | y | |||
| real(kind=FP), | intent(in) | :: | phi | |||
| real(kind=FP), | intent(out) | :: | epolx |
Unit vector component in x-direction |
||
| real(kind=FP), | intent(out) | :: | epoly |
Unit vector component in y-direction |
Calculates unit vector along radial (across flux surface) direction
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self | |||
| real(kind=FP), | intent(in) | :: | x | |||
| real(kind=FP), | intent(in) | :: | y | |||
| real(kind=FP), | intent(in) | :: | phi | |||
| real(kind=FP), | intent(out) | :: | eradx |
Unit vector component in x-direction |
||
| real(kind=FP), | intent(out) | :: | erady |
Unit vector component in y-direction |
Returns in which district point (x, y) is (see module descriptors_m)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self | |||
| real(kind=FP), | intent(in) | :: | x | |||
| real(kind=FP), | intent(in) | :: | y | |||
| real(kind=FP), | intent(in) | :: | phi |
Returns a boolean of whether a given point is within theta1 and theta2 (angular extent of limiter)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self | |||
| real(kind=FP), | intent(in) | :: | x |
x-coordinate |
||
| real(kind=FP), | intent(in) | :: | y |
y-coordinate |
||
| real(kind=FP), | intent(in) | :: | phi |
toroidal coordinate (unused) |
Returns the coordinates of magnetic axis
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self |
Instance of class |
||
| real(kind=FP), | intent(in) | :: | phi |
Toroidal angle |
||
| real(kind=FP), | intent(out) | :: | axis_x |
x-coordinate of the magnetic axis |
||
| real(kind=FP), | intent(out) | :: | axis_y |
y-coordinate of the magnetic axis |
Returns the safety factor
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self | |||
| real(kind=FP), | intent(in) | :: | rho_pt |
Flux surface label |
Returns the geometric poloidal angle
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=FP), | intent(in) | :: | x | |||
| real(kind=FP), | intent(in) | :: | y |
Return the value of psi at last closed flux surface
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self |
Return the value of psi at magnetic axis
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(salpha_t), | intent(in) | :: | self |