ASCOT5
Loading...
Searching...
No Matches
E_field.c
Go to the documentation of this file.
1
16#include <stdio.h>
17#include "ascot5.h"
18#include "error.h"
19#include "print.h"
20#include "E_field.h"
21#include "B_field.h"
22#include "Efield/E_TC.h"
23#include "Efield/E_1DS.h"
24#include "Efield/E_2DS.h"
25
32 switch(data->type) {
34 E_2DS_free(&data->E2DS);
35 break;
37 E_1DS_free(&data->E1DS);
38 break;
39 case E_field_type_TC:
40 E_TC_free(&data->ETC);
41 break;
42 }
43}
44
51 switch(data->type) {
53 E_2DS_offload(&data->E2DS);
54 break;
56 E_1DS_offload(&data->E1DS);
57 break;
58 case E_field_type_TC:
59 E_TC_offload(&data->ETC);
60 break;
61 }
62}
63
90 E_field_data* Edata, B_field_data* Bdata) {
91 a5err err = 0;
92
93 switch(Edata->type) {
94
96 err = E_2DS_eval_E(E, r, z, &(Edata->E2DS));
97 break;
98
100 err = E_1DS_eval_E(E, r, phi, z, &(Edata->E1DS), Bdata);
101 break;
102
103 case E_field_type_TC:
104 err = E_TC_eval_E(E, r, phi, z, &(Edata->ETC), Bdata);
105 break;
106
107 default:
108 /* Unregonized input. Produce error. */
109 err = error_raise( ERR_UNKNOWN_INPUT, __LINE__, EF_E_FIELD );
110 break;
111 }
112
113 return err;
114}
Header file for B_field.c.
void E_1DS_free(E_1DS_data *data)
Free allocated resources.
Definition E_1DS.c:58
void E_1DS_offload(E_1DS_data *data)
Offload data to the accelerator.
Definition E_1DS.c:67
a5err E_1DS_eval_E(real E[3], real r, real phi, real z, E_1DS_data *Edata, B_field_data *Bdata)
Evaluate 1D spline radial electric field.
Definition E_1DS.c:89
Header file for E_1DS.c.
Header file for E_2DS.c.
void E_TC_offload(E_TC_data *data)
Offload data to the accelerator.
Definition E_TC.c:51
a5err E_TC_eval_E(real E[3], real r, real phi, real z, E_TC_data *Edata, B_field_data *Bdata)
Evaluate electric field.
Definition E_TC.c:70
void E_TC_free(E_TC_data *data)
Free allocated resources.
Definition E_TC.c:42
Header file for E_TC.c.
void E_field_free(E_field_data *data)
Free allocated resources.
Definition E_field.c:31
void E_field_offload(E_field_data *data)
Offload data to the accelerator.
Definition E_field.c:50
a5err E_field_eval_E(real E[3], real r, real phi, real z, real t, E_field_data *Edata, B_field_data *Bdata)
Evaluate electric field.
Definition E_field.c:89
Header file for E_field.c.
@ E_field_type_2DS
Definition E_field.h:29
@ E_field_type_TC
Definition E_field.h:27
@ E_field_type_1DS
Definition E_field.h:28
Main header file for ASCOT5.
double real
Definition ascot5.h:85
Error module for ASCOT5.
unsigned long int a5err
Simulation error flag.
Definition error.h:17
@ EF_E_FIELD
Definition error.h:43
@ ERR_UNKNOWN_INPUT
Definition error.h:66
Macros for printing console output.
Magnetic field simulation data.
Definition B_field.h:41
Electric field simulation data.
Definition E_field.h:38
E_TC_data ETC
Definition E_field.h:40
E_2DS_data E2DS
Definition E_field.h:42
E_field_type type
Definition E_field.h:39
E_1DS_data E1DS
Definition E_field.h:41