ASCOT5
|
Plasma interface. More...
#include <stdio.h>
#include <stdlib.h>
#include "ascot5.h"
#include "error.h"
#include "print.h"
#include "plasma.h"
#include "plasma/plasma_1D.h"
#include "plasma/plasma_1DS.h"
#include "consts.h"
Go to the source code of this file.
Functions | |
void | plasma_free (plasma_data *data) |
Free allocated resources. | |
void | plasma_offload (plasma_data *data) |
Offload data to the accelerator. | |
a5err | plasma_eval_temp (real *temp, real rho, real r, real phi, real z, real t, int species, plasma_data *pls_data) |
Evaluate plasma temperature. | |
a5err | plasma_eval_dens (real *dens, real rho, real r, real phi, real z, real t, int species, plasma_data *pls_data) |
Evaluate plasma density. | |
a5err | plasma_eval_densandtemp (real *dens, real *temp, real rho, real r, real phi, real z, real t, plasma_data *pls_data) |
Evaluate plasma density and temperature for all species. | |
int | plasma_get_n_species (plasma_data *pls_data) |
Get the number of plasma species. | |
const real * | plasma_get_species_mass (plasma_data *pls_data) |
Get mass of all plasma species. | |
const real * | plasma_get_species_charge (plasma_data *pls_data) |
Get charge of all plasma species. | |
const int * | plasma_get_species_znum (plasma_data *pls_data) |
Get charge number of ion species. | |
const int * | plasma_get_species_anum (plasma_data *pls_data) |
Get atomic mass number of ion species. | |
Plasma interface.
This is an interface through which plasma data is initialized and accessed. Reading e.g. from disk is done elsewhere.
To add a new plasma instance, make sure these functions are implemented and called from this interface, and that plasma.h contains enum type for the new instance.
The interface checks which instance given data corresponds to from the "type"-field in plasma_offload_data or plasma_data that is given as an argument, and calls the relevant function for that instance.
Plasma species are referred by their index number: if a function returns e.g. an array containing species densities these are ordered as electrons first by different ion species in no particular order. However, the order is invariant and consistent across all functions.
Maximum number of plasma species is defined by MAX_SPECIES in ascot5.h.
Definition in file plasma.c.
void plasma_free | ( | plasma_data * | data | ) |
void plasma_offload | ( | plasma_data * | data | ) |
a5err plasma_eval_temp | ( | real * | temp, |
real | rho, | ||
real | r, | ||
real | phi, | ||
real | z, | ||
real | t, | ||
int | species, | ||
plasma_data * | pls_data ) |
Evaluate plasma temperature.
This function evaluates the temperature of a given plasma species at the given position.
This is a SIMD function.
temp | array where evaluated temperature [J] is stored |
rho | normalized poloidal flux coordinate |
r | R-coordinate [m] |
phi | phi-coordinate [rad] |
z | z-coordinate [m] |
t | time coordinate [s] |
species | index of plasma species, 1 refers to electrons |
pls_data | pointer to plasma data struct |
a5err plasma_eval_dens | ( | real * | dens, |
real | rho, | ||
real | r, | ||
real | phi, | ||
real | z, | ||
real | t, | ||
int | species, | ||
plasma_data * | pls_data ) |
Evaluate plasma density.
This function evaluates the density of a plasma species at the given radial coordinate.
This is a SIMD function.
dens | array where evaluated density will be stored |
rho | normalized poloidal flux coordinate |
r | R-coordinate [m] |
phi | phi-coordinate [rad] |
z | z-coordinate [m] |
t | time coordinate [s] |
species | index of plasma species, 1 refers to electrons |
pls_data | pointer to plasma data struct |
a5err plasma_eval_densandtemp | ( | real * | dens, |
real * | temp, | ||
real | rho, | ||
real | r, | ||
real | phi, | ||
real | z, | ||
real | t, | ||
plasma_data * | pls_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.
This is a SIMD function.
dens | pointer where density [m^-3] will be stored |
temp | pointer where temperature [J] will be stored |
rho | normalized poloidal flux coordinate |
r | R-coordinate [m] |
phi | phi-coordinate [rad] |
z | z-coordinate [m] |
t | time coordinate [s] |
pls_data | pointer to plasma data struct |
int plasma_get_n_species | ( | plasma_data * | pls_data | ) |
const real * plasma_get_species_mass | ( | plasma_data * | pls_data | ) |
const real * plasma_get_species_charge | ( | plasma_data * | pls_data | ) |
const int * plasma_get_species_znum | ( | plasma_data * | pls_data | ) |
const int * plasma_get_species_anum | ( | plasma_data * | pls_data | ) |