27 int* anum,
int* znum,
real* mass,
real* charge,
31 data->
anum = (
int*) malloc( nion*
sizeof(
int) );
32 data->
znum = (
int*) malloc( nion*
sizeof(
int) );
35 for(
int i = 0; i < data->
n_species; i++) {
37 data->
znum[i] = znum[i];
38 data->
anum[i] = anum[i];
40 data->
mass[i] = mass[i];
41 data->
charge[i] = charge[i];
48 for(
int j = 0; j < nr * nz; j++) {
55 c = (
real*) malloc(nr * nz *
sizeof(
real));
56 for(
int j = 0; j < nr * nz; j++) {
63 c = (
real*) malloc(nr * nz *
sizeof(
real));
64 for(
int j = 0; j < nr * nz; j++) {
71 c = (
real*) malloc(nr * nz *
sizeof(
real));
72 for(
int j = 0; j < nr * nz; j++) {
79 for(
int i = 0; i < nion; i++) {
81 c = (
real*) malloc(nr * nz *
sizeof(
real));
82 for(
int j = 0; j < nr * nz; j++) {
83 c[j] = ni[i * (nr * nz) + j];
103 for(
int i = 0; i < data->
n_species; i++) {
104 free(data->
dens[i].
c);
106 free(data->
temp[0].
c);
107 free(data->
temp[1].
c);
108 free(data->
vtor[0].
c);
189 for(
int i = 0; i < pls_data->
n_species; i++) {
Main header file for ASCOT5.
Header file containing physical and mathematical constants.
unsigned long int a5err
Simulation error flag.
Linear interpolation library.
void linint2D_init(linint2D_data *str, real *c, int n_x, int n_y, int bc_x, int bc_y, real x_min, real x_max, real y_min, real y_max)
Initialize linear interpolation struct for scalar 2D data.
DECLARE_TARGET_END int linint2D_eval_f(real *f, linint2D_data *str, real x, real y)
Evaluate interpolated value of 2D scalar field.
void plasma_2D_free(plasma_2D_data *data)
Free allocated resources.
a5err plasma_2D_eval_densandtemp(real *dens, real *temp, real r, real z, plasma_2D_data *pls_data)
Evaluate plasma density and temperature for all species.
a5err plasma_2D_eval_temp(real *temp, real r, real z, int species, plasma_2D_data *pls_data)
Evaluate plasma temperature.
void plasma_2D_offload(plasma_2D_data *data)
Offload data to the accelerator.
int plasma_2D_init(plasma_2D_data *data, int nr, int nz, int nion, real r_min, real r_max, real z_min, real z_max, int *anum, int *znum, real *mass, real *charge, real *Te, real *Ti, real *ne, real *ni, real *vtor)
Initialize 2D plasma data and check inputs.
a5err plasma_2D_eval_dens(real *dens, real r, real z, int species, plasma_2D_data *pls_data)
Evaluate plasma density.
a5err plasma_2D_eval_flow(real *vflow, real r, real z, plasma_2D_data *pls_data)
Evalate plasma flow along the field lines.
Header file for plasma_2D.c.
Macros for printing console output.
1D plasma parameters on the target