XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
push_controls.hpp
Go to the documentation of this file.
1 #ifndef PUSH_CONTROLS_HPP
2 #define PUSH_CONTROLS_HPP
3 
4 #include "sml.hpp"
5 #include "particle_stream.hpp"
6 
7 /* PushControls contains all of the parameters from sml that get used in the push kernel
8  * */
9 struct PushControls{
10  int bounce;
12  double bounce_buffer;
14  bool neutrals;
17  bool ptb_3db_on;
18  bool drift_on;
19  int gstep;
20  int ipc;
21  double time;
23  double loop_voltage;
25 #ifdef DELTAF_CONV
26  bool dwdt_exb_only;
27  bool dwdt_fix_bg;
28 #endif
29 #ifdef EXPLICIT_EM
30  bool em_mixed_variable;
31  bool em_control_variate;
32  int em_pullback_mode;
33 #ifdef EM_B_PARA_EFF
34  bool em_b_para_eff;
35 #endif
36 #endif
37 #ifdef MULTI_RATE
38  int mr_factor;
39  double mr_psi_max;
40 #endif
41 #ifdef GB2024
42  const ParticleStream particle_stream;
43 #endif
44 
45 
46  PushControls(const Simulation<DeviceType>& sml, int ipc_in, const ParticleStream &particle_stream_in) :
47  bounce(sml.bounce),
51  neutrals(sml.neutrals),
55  drift_on(sml.drift_on),
56  gstep(sml.gstep),
57  ipc(ipc_in),
58  time(sml.time),
62 #ifdef DELTAF_CONV
63  ,dwdt_exb_only(sml.dwdt_exb_only),
64  dwdt_fix_bg(sml.dwdt_fix_bg)
65 #endif
66 #ifdef EXPLICIT_EM
67  , em_mixed_variable(sml.em_mixed_variable),
68  em_control_variate(sml.em_control_variate),
69  em_pullback_mode(sml.em_pullback_mode)
70 #ifdef EM_B_PARA_EFF
71  , em_b_para_eff(sml.em_b_para_eff)
72 #endif
73 #endif
74 #ifdef MULTI_RATE
75  , mr_factor(sml.mr_factor),
76  mr_psi_max(sml.mr_psi_max)
77 #endif
78 #ifdef GB2024
79  , particle_stream(particle_stream_in)
80 #endif
81  {}
82 };
83 
84 #endif
double time
Definition: push_controls.hpp:21
bool electron_on
Definition: push_controls.hpp:15
bool drift_on
Definition: push_controls.hpp:18
Definition: sml.hpp:8
bool neutrals
Definition: push_controls.hpp:14
int sheath_mode
Definition: push_controls.hpp:13
Definition: push_controls.hpp:9
double loop_voltage_psimax
Definition: push_controls.hpp:24
double bounce_buffer
Definition: push_controls.hpp:12
int bounce
Definition: push_controls.hpp:10
bool loop_voltage_on
Definition: push_controls.hpp:22
bool diag_heat_on
Definition: push_controls.hpp:16
int gstep
Definition: push_controls.hpp:19
int ipc
Definition: push_controls.hpp:20
Definition: particle_stream.hpp:6
int bounce_zero_weight
Definition: push_controls.hpp:11
double loop_voltage
Definition: push_controls.hpp:23
PushControls(const Simulation< DeviceType > &sml, int ipc_in, const ParticleStream &particle_stream_in)
Definition: push_controls.hpp:46
bool ptb_3db_on
Definition: push_controls.hpp:17