![]() |
The Open FUSION Toolkit 1.0.0-6f445ef
An open-source framework for fusion and plasma science and engineering
|
Solvers and helper functions for TokaMaker bootstrap current functionality.
Functions | |
| analyze_bootstrap_edge_spike (psi_N, j_bootstrap, diagnostic_plots=False) | |
| Analyze bootstrap edge spike location, width, and height. | |
| calculate_ln_lambda (Te, Ti, ne, ni, Zeff=1.0, electron_lnLambda_model='sauter', ion_lnLambda_model='unity') | |
| Calculate Coulomb logarithm for electrons and ions. | |
| find_optimal_scale (mygs, psi_N, pressure, ffp_prof, pp_prof, j_inductive, Ip_target, psi_pad, spike_prof=None, find_j0=True, scale_j0=1.0, tolerance=0.01, max_iter=5, diagnostic_plots=False, verbose=True) | |
| Optimize scaling to match input/output \(j_0\) or \(I_p\). | |
| Hmode_profiles (edge=0.08, ped=0.4, core=2.5, rgrid=201, expin=1.5, expout=1.5, widthp=0.04, xphalf=None) | |
| This function generates H-mode density and temperature profiles evenly spaced in your favorite radial coordinate. | |
| parameterize_edge_jBS (psi, amp, center, width, offset, sk, y_sep=0.0, blend_width=0.03, tail_alpha=1.5) | |
| Generate parameterized edge bootstrap current profile with tunable concave fall-off. | |
| redl_bootstrap (psi_N=None, Te=None, Ti=None, ne=None, ni=None, pe=None, pi=None, Zeff=None, R=None, q=None, eps=None, fT=None, I_psi=None, dT_e_dpsi=None, dT_i_dpsi=None, dn_e_dpsi=None, dn_i_dpsi=None, dp_dpsi=None, ln_lambda_e=17.0, ln_lambda_ii=17.0, use_legacy_L34=False, use_sign_q=False, ion_collisionality_model='Zeff', formula_form='jB', Zeff_override=None, nu_e_star_override=None, nu_i_star_override=None) | |
| Bootstrap current via Redl et al., Phys. | |
| solve_jphi (mygs, ffp_prof, pp_prof, Ip_target, pax_target) | |
| Solve Grad-Shafranov equilibrium for given profiles. | |
| solve_with_bootstrap (mygs, ne, Te, ni, Ti, Zeff, Ip_target, inductive_jphi=None, Zis=None, scale_jBS=1.0, isolate_edge_jBS=False, psi_pad=1e-3, iterations=3, diagnostic_plots=False, parameterize_jBS=False, use_OMFIT_sauter=False, verbose=True) | |
| Self-consistently compute bootstrap current from H-mode profiles. | |
| analyze_bootstrap_edge_spike | ( | psi_N, | |
| j_bootstrap, | |||
diagnostic_plots = False |
|||
| ) |
Analyze bootstrap edge spike location, width, and height.
| psi_N | Normalized poloidal flux profile \(\hat{\psi}\) |
| j_bootstrap | Bootstrap current profile \(j_{BS}(\hat{\psi})\) |
| diagnostic_plots | If True, plot diagnostic figures |
| calculate_ln_lambda | ( | Te, | |
| Ti, | |||
| ne, | |||
| ni, | |||
Zeff = 1.0, |
|||
electron_lnLambda_model = 'sauter', |
|||
ion_lnLambda_model = 'unity' |
|||
| ) |
Calculate Coulomb logarithm for electrons and ions.
| Te | Electron temperature profile \(T_e\) [eV] |
| Ti | Ion temperature profile \(T_i\) [eV] |
| ne | Electron density profile \(n_e\) [m$^{-3}$] |
| ni | Ion density profile \(n_i\) [m$^{-3}$] |
| Zeff | Effective charge \(Z_{eff}\) |
| electron_lnLambda_model | Model for electron Coulomb log ('sauter', 'NRL') |
| ion_lnLambda_model | Model for ion Coulomb log ('unity', 'Zavg') |
| find_optimal_scale | ( | mygs, | |
| psi_N, | |||
| pressure, | |||
| ffp_prof, | |||
| pp_prof, | |||
| j_inductive, | |||
| Ip_target, | |||
| psi_pad, | |||
spike_prof = None, |
|||
find_j0 = True, |
|||
scale_j0 = 1.0, |
|||
tolerance = 0.01, |
|||
max_iter = 5, |
|||
diagnostic_plots = False, |
|||
verbose = True |
|||
| ) |
Optimize scaling to match input/output \(j_0\) or \(I_p\).
| mygs | Grad-Shafranov solver object |
| psi_N | Normalized poloidal flux profile \(\hat{\psi}\) |
| pressure | Plasma pressure profile \(p(\hat{\psi})\) [Pa] |
| ffp_prof | Toroidal current profile ( \(j_\phi(\hat{\psi})\)) |
| pp_prof | Pressure gradient profile ( |
| Hmode_profiles | ( | edge = 0.08, |
|
ped = 0.4, |
|||
core = 2.5, |
|||
rgrid = 201, |
|||
expin = 1.5, |
|||
expout = 1.5, |
|||
widthp = 0.04, |
|||
xphalf = None |
|||
| ) |
This function generates H-mode density and temperature profiles evenly spaced in your favorite radial coordinate.
Copied from https://omfit.io/_modules/omfit_classes/utils_fusion.html
| edge | Separatrix height (float) |
| ped | Pedestal height (float) |
| core | On-axis profile height (float) |
| rgrid | Number of radial grid points (int) |
| expin | Inner core exponent for H-mode pedestal profile (float) |
| expout | Outer core exponent for H-mode pedestal profile (float) |
| widthp | Width of pedestal (float) |
| xphalf | Position of tanh (float, optional) |
| parameterize_edge_jBS | ( | psi, | |
| amp, | |||
| center, | |||
| width, | |||
| offset, | |||
| sk, | |||
y_sep = 0.0, |
|||
blend_width = 0.03, |
|||
tail_alpha = 1.5 |
|||
| ) |
Generate parameterized edge bootstrap current profile with tunable concave fall-off.
| psi | Normalized poloidal flux profile \(\hat{\psi}\) |
| amp | Amplitude of edge skewed Gaussian spike |
| center | Center location of edge skewed Gaussian spike |
| width | Width of edge skewed Gaussian spike |
| offset | Height of core flat profile |
| sk | Skewness parameter of Gaussian |
| y_sep | Value at separatrix ( \(\hat{\psi}=1\)) for profile |
| blend_width | Blending width for smooth transition in \(\hat{\psi}\) |
| tail_alpha | Controls right-side fall-off shape (1.0 = cosine, >1.0 = concave) |
| redl_bootstrap | ( | psi_N = None, |
|
Te = None, |
|||
Ti = None, |
|||
ne = None, |
|||
ni = None, |
|||
pe = None, |
|||
pi = None, |
|||
Zeff = None, |
|||
R = None, |
|||
q = None, |
|||
eps = None, |
|||
fT = None, |
|||
I_psi = None, |
|||
dT_e_dpsi = None, |
|||
dT_i_dpsi = None, |
|||
dn_e_dpsi = None, |
|||
dn_i_dpsi = None, |
|||
dp_dpsi = None, |
|||
ln_lambda_e = 17.0, |
|||
ln_lambda_ii = 17.0, |
|||
use_legacy_L34 = False, |
|||
use_sign_q = False, |
|||
ion_collisionality_model = 'Zeff', |
|||
formula_form = 'jB', |
|||
Zeff_override = None, |
|||
nu_e_star_override = None, |
|||
nu_i_star_override = None |
|||
| ) |
Bootstrap current via Redl et al., Phys.
Plasmas 28, 022502 (2021)
| psi_N | Normalized poloidal flux profile \(\hat{\psi}\) |
| Te | Electron temperature profile \(T_e\) [eV] |
| Ti | Ion temperature profile \(T_i\) [eV] |
| ne | Electron density profile \(n_e\) [m$^{-3}$] |
| ni | Ion density profile \(n_i\) [m$^{-3}$] |
| pe | Electron pressure profile \(p_e\) [Pa] |
| pi | Ion pressure profile \(p_i\) [Pa] |
| Zeff | Effective charge \(Z_{eff}\) |
| R | Major radius \(R\) [m] |
| q | Safety factor \(q\) |
| eps | Inverse aspect ratio \(\epsilon\) |
| fT | Trapped particle fraction \(f_T\) |
| I_psi | Toroidal current function \(I(\psi)\) |
| dT_e_dpsi | Derivative of \(T_e\) w.r.t. \(\psi\) |
| dT_i_dpsi | Derivative of \(T_i\) w.r.t. \(\psi\) |
| dn_e_dpsi | Derivative of \(n_e\) w.r.t. \(\psi\) |
| dn_i_dpsi | Derivative of \(n_i\) w.r.t. \(\psi\) |
| dp_dpsi | Derivative of total pressure w.r.t. \(\psi\) |
| ln_lambda_e | Electron Coulomb logarithm \(\ln\Lambda_e\) |
| ln_lambda_ii | Ion Coulomb logarithm \(\ln\Lambda_{ii}\) |
| use_legacy_L34 | Use legacy L34 formula (see Redl Eq. 19) |
| use_sign_q | Multiply by sign of \(q\) |
| ion_collisionality_model | Model for ion collisionality ('Zeff', 'Koh', 'unity') |
| formula_form | Use 'jB' (default) or 'jboot1' equation |
| Zeff_override | Override \(Z_{eff}\) if set |
| nu_e_star_override | Override electron collisionality if set |
| nu_i_star_override | Override ion collisionality if set |
| solve_jphi | ( | mygs, | |
| ffp_prof, | |||
| pp_prof, | |||
| Ip_target, | |||
| pax_target | |||
| ) |
Solve Grad-Shafranov equilibrium for given profiles.
| mygs | Grad-Shafranov solver object |
| ffp_prof | Toroidal current profile ( \(j_\phi(\hat{\psi})\)), type 'jphi-linterp' |
| pp_prof | Pressure gradient profile ( |
| solve_with_bootstrap | ( | mygs, | |
| ne, | |||
| Te, | |||
| ni, | |||
| Ti, | |||
| Zeff, | |||
| Ip_target, | |||
inductive_jphi = None, |
|||
Zis = None, |
|||
scale_jBS = 1.0, |
|||
isolate_edge_jBS = False, |
|||
psi_pad = 1e-3, |
|||
iterations = 3, |
|||
diagnostic_plots = False, |
|||
parameterize_jBS = False, |
|||
use_OMFIT_sauter = False, |
|||
verbose = True |
|||
| ) |
Self-consistently compute bootstrap current from H-mode profiles.
| mygs | Grad-Shafranov solver object |
| ne | Electron density profile \(n_e(\hat{\psi})\) [m$^{-3}$] |
| Te | Electron temperature profile \(T_e(\hat{\psi})\) [eV] |
| ni | Ion density profile \(n_i(\hat{\psi})\) [m$^{-3}$] |
| Ti | Ion temperature profile \(T_i(\hat{\psi})\) [eV] |
| Zeff | Effective charge profile \(Z_{eff}(\hat{\psi})\) |
| Ip_target | Target plasma current \(I_p\) [A] |
| inductive_jphi | Inductive toroidal current profile \(j_{ind}(\hat{\psi})\) |
| Zis | List of impurity atomic numbers (default: [1.0]) |
| scale_jBS | Scaling factor for bootstrap current |
| isolate_edge_jBS | If True, isolate edge spike in bootstrap current |
| psi_pad | Padding for flux surface calculations |
| iterations | Number of solver iterations |
| diagnostic_plots | If True, plot diagnostic figures |
| parameterize_jBS | If True, use parameterized edge spike |
| use_OMFIT_sauter | If True, use OMFIT Sauter model |