ASCOT5
|
2D magnetic field with bicubic spline interpolation More...
#include <stdlib.h>
#include <math.h>
#include "../ascot5.h"
#include "../error.h"
#include "../print.h"
#include "B_2DS.h"
#include "../spline/interp.h"
Go to the source code of this file.
Functions | |
int | B_2DS_init (B_2DS_data *data, int n_r, real r_min, real r_max, int n_z, real z_min, real z_max, real axis_r, real axis_z, real psi0, real psi1, real *psi, real *B_r, real *B_phi, real *B_z) |
Initialize magnetic field data. | |
void | B_2DS_free (B_2DS_data *data) |
Free allocated resources. | |
void | B_2DS_offload (B_2DS_data *data) |
Offload data to the accelerator. | |
a5err | B_2DS_eval_psi (real *psi, real r, real phi, real z, B_2DS_data *Bdata) |
Evaluate poloidal flux psi. | |
a5err | B_2DS_eval_psi_dpsi (real psi_dpsi[4], real r, real phi, real z, B_2DS_data *Bdata) |
Evaluate poloidal flux psi and its derivatives. | |
a5err | B_2DS_eval_rho_drho (real rho_drho[4], real r, real phi, real z, B_2DS_data *Bdata) |
Evaluate normalized poloidal flux rho and its derivatives. | |
a5err | B_2DS_eval_B (real B[3], real r, real phi, real z, B_2DS_data *Bdata) |
Evaluate magnetic field. | |
a5err | B_2DS_eval_B_dB (real B_dB[12], real r, real phi, real z, B_2DS_data *Bdata) |
Evaluate magnetic field and its derivatives. | |
a5err | B_2DS_get_axis_rz (real rz[2], B_2DS_data *Bdata) |
Return magnetic axis R-coordinate. | |
2D magnetic field with bicubic spline interpolation
This module represents a magnetic field where data is given in
The magnetic field is evaluated from magnetic field strength
The total field is then a sum of components interpolated directly from
This module does no extrapolation so if queried value is outside the
Definition in file B_2DS.c.
int B_2DS_init | ( | B_2DS_data * | data, |
int | n_r, | ||
real | r_min, | ||
real | r_max, | ||
int | n_z, | ||
real | z_min, | ||
real | z_max, | ||
real | axis_r, | ||
real | axis_z, | ||
real | psi0, | ||
real | psi1, | ||
real * | psi, | ||
real * | B_r, | ||
real * | B_phi, | ||
real * | B_z ) |
Initialize magnetic field data.
n_r | number of r grid points |
r_min | minimum R coordinate in the grid [m] |
r_max | maximum R coordinate in the grid [m] |
n_z | number of z grid points |
z_min | minimum z coordinate in the grid [m] |
z_max | maximum z coordinate in the grid [m] |
axis_r | R coordinate of magnetic axis [m] |
axis_z | z coordinate of magnetic axis [m] |
psi0 | poloidal flux at magnetic axis [Vs/m] |
psi1 | poloidal flux at separatrix [Vs/m] |
psi | poloidal flux psi(R_i,z_j) = arr[j*n_r + i] [Vs/m] |
B_r | Magnetic field R component B_r(R_i,z_j) = arr[j*n_r + i] [T] |
B_phi | Magnetic field phi component B_phi(R_i,z_j) = arr[j*n_r + i] [T] |
B_z | Magnetic field z component B_z(R_i,z_j) = arr[j*n_r + i] [T] |
void B_2DS_free | ( | B_2DS_data * | data | ) |
void B_2DS_offload | ( | B_2DS_data * | data | ) |
Evaluate poloidal flux psi and its derivatives.
psi_dpsi | pointer for storing psi [V*s*m^-1] and its derivatives |
r | R coordinate [m] |
phi | phi coordinate [rad] |
z | z coordinate [m] |
Bdata | pointer to magnetic field data struct |
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 |
Evaluate magnetic field.
B | pointer to array where magnetic field values are stored |
r | R coordinate [m] |
phi | phi coordinate [deg] |
z | z coordinate [m] |
Bdata | pointer to magnetic field data struct |
Evaluate magnetic field and its derivatives.
B_dB | pointer to array where the field and its derivatives are stored |
r | R coordinate [m] |
phi | phi coordinate [deg] |
z | z coordinate [m] |
Bdata | pointer to magnetic field data struct |