ASCOT5
|
1D spline plasma evaluation functions More...
#include <stdlib.h>
#include <math.h>
#include <float.h>
#include "../ascot5.h"
#include "../print.h"
#include "../error.h"
#include "../consts.h"
#include "../spline/interp.h"
#include "plasma_1DS.h"
Go to the source code of this file.
Macros | |
#define | PLASMA_1DS_NONEG 1 |
Flag to determine method to prevent negative values in interpolation. | |
#define | PLASMA_1DS_LOG 1 |
#define | PLASMA_1DS_SQRT 2 |
Functions | |
int | plasma_1DS_init_offload (plasma_1DS_offload_data *offload_data, real **offload_array) |
Initialize 1DS plasma data and check inputs. | |
void | plasma_1DS_free_offload (plasma_1DS_offload_data *offload_data, real **offload_array) |
Free offload array and reset parameters. | |
void | plasma_1DS_init (plasma_1DS_data *plasma_data, plasma_1DS_offload_data *offload_data, real *offload_array) |
Initialize magnetic field data struct on target. | |
a5err | plasma_1DS_eval_temp (real *temp, real rho, int species, plasma_1DS_data *plasma_data) |
Evaluate plasma temperature. | |
a5err | plasma_1DS_eval_dens (real *dens, real rho, int species, plasma_1DS_data *plasma_data) |
Evaluate plasma density. | |
a5err | plasma_1DS_eval_densandtemp (real *dens, real *temp, real rho, plasma_1DS_data *plasma_data) |
Evaluate plasma density and temperature for all species. | |
1D spline plasma evaluation functions
Definition in file plasma_1DS.c.
#define PLASMA_1DS_NONEG 1 |
Flag to determine method to prevent negative values in interpolation.
It is possible that interpolating function f(x) with splines yield negative values which would be unphysical if f is density or temperature. To prevent this, one can either interpolate sqrt(f(x)) or log(f(x)) instead because inverse of these functions are always positive.
Set this parameter to
Definition at line 28 of file plasma_1DS.c.
#define PLASMA_1DS_LOG 1 |
Logarithm flag
Definition at line 31 of file plasma_1DS.c.
#define PLASMA_1DS_SQRT 2 |
Square root flag
Definition at line 34 of file plasma_1DS.c.
int plasma_1DS_init_offload | ( | plasma_1DS_offload_data * | offload_data, |
real ** | offload_array ) |
Initialize 1DS plasma data and check inputs.
Before calling this function, the offload struct is expected to be fully initialized.
The offload array is expected to hold plasma data as &(*offload_array)[n_rho*0] = electron temperature &(*offload_array)[n_rho*1] = ion temperature &(*offload_array)[n_rho*2] = electron density &(*offload_array)[n_rho*3] = ion density
This function initializes splines to plasma profiles and prints some values as sanity checks.
offload_data | pointer to offload data struct |
offload_array | pointer to pointer to offload array |
Definition at line 56 of file plasma_1DS.c.
void plasma_1DS_free_offload | ( | plasma_1DS_offload_data * | offload_data, |
real ** | offload_array ) |
Free offload array and reset parameters.
offload_data | pointer to offload data struct |
offload_array | pointer to pointer to offload array |
Definition at line 174 of file plasma_1DS.c.
void plasma_1DS_init | ( | plasma_1DS_data * | plasma_data, |
plasma_1DS_offload_data * | offload_data, | ||
real * | offload_array ) |
Initialize magnetic field data struct on target.
This function copies the magnetic field parameters from the offload struct to the struct on target and sets the plasma data pointers to correct offsets in the offload array.
plasma_data | pointer to data struct on target |
offload_data | pointer to offload data struct |
offload_array | pointer to offload array |
Definition at line 191 of file plasma_1DS.c.
a5err plasma_1DS_eval_temp | ( | real * | temp, |
real | rho, | ||
int | species, | ||
plasma_1DS_data * | plasma_data ) |
Evaluate plasma temperature.
temp | temperature value will be stored in temp[0] |
rho | radial coordinate |
species | index of plasma species |
plasma_data | pointer to plasma data struct |
Definition at line 234 of file plasma_1DS.c.
a5err plasma_1DS_eval_dens | ( | real * | dens, |
real | rho, | ||
int | species, | ||
plasma_1DS_data * | plasma_data ) |
Evaluate plasma density.
dens | density value will be stored in dens[0] |
rho | radial coordinate |
species | index of plasma species |
plasma_data | pointer to plasma data struct |
Definition at line 265 of file plasma_1DS.c.
a5err plasma_1DS_eval_densandtemp | ( | real * | dens, |
real * | temp, | ||
real | rho, | ||
plasma_1DS_data * | plasma_data ) |
Evaluate plasma density and temperature for all species.
This function evaluates the density and temperature of all plasma species at the given radial coordinate using spline interpolation.
dens | pointer to where interpolated densities [m^-3] are stored |
temp | pointer to where interpolated temperatures [J] are stored |
rho | radial coordinate |
plasma_data | pointer to plasma data struct |
Definition at line 300 of file plasma_1DS.c.