ASCOT5
|
Analytic magnetic field. More...
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include "../ascot5.h"
#include "../consts.h"
#include "../print.h"
#include "../error.h"
#include "B_GS.h"
Go to the source code of this file.
Functions | |
int | B_GS_init (B_GS_data *data, real R0, real z0, real raxis, real zaxis, real B_phi0, real psi0, real psi1, real psi_mult, real c[14], int Nripple, real a0, real alpha0, real delta0) |
Initialize magnetic field data. | |
void | B_GS_free (B_GS_data *data) |
Free allocated resources. | |
void | B_GS_offload (B_GS_data *data) |
Offload data to the accelerator. | |
a5err | B_GS_eval_psi (real *psi, real r, real phi, real z, B_GS_data *Bdata) |
Evaluate poloidal flux psi. | |
a5err | B_GS_eval_psi_dpsi (real psi_dpsi[4], real r, real phi, real z, B_GS_data *Bdata) |
Evaluate poloidal flux psi and its derivatives. | |
a5err | B_GS_eval_rho_drho (real rho_drho[4], real r, real phi, real z, B_GS_data *Bdata) |
Evaluate normalized poloidal flux rho and its derivatives. | |
a5err | B_GS_eval_B (real B[3], real r, real phi, real z, B_GS_data *Bdata) |
Evaluate magnetic field. | |
a5err | B_GS_eval_B_dB (real B_dB[12], real r, real phi, real z, B_GS_data *Bdata) |
Evaluate magnetic field and its derivatives. | |
a5err | B_GS_get_axis_rz (real rz[2], B_GS_data *Bdata) |
Return magnetic axis R-coordinate. | |
Analytic magnetic field.
This module implements a toroidal magnetic field based on an analytical solution to the Grad-Shafranov equation [1].
In this model, the poloidal flux psi is calculated as
where and are pre-calculated coefficients which can be chosen so that realistic equilibria resembling different machines are produced. The equilibrium can be non-symmetric with respect to magnetic plane, and can have zero, one, or two X-points. is a scaling constant, and . From the poloidal magnetic field components can be evaluated from Grad-Shafranov relations
and toroidal field is evaluated as
This module also includes the possibility to have an analytical model for toroidal field ripple, which is used if ripple period . The rippled toroidal field is
where
and and .
[1] A.J. Cerfon, J.P. Freidberg. "One size fits all" analytic solutions to the Grad-Shafranov equation. Physics of Plasmas 17 (3) (2010) 032502. http://scitation.aip.org/content/aip/journal/pop/17/3/10.1063/1.3328818
Definition in file B_GS.c.
int B_GS_init | ( | B_GS_data * | data, |
real | R0, | ||
real | z0, | ||
real | raxis, | ||
real | zaxis, | ||
real | B_phi0, | ||
real | psi0, | ||
real | psi1, | ||
real | psi_mult, | ||
real | c[14], | ||
int | Nripple, | ||
real | a0, | ||
real | alpha0, | ||
real | delta0 ) |
Initialize magnetic field data.
data | pointer to the data struct |
R0 | major radius R coordinate [m] |
z0 | midplane z coordinate [m] |
raxis | magnetic axis R coordinate [m] |
zaxis | magnetic axis z coordinate [m] |
B_phi0 | on-axis toroidal field [T] |
psi0 | poloidal flux at axis [Vs/m] |
psi1 | poloidal flux at separatrix [Vs/m] |
psi_mult | psi multiplier |
psi_coeff | coefficients for evaluating psi |
Nripple | number of toroidal field coils |
a0 | minor radius |
alpha0 | ripple r-dependency delta ~ (r/a0)^alpha0 |
delta0 | ripple strength |
void B_GS_free | ( | B_GS_data * | data | ) |
void B_GS_offload | ( | B_GS_data * | data | ) |
Evaluate normalized poloidal flux rho and its derivatives.
rho_drho | pointer where rho and its derivatives will be stored |
r | R coordinate [m] |
phi | phi coordinate [rad] |
z | z coordinate [m] |
Bdata | pointer to magnetic field data struct |