ASCOT5
|
Header file for asigma_loc.c. More...
Go to the source code of this file.
Data Structures | |
struct | asigma_loc_offload_data |
Local-files atomic reaction offload data. More... | |
struct | asigma_loc_data |
Local-files atomic reaction simulation data. More... | |
Functions | |
int | asigma_loc_init_offload (asigma_loc_offload_data *offload_data, real **offload_array) |
Initialize local file atomic data and check inputs. | |
void | asigma_loc_free_offload (asigma_loc_offload_data *offload_data, real **offload_array) |
Free offload array and reset parameters. | |
void | asigma_loc_init (asigma_loc_data *asigma_data, asigma_loc_offload_data *offload_data, real *offload_array) |
Initialize atomic reaction data struct on target. | |
DECLARE_TARGET_SIMD_UNIFORM (asigma_data, reac_type, z_2, a_2, extrapolate) a5err asigma_loc_eval_sigma(real *sigma | |
a5err | asigma_loc_eval_cx (real *ratecoeff, int z_1, int a_1, real E, real mass, int nspec, const int *znum, const int *anum, real T_0, real *n_0, int extrapolate, asigma_loc_data *asigmadata) |
Evaluate atomic reaction rate coefficient. | |
a5err | asigma_loc_eval_bms (real *sigmav, int z_1, int a_1, real E, real mass, int nion, const int *znum, const int *anum, real T_e, real *n_i, int extrapolate, asigma_loc_data *asigma_data) |
Evaluate beam stopping rate coefficient. | |
Variables | |
int | z_1 |
int int | a_1 |
int int int | z_2 |
int int int int | a_2 |
int int int int real | E_coll_per_amu |
int int int int real int | reac_type |
int int int int real int int | extrapolate |
int int int int real int int asigma_loc_data * | asigma_data |
int int real | m_1 |
int int real int int real | E |
int int real int int real real | T_e |
int int real int int real real real | T_0 |
int int real int int real real real real | n_i |
Header file for asigma_loc.c.
Definition in file asigma_loc.h.
int asigma_loc_init_offload | ( | asigma_loc_offload_data * | offload_data, |
real ** | offload_array ) |
Initialize local file atomic data and check inputs.
Before calling this function, the offload struct is expected to be fully initialized.
The offload array is expected to hold atomic data as
[0*N_reac] = min value of energy abscissa [eV] [1*N_reac] = max value of energy abscissa [eV] [2*N_reac] = min value of density abscissa [m^-3] [3*N_reac] = max value of density abscissa [m^-3] [4*N_reac] = min value of temperature abscissa [eV] [5*N_reac] = max value of temperature abscissa [eV] [6*N_reac] = reaction probability data [(depends on reaction data type)]
Each piece of data listed above is repeated for each reaction included. Hence the N_reac interval between the 6 first pieces of data. The memory space required for the last, reaction probability data, depends on the dimensionality of the abscissae. The memory requirement for the reaction data of the i_reac:th reaction is N_E[i_reac]*N_n[i_reac]*N_T[i_reac].
This function initializes splines to atomic reaction data, thus increasing the length of the offload array, 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 52 of file asigma_loc.c.
void asigma_loc_free_offload | ( | asigma_loc_offload_data * | offload_data, |
real ** | offload_array ) |
Free offload array and reset parameters.
This function deallocates the offload_array.
offload_data | pointer to offload data struct |
offload_array | pointer to pointer to offload array |
Definition at line 197 of file asigma_loc.c.
void asigma_loc_init | ( | asigma_loc_data * | asigma_data, |
asigma_loc_offload_data * | offload_data, | ||
real * | offload_array ) |
Initialize atomic reaction data struct on target.
This function copies atomic reaction data from the offload struct and the offload array to the struct on the target, and uses interp?Dcomp_init_spline() functions to initialize the precalculated spline parameters of the reaction data in the spline structs within the data struct on the target.
asigma_data | pointer to data struct on target |
offload_data | pointer to offload data struct |
offload_array | pointer to offload array |
Definition at line 216 of file asigma_loc.c.
a5err asigma_loc_eval_cx | ( | real * | ratecoeff, |
int | z_1, | ||
int | a_1, | ||
real | E, | ||
real | mass, | ||
int | nspec, | ||
const int * | znum, | ||
const int * | anum, | ||
real | T_0, | ||
real * | n_0, | ||
int | extrapolate, | ||
asigma_loc_data * | asigma_data ) |
Evaluate atomic reaction rate coefficient.
This function evaluates the rate coefficient (<sigma*v>) for the atomic reaction corresponding to the reaction identifiers given as parameters at the given fast particle energy and bulk plasma conditions.
This is a SIMD function.
ratecoeff | pointer to evaluated rate coefficient |
z_1 | atomic number of fast particle |
a_1 | atomic mass number of fast particle |
E | energy of fast particle |
mass | mass of fast particle |
znum | atomic numbers of bulk neutrals |
anum | atomic mass numbers of bulk neutrals |
T_0 | temperature of bulk neutrals |
n_0 | neutral densities |
extrapolate | don't raise error but set values outside abscissae to zero |
asigma_data | pointer to atomic data struct |
Definition at line 477 of file asigma_loc.c.
a5err asigma_loc_eval_bms | ( | real * | ratecoeff, |
int | z_1, | ||
int | a_1, | ||
real | E, | ||
real | mass, | ||
int | nion, | ||
const int * | znum, | ||
const int * | anum, | ||
real | T_e, | ||
real * | n_i, | ||
int | extrapolate, | ||
asigma_loc_data * | asigma_data ) |
Evaluate beam stopping rate coefficient.
This function first tries to evaluate BMS with ADAS data. If not present, the Suzuki model is used instead.
This is a SIMD function.
ratecoeff | pointer to evaluated rate coefficient |
z_1 | atomic number of fast particle |
a_1 | atomic mass number of fast particle |
E | energy of fast particle |
mass | mass of fast particle |
nion | number of bulk ion species |
znum | atomic numbers of bulk particles |
anum | atomic mass numbers of bulk particles |
T_e | electron temperature of bulk plasma |
n_i | densities of bulk ions |
extrapolate | don't raise error but set values outside abscissae to zero |
asigma_data | pointer to atomic data struct |
Definition at line 549 of file asigma_loc.c.
int z_1 |
Definition at line 55 of file asigma_loc.h.
int int a_1 |
Definition at line 55 of file asigma_loc.h.
int int real int z_2 |
Definition at line 55 of file asigma_loc.h.
int int real int int a_2 |
Definition at line 55 of file asigma_loc.h.
int int int int real E_coll_per_amu |
Definition at line 55 of file asigma_loc.h.
Definition at line 56 of file asigma_loc.h.
Definition at line 56 of file asigma_loc.h.
int int real m_1 |
Definition at line 60 of file asigma_loc.h.
Definition at line 61 of file asigma_loc.h.
Definition at line 61 of file asigma_loc.h.