XGCa
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 drift_on;
18  int gstep;
19  int ipc;
20  double time;
25 #ifdef EXPLICIT_EM
26  bool em_mixed_variable;
27  bool em_control_variate;
28  PullbackMethod em_pullback_method;
29 #ifdef EM_B_PARA_EFF
30  bool em_b_para_eff;
31 #endif
32 #endif
33 #ifdef GB2024
34  const ParticleStream particle_stream;
35 #endif
36 
37 
38  PushControls(const Simulation<DeviceType>& sml, int ipc_in, const ParticleStream &particle_stream_in) :
39  bounce(sml.bounce),
43  neutrals(sml.neutrals),
46  drift_on(sml.drift_on),
47  gstep(sml.gstep),
48  ipc(ipc_in),
49  time(sml.time),
54 #ifdef EXPLICIT_EM
55  , em_mixed_variable(sml.em_mixed_variable),
56  em_control_variate(sml.em_control_variate),
57  em_pullback_method(sml.em_pullback_method)
58 #ifdef EM_B_PARA_EFF
59  , em_b_para_eff(sml.em_b_para_eff)
60 #endif
61 #endif
62 #ifdef GB2024
63  , particle_stream(particle_stream_in)
64 #endif
65  {}
66 };
67 
68 #endif
Definition: particle_stream.hpp:6
Definition: sml.hpp:9
PullbackMethod
Definition: globals.hpp:198
Definition: push_controls.hpp:9
bool drift_on
Definition: push_controls.hpp:17
PushControls(const Simulation< DeviceType > &sml, int ipc_in, const ParticleStream &particle_stream_in)
Definition: push_controls.hpp:38
bool electron_on
Definition: push_controls.hpp:15
int gstep
Definition: push_controls.hpp:18
int ipc
Definition: push_controls.hpp:19
bool neutrals
Definition: push_controls.hpp:14
int bounce_zero_weight
Definition: push_controls.hpp:11
bool loop_voltage_on
Definition: push_controls.hpp:21
double bounce_buffer
Definition: push_controls.hpp:12
int sheath_mode
Definition: push_controls.hpp:13
bool dwdt_exb_only
Definition: push_controls.hpp:23
double time
Definition: push_controls.hpp:20
double loop_voltage_psimax
Definition: push_controls.hpp:22
bool diag_heat_on
Definition: push_controls.hpp:16
int bounce
Definition: push_controls.hpp:10
bool dwdt_fix_bg
Definition: push_controls.hpp:24