coords_polar_m Module

Coordinate transformations Cartesian (x,y) <-> Polar (rho, theta) rho is normalized flux surface label theta is geometric poloidal angle, measured ccw from +x with respect to magnetic axis



Functions

public function jacobian_polar(equi, x, y, phi)

Jacobian of polar coordinate system To compute derivatives on rho, finite difference is used N.B. currently only axisymmetric (2D), proper inclusion of toroidal phi will change this function

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t), intent(inout) :: equi

Equilibrium

real(kind=FP), intent(in) :: x

Cartesian coordinate x

real(kind=FP), intent(in) :: y

Cartesian coordinate y

real(kind=FP), intent(in) :: phi

Toroidal angle

Return Value real(kind=fp)


Subroutines

public subroutine cart_to_polar(equi, x, y, phi, rho, theta)

Coordinate transformation from polar to Cartesian

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t), intent(inout) :: equi

Equilibrium

real(kind=FP), intent(in) :: x

Cartesian coordinate x

real(kind=FP), intent(in) :: y

Cartesian coordinate y

real(kind=FP), intent(in) :: phi

Toroidal angle

real(kind=FP), intent(out) :: rho

Polar coordinate rho (normalized flux surface label)

real(kind=FP), intent(out) :: theta

Polar coordinate theta (geometric poloidal angle)

public subroutine polar_to_cart(equi, rho, theta, phi, x, y)

Coordinate transformation from Cartesian to polar

Arguments

Type IntentOptional Attributes Name
class(equilibrium_t), intent(inout) :: equi

Equilibrium

real(kind=FP), intent(in) :: rho

Polar coordinate rho

real(kind=FP), intent(in) :: theta

Polar coordinate theta (geometric poloidal angle)

real(kind=FP), intent(in) :: phi

Toroidal angle

real(kind=FP), intent(out) :: x

Cartesian coordinate x

real(kind=FP), intent(out) :: y

Cartesian coordinate y