gvec.quantities#

GVEC Postprocessing - computable quantities

This module defines various quantities and their computation functions for the GVEC package.

The module contains functions that compute different physical quantities such as rotational transform and pressure profiles, coordinate mappings and their derivatives, magnetic field, current density and more.

These functions are registered with compute.QUANTITIES using the @register function decorator.

gvec.quantities.A_surface(ds: Dataset, state: State)#
gvec.quantities.B(ds: Dataset)#
gvec.quantities.B_contra_t_B(ds: Dataset)#
gvec.quantities.B_contra_t_P(ds: Dataset)#
gvec.quantities.B_contra_z_B(ds: Dataset)#
gvec.quantities.B_rho_B(ds: Dataset)#
gvec.quantities.B_rho_P(ds: Dataset)#
gvec.quantities.B_theta_B(ds: Dataset)#
gvec.quantities.B_theta_P(ds: Dataset)#
gvec.quantities.B_theta_avg(ds: Dataset)#
gvec.quantities.B_zeta_B(ds: Dataset)#
gvec.quantities.B_zeta_P(ds: Dataset)#
gvec.quantities.B_zeta_avg(ds: Dataset)#
gvec.quantities.D_Merc(ds: Dataset)#
gvec.quantities.F(ds: Dataset)#
gvec.quantities.F_r_avg(ds: Dataset)#
gvec.quantities.II_tt(ds: Dataset)#
gvec.quantities.II_tt_B(ds: Dataset)#
gvec.quantities.II_tt_P(ds: Dataset)#
gvec.quantities.II_tz(ds: Dataset)#
gvec.quantities.II_tz_B(ds: Dataset)#
gvec.quantities.II_tz_P(ds: Dataset)#
gvec.quantities.II_zz(ds: Dataset)#
gvec.quantities.II_zz_B(ds: Dataset)#
gvec.quantities.II_zz_P(ds: Dataset)#
gvec.quantities.I_pol(ds: Dataset)#
gvec.quantities.I_tor(ds: Dataset)#
gvec.quantities.J(ds: Dataset)#
gvec.quantities.J_contra_t_B(ds: Dataset)#
gvec.quantities.J_contra_t_P(ds: Dataset)#
gvec.quantities.J_contra_z_B(ds: Dataset)#
gvec.quantities.J_rho_B(ds: Dataset)#
gvec.quantities.J_rho_P(ds: Dataset)#
gvec.quantities.J_theta_B(ds: Dataset)#
gvec.quantities.J_theta_P(ds: Dataset)#
gvec.quantities.J_zeta_B(ds: Dataset)#
gvec.quantities.J_zeta_P(ds: Dataset)#
gvec.quantities.Jac(ds: Dataset)#
gvec.quantities.Jac_B(ds: Dataset)#
gvec.quantities.Jac_P(ds: Dataset)#
gvec.quantities.Jac_h(ds: Dataset)#
gvec.quantities.LA(ds: Dataset, state: State)#
gvec.quantities.L_axis(ds: Dataset, state: State)#
gvec.quantities.L_gradB(ds: Dataset)#

Compute the magnetic gradient scale length.

The magnetic gradient scale length is defined as

\(L_{\nabla B} = \frac{\sqrt{2} |B|}{ ||\nabla B||}\)

where \(||\nabla B||\) is the frobenius norm of the gradient of the magnetic field. Details can be found in Kappel et al. PPCF 66 (2024) 025018 DOI:10.1088/1361-6587/ad1a3e.

gvec.quantities.N_FP(ds: Dataset, state: State)#
gvec.quantities.Phi(ds: Dataset, state: State)#
gvec.quantities.Phi_edge(ds: Dataset, state: State)#
gvec.quantities.V(ds: Dataset)#
gvec.quantities.W_MHD(ds: Dataset)#
gvec.quantities.X1(ds: Dataset, state: State)#
gvec.quantities.X2(ds: Dataset, state: State)#
gvec.quantities.aspect_ratio(ds: Dataset)#
gvec.quantities.beta_avg(ds: Dataset)#
gvec.quantities.chi(ds: Dataset, state: State)#
gvec.quantities.dA(ds: Dataset)#
gvec.quantities.dB_dr(ds: Dataset)#
gvec.quantities.dB_dt(ds: Dataset)#
gvec.quantities.dB_dz(ds: Dataset)#
gvec.quantities.dB_theta_avg_dr(ds: Dataset)#
gvec.quantities.dI_tor_dr(ds: Dataset)#
gvec.quantities.dNU_B_dt(ds: Dataset)#
gvec.quantities.dNU_B_dz(ds: Dataset)#
gvec.quantities.dPhi_dr(ds: Dataset, state: State)#
gvec.quantities.dPhi_drr(ds: Dataset, state: State)#
gvec.quantities.dV_dPhi_n(ds: Dataset)#

d/dPhi_n = dr/dPhi_n * d/dr = Phi_0 / dPhi_dr * d/dr

gvec.quantities.dV_dPhi_n2(ds: Dataset)#

d/dPhi_n = dr/dPhi_n * d/dr = Phi_0 / dPhi_dr * d/dr d/dr 1/dPhi_dr = -1/dPhi_dr**2 * dPhi_drr

gvec.quantities.dchi_dr(ds: Dataset, state: State)#
gvec.quantities.dchi_drr(ds: Dataset, state: State)#
gvec.quantities.diota_dr(ds: Dataset, state: State)#
gvec.quantities.diota_drr(ds: Dataset, state: State)#
gvec.quantities.dmod_B_dr_B(ds: Dataset)#
gvec.quantities.dmod_B_dt_B(ds: Dataset)#
gvec.quantities.dmod_B_dz_B(ds: Dataset)#
gvec.quantities.dp_dr(ds: Dataset, state: State)#
gvec.quantities.dp_drr(ds: Dataset, state: State)#
gvec.quantities.e_rho(ds: Dataset)#
gvec.quantities.e_rho_B(ds: Dataset)#
gvec.quantities.e_rho_P(ds: Dataset)#
gvec.quantities.e_theta(ds: Dataset)#
gvec.quantities.e_theta_B(ds: Dataset)#
gvec.quantities.e_theta_P(ds: Dataset)#
gvec.quantities.e_zeta(ds: Dataset)#
gvec.quantities.e_zeta_B(ds: Dataset)#
gvec.quantities.e_zeta_P(ds: Dataset)#
gvec.quantities.elongation(ds: Dataset)#
gvec.quantities.g_rr(ds: Dataset)#
gvec.quantities.g_rr_B(ds: Dataset)#
gvec.quantities.g_rr_P(ds: Dataset)#
gvec.quantities.g_rt(ds: Dataset)#
gvec.quantities.g_rt_B(ds: Dataset)#
gvec.quantities.g_rt_P(ds: Dataset)#
gvec.quantities.g_rz(ds: Dataset)#
gvec.quantities.g_rz_B(ds: Dataset)#
gvec.quantities.g_rz_P(ds: Dataset)#
gvec.quantities.g_tt(ds: Dataset)#
gvec.quantities.g_tt_B(ds: Dataset)#
gvec.quantities.g_tt_P(ds: Dataset)#
gvec.quantities.g_tz(ds: Dataset)#
gvec.quantities.g_tz_B(ds: Dataset)#
gvec.quantities.g_tz_P(ds: Dataset)#
gvec.quantities.g_zz(ds: Dataset)#
gvec.quantities.g_zz_B(ds: Dataset)#
gvec.quantities.g_zz_P(ds: Dataset)#
gvec.quantities.gamma(ds: Dataset)#
gvec.quantities.grad_mod_B(ds: Dataset)#
gvec.quantities.grad_rho(ds: Dataset)#
gvec.quantities.grad_theta(ds: Dataset)#
gvec.quantities.grad_theta_B(ds: Dataset)#
gvec.quantities.grad_theta_P(ds: Dataset)#
gvec.quantities.grad_zeta(ds: Dataset)#
gvec.quantities.grad_zeta_B(ds: Dataset)#
gvec.quantities.iota(ds: Dataset, state: State)#
gvec.quantities.iota_0(ds: Dataset)#
gvec.quantities.iota_avg(ds: Dataset)#
gvec.quantities.iota_avg2(ds: Dataset)#
gvec.quantities.iota_curr(ds: Dataset)#
gvec.quantities.iota_curr_0(ds: Dataset)#
gvec.quantities.k_rr(ds: Dataset)#
gvec.quantities.k_rt(ds: Dataset)#
gvec.quantities.k_rz(ds: Dataset)#
gvec.quantities.k_tt(ds: Dataset)#
gvec.quantities.k_tz(ds: Dataset)#
gvec.quantities.k_zz(ds: Dataset)#
gvec.quantities.mirror_ratio(ds: Dataset)#

Compute the mirror ratio of the magnetic field strength on a flux surface.

The mirror ratio is defined as

R_mirror = (B_max - B_min) / (B_max + B_min)

where B_max and B_min are the maximum and minimum values of the magnetic field strength on a given flux surface.

gvec.quantities.mu0(ds: Dataset)#
gvec.quantities.normal(ds: Dataset)#
gvec.quantities.p(ds: Dataset, state: State)#
gvec.quantities.r_major(ds: Dataset)#
gvec.quantities.r_minor(ds: Dataset)#
gvec.quantities.shear(ds: Dataset)#
gvec.quantities.shear_avg(ds: Dataset)#
gvec.quantities.shear_avg2(ds: Dataset)#
gvec.quantities.theta_P(ds: Dataset)#
gvec.quantities.vacuum_magnetic_well_depth(ds: Dataset, state: State)#
gvec.quantities.xyz(ds: Dataset)#