Header file for B_STS.c.
More...
#include "../offload_acc_omp.h"
#include "../ascot5.h"
#include "../linint/linint.h"
#include "../spline/interp.h"
Go to the source code of this file.
|
int | B_STS_init_offload (B_STS_offload_data *offload_data, real **offload_array) |
| Initialize magnetic field offload data.
|
|
void | B_STS_free_offload (B_STS_offload_data *offload_data, real **offload_array) |
| Free offload array.
|
|
void | B_STS_init (B_STS_data *Bdata, B_STS_offload_data *offload_data, real *offload_array) |
| Initialize magnetic field data struct on target.
|
|
a5err | B_STS_eval_psi (real *psi, real r, real phi, real z, B_STS_data *Bdata) |
| Evaluate poloidal flux psi.
|
|
DECLARE_TARGET_END a5err | B_STS_eval_psi_dpsi (real psi_dpsi[4], real r, real phi, real z, B_STS_data *Bdata) |
| Evaluate poloidal flux psi and its derivatives.
|
|
DECLARE_TARGET_END a5err | B_STS_eval_rho_drho (real rho_drho[4], real r, real phi, real z, B_STS_data *Bdata) |
| Evaluate normalized poloidal flux rho and its derivatives.
|
|
DECLARE_TARGET_END a5err | B_STS_eval_B (real B[3], real r, real phi, real z, B_STS_data *Bdata) |
| Evaluate magnetic field.
|
|
DECLARE_TARGET_END a5err | B_STS_eval_B_dB (real B_dB[12], real r, real phi, real z, B_STS_data *Bdata) |
| Evaluate magnetic field and its derivatives.
|
|
DECLARE_TARGET_END a5err | B_STS_get_axis_rz (real rz[2], B_STS_data *Bdata, real phi) |
| Return magnetic axis Rz-coordinates.
|
|
Header file for B_STS.c.
Definition in file B_STS.h.
◆ B_STS_init_offload()
Initialize magnetic field offload data.
This function takes pre-initialized offload data struct and offload array as inputs. The data is used to fill rest of the offload struct and to construct bicubic splines whose coefficients are stored in re-allocated offload array.
The offload data struct must have the following fields initialized:
B_STS_offload_data.offload_array_length is set here.
The offload array must contain the following data:
- offload_array[ z*Bn_r*Bn_z + j*Bn_r + i] = B_R(R_i, phi_z, z_j) [T]
- offload_array[ Bn_r*Bn_z*Bn_phi + z*Bn_r*Bn_z + j*Bn_r + i] = B_phi(R_i, phi_z, z_j) [T]
- offload_array[2*Bn_r*Bn_z*Bn_phi + z*Bn_r*Bn_z + j*Bn_r + i] = B_z(R_i, phi_z, z_j) [T]
- offload_array[3*Bn_r*Bn_z*Bn_phi + z*psin_r*psin_z + j*psin_r + i] = psi(R_i, phi_z, z_j) [V*s*m^-1]
- offload_array[3*Bn_r*Bn_z*Bn_phi + psin_r*psin_z*psin_phi + z] = axis_R(phi_z) [m]
- offload_array[3*Bn_r*Bn_z*Bn_phi + psin_r*psin_z*psin_phi + n_axis + z] = axis_z(phi_z) [m]
Sanity checks are printed if data was initialized succesfully.
- Parameters
-
offload_data | pointer to offload data struct |
offload_array | pointer to offload array which is reallocated here |
- Returns
- zero if initialization succeeded
Definition at line 98 of file B_STS.c.
◆ B_STS_free_offload()
Free offload array.
- Parameters
-
offload_data | pointer to offload data struct |
offload_array | pointer to pointer to offload array |
Definition at line 225 of file B_STS.c.
◆ B_STS_init()
Initialize magnetic field data struct on target.
- Parameters
-
Bdata | pointer to data struct on target |
offload_data | pointer to offload data struct |
offload_array | offload array |
Definition at line 237 of file B_STS.c.
◆ B_STS_eval_psi()
Evaluate poloidal flux psi.
- Parameters
-
psi | pointer where psi [V*s*m^-1] value will be stored |
r | R coordinate [m] |
phi | phi coordinate [rad] |
z | z coordinate [m] |
Bdata | pointer to magnetic field data struct |
- Returns
- Non-zero a5err value if evaluation failed, zero otherwise
Definition at line 322 of file B_STS.c.
◆ B_STS_eval_psi_dpsi()
Evaluate poloidal flux psi and its derivatives.
- Parameters
-
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 |
- Returns
- Non-zero a5err value if evaluation failed, zero otherwise
Definition at line 354 of file B_STS.c.
◆ B_STS_eval_rho_drho()
Evaluate normalized poloidal flux rho and its derivatives.
- Parameters
-
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 |
- Returns
- Non-zero a5err value if evaluation failed, zero otherwise
Definition at line 396 of file B_STS.c.
◆ B_STS_eval_B()
Evaluate magnetic field.
- Parameters
-
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 |
- Returns
- Non-zero a5err value if evaluation failed, zero otherwise
Definition at line 445 of file B_STS.c.
◆ B_STS_eval_B_dB()
Evaluate magnetic field and its derivatives.
- Parameters
-
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 |
- Returns
- Non-zero a5err value if evaluation failed, zero otherwise
Definition at line 480 of file B_STS.c.
◆ B_STS_get_axis_rz()
Return magnetic axis Rz-coordinates.
- Parameters
-
rz | pointer where axis R and z [m] values will be stored |
Bdata | pointer to magnetic field data struct |
phi | phi coordinate [deg] |
- Returns
- Non-zero a5err value if evaluation failed, zero otherwise
Definition at line 531 of file B_STS.c.