78 #define PLSPATH "/plasma/plasma_1D_XXXXXXXXXX/"
82 f, qid, __FILE__, __LINE__) ) {
return 1;}
84 f, qid, __FILE__, __LINE__) ) {
return 1;}
86 int* q = (
int*) malloc( n_ions *
sizeof(
int) );
87 int* znum = (
int*) malloc( n_ions *
sizeof(
int) );
88 int* anum = (
int*) malloc( n_ions *
sizeof(
int) );
89 real* mass = (
real*) malloc( ( n_ions + 1 ) *
sizeof(
real) );
90 real* charge = (
real*) malloc( ( n_ions + 1 ) *
sizeof(
real) );
92 f, qid, __FILE__, __LINE__) ) {
return 1;}
94 f, qid, __FILE__, __LINE__) ) {
return 1;}
96 f, qid, __FILE__, __LINE__) ) {
return 1;}
98 f, qid, __FILE__, __LINE__) ) {
return 1;}
100 for(
int i = 0; i < n_ions; i++) {
104 for(
int i = 0; i < n_ions; i++) {
116 f, qid, __FILE__, __LINE__) ) {
return 1;}
118 f, qid, __FILE__, __LINE__) ) {
return 1;}
120 f, qid, __FILE__, __LINE__) ) {
return 1;}
122 f, qid, __FILE__, __LINE__) ) {
return 1;}
124 f, qid, __FILE__, __LINE__) ) {
return 1;}
126 f, qid, __FILE__, __LINE__) ) {
return 1;}
128 for(
int i = 0; i < n_rho; i++) {
133 int err =
plasma_1D_init(data, n_rho, n_ions, rho, anum, znum, mass, charge,
134 Te, Ti, ne, ni, vtor);
158 #define PLSPATH "/plasma/plasma_2D_XXXXXXXXXX/"
161 real rmin, rmax, zmin, zmax;
163 f, qid, __FILE__, __LINE__) ) {
return 1;}
165 f, qid, __FILE__, __LINE__) ) {
return 1;}
167 f, qid, __FILE__, __LINE__) ) {
return 1;}
169 f, qid, __FILE__, __LINE__) ) {
return 1;}
171 f, qid, __FILE__, __LINE__) ) {
return 1;}
173 f, qid, __FILE__, __LINE__) ) {
return 1;}
175 f, qid, __FILE__, __LINE__) ) {
return 1;}
177 int* q = (
int*) malloc( n_ions *
sizeof(
int) );
178 int* znum = (
int*) malloc( n_ions *
sizeof(
int) );
179 int* anum = (
int*) malloc( n_ions *
sizeof(
int) );
180 real* mass = (
real*) malloc( ( n_ions + 1 ) *
sizeof(
real) );
181 real* charge = (
real*) malloc( ( n_ions + 1 ) *
sizeof(
real) );
183 f, qid, __FILE__, __LINE__) ) {
return 1;}
185 f, qid, __FILE__, __LINE__) ) {
return 1;}
187 f, qid, __FILE__, __LINE__) ) {
return 1;}
189 f, qid, __FILE__, __LINE__) ) {
return 1;}
191 for(
int i = 0; i < n_ions; i++) {
195 for(
int i = 0; i < n_ions; i++) {
206 f, qid, __FILE__, __LINE__) ) {
return 1;}
208 f, qid, __FILE__, __LINE__) ) {
return 1;}
210 f, qid, __FILE__, __LINE__) ) {
return 1;}
212 f, qid, __FILE__, __LINE__) ) {
return 1;}
214 f, qid, __FILE__, __LINE__) ) {
return 1;}
216 for(
int i = 0; i < nr * nz; i++) {
222 data, nr, nz, n_ions, rmin, rmax, zmin, zmax, anum, znum, mass, charge,
223 Te, Ti, ne, ni, vtor);
246 #define PLSPATH "/plasma/plasma_1Dt_XXXXXXXXXX/"
249 int n_rho, n_time, n_ions;
251 f, qid, __FILE__, __LINE__) ) {
return 1;}
253 f, qid, __FILE__, __LINE__) ) {
return 1;}
255 f, qid, __FILE__, __LINE__) ) {
return 1;}
257 int* q = (
int*) malloc( n_ions *
sizeof(
int) );
258 int* znum = (
int*) malloc( n_ions *
sizeof(
int) );
259 int* anum = (
int*) malloc( n_ions *
sizeof(
int) );
260 real* mass = (
real*) malloc( ( n_ions + 1 ) *
sizeof(
real) );
261 real* charge = (
real*) malloc( ( n_ions + 1 ) *
sizeof(
real) );
263 f, qid, __FILE__, __LINE__) ) {
return 1;}
265 f, qid, __FILE__, __LINE__) ) {
return 1;}
267 f, qid, __FILE__, __LINE__) ) {
return 1;}
269 f, qid, __FILE__, __LINE__) ) {
return 1;}
271 for(
int i = 0; i < n_ions; i++) {
275 for(
int i = 0; i < n_ions; i++) {
283 f, qid, __FILE__, __LINE__) ) {
return 1;}
285 f, qid, __FILE__, __LINE__) ) {
return 1;}
287 real* vtor = (
real*) malloc( n_time*n_rho*
sizeof(
real) );
291 real* ni = (
real*) malloc( n_time*n_ions*n_rho*
sizeof(
real) );
293 f, qid, __FILE__, __LINE__) ) {
return 1;}
295 f, qid, __FILE__, __LINE__) ) {
return 1;}
297 f, qid, __FILE__, __LINE__) ) {
return 1;}
299 for(
int i_time = 0; i_time < n_time; i_time++) {
300 for(
int i_rho = 0; i_rho < n_rho; i_rho++) {
301 Te[i_time*n_rho+i_rho] *=
CONST_E;
302 Ti[i_time*n_rho+i_rho] *=
CONST_E;
307 f, qid, __FILE__, __LINE__) ) {
return 1;}
309 f, qid, __FILE__, __LINE__) ) {
return 1;}
310 int err =
plasma_1Dt_init(data, n_rho, n_time, n_ions, rho, time, anum,
311 znum, mass, charge, Te, Ti, ne, ni, vtor);
336 #define PLSPATH "/plasma/plasma_1DS_XXXXXXXXXX/"
342 f, qid, __FILE__, __LINE__) ) {
return 1;}
344 f, qid, __FILE__, __LINE__) ) {
return 1;}
346 f, qid, __FILE__, __LINE__) ) {
return 1;}
348 f, qid, __FILE__, __LINE__) ) {
return 1;}
350 int* q = (
int*) malloc( n_ions *
sizeof(
int) );
351 int* znum = (
int*) malloc( n_ions *
sizeof(
int) );
352 int* anum = (
int*) malloc( n_ions *
sizeof(
int) );
353 real* mass = (
real*) malloc( ( n_ions + 1 ) *
sizeof(
real) );
354 real* charge = (
real*) malloc( ( n_ions + 1 ) *
sizeof(
real) );
356 f, qid, __FILE__, __LINE__) ) {
return 1;}
358 f, qid, __FILE__, __LINE__) ) {
return 1;}
360 f, qid, __FILE__, __LINE__) ) {
return 1;}
362 f, qid, __FILE__, __LINE__) ) {
return 1;}
364 for(
int i = 0; i < n_ions; i++) {
368 for(
int i = 0; i < n_ions; i++) {
379 f, qid, __FILE__, __LINE__) ) {
return 1;}
381 f, qid, __FILE__, __LINE__) ) {
return 1;}
383 f, qid, __FILE__, __LINE__) ) {
return 1;}
385 f, qid, __FILE__, __LINE__) ) {
return 1;}
387 f, qid, __FILE__, __LINE__) ) {
return 1;}
389 for(
int i = 0; i < n_rho; i++) {
394 int err =
plasma_1DS_init(data, n_rho, rhomin, rhomax, n_ions, anum, znum,
395 mass, charge, Te, Ti, ne, ni, vtor);
Main header file for ASCOT5.
Header file containing physical and mathematical constants.
#define CONST_U
Atomic mass unit in kilograms [kg].
#define CONST_M_E
Electron mass [kg].
#define CONST_E
Elementary charge [C].
herr_t hdf5_find_group(hid_t loc, const char *path)
Checks if given group exists within given hdf5 file. Negative value is returned if the group doesn't ...
int hdf5_read_double(const char *var, real *ptr, hid_t file, char *qid, const char *errfile, int errline)
Read double-valued data from ASCOT5 HDF5 file.
char * hdf5_gen_path(const char *original, char *qid, char *path)
Generate a valid path from a given template and qid.
int hdf5_read_int(const char *var, int *ptr, hid_t file, char *qid, const char *errfile, int errline)
Read int-valued data from ASCOT5 HDF5 file.
Header file for hdf5_helpers.h.
int hdf5_plasma_read_1Dt(hid_t f, plasma_1Dt_data *data, char *qid)
Read 1Dt plasma data from HDF5 file.
int hdf5_plasma_read_2D(hid_t f, plasma_2D_data *data, char *qid)
Read 2D plasma data from HDF5 file.
int hdf5_plasma_read_1D(hid_t f, plasma_1D_data *data, char *qid)
Read 1D plasma data from HDF5 file.
int hdf5_plasma_init(hid_t f, plasma_data *data, char *qid)
Read plasma data from HDF5 file.
int hdf5_plasma_read_1DS(hid_t f, plasma_1DS_data *data, char *qid)
Load plasma data from HDF5 file and prepare parameters.
Header file for hdf5_plasma.c.
Header file for plasma.c.
int plasma_1DS_init(plasma_1DS_data *data, int nrho, real rhomin, real rhomax, int nion, int *anum, int *znum, real *mass, real *charge, real *Te, real *Ti, real *ne, real *ni, real *vtor)
Initialize 1DS plasma data and check inputs.
Header file for plasma_1DS.c.
int plasma_1D_init(plasma_1D_data *data, int nrho, int nion, real *rho, int *anum, int *znum, real *mass, real *charge, real *Te, real *Ti, real *ne, real *ni, real *vtor)
Initialize 1D plasma data and check inputs.
Header file for plasma_1D.c.
int plasma_1Dt_init(plasma_1Dt_data *data, int nrho, int ntime, int nion, real *rho, real *time, int *anum, int *znum, real *mass, real *charge, real *Te, real *Ti, real *ne, real *ni, real *vtor)
Initialize 1Dt plasma data and check inputs.
Header file for plasma_1Dt.c.
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.
Header file for plasma_2D.c.
1D spline plasma parameters on the target
1D plasma parameters on the target
1D plasma parameters on the target
1D plasma parameters on the target
plasma_1Dt_data plasma_1Dt
plasma_1DS_data plasma_1DS