XGCa
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator 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 
6 /* PushControls contains all of the parameters from sml that get used in the push kernel
7  * */
8 struct PushControls{
9  int bounce;
11  double bounce_buffer;
13  bool neutrals;
16  bool ptb_3db_on;
17  bool drift_on;
18  int gstep;
19  int ipc;
20  double time;
21 #ifdef DELTAF_CONV
22  int deltaf_f0_mode;
23  bool dwdt_exb_only;
24  bool dwdt_fix_bg;
25 #endif
26 #ifdef EXPLICIT_EM
27  bool em_mixed_variable;
28  bool em_control_variate;
29  int em_pullback_mode;
30 #ifdef EM_B_PARA_EFF
31  bool em_b_para_eff;
32 #endif
33 #endif
34 #ifdef MULTI_RATE
35  int mr_factor[5];
36  double mr_psi_max[5];
37 #endif
38 
39 
40  PushControls(const Simulation<DeviceType>& sml, int ipc_in) :
41  bounce(sml.bounce),
45  neutrals(sml.neutrals),
49  drift_on(sml.drift_on),
50  gstep(sml.gstep),
51  ipc(ipc_in),
52  time(sml.time)
53 #ifdef DELTAF_CONV
54  , deltaf_f0_mode(sml.deltaf_f0_mode),
55  dwdt_exb_only(sml.dwdt_exb_only),
56  dwdt_fix_bg(sml.dwdt_fix_bg)
57 #endif
58 #ifdef EXPLICIT_EM
59  , em_mixed_variable(sml.em_mixed_variable),
60  em_control_variate(sml.em_control_variate),
61  em_pullback_mode(sml.em_pullback_mode)
62 #ifdef EM_B_PARA_EFF
63  , em_b_para_eff(sml.em_b_para_eff)
64 #endif
65 #endif
66 #ifdef MULTI_RATE
67  , mr_factor{sml.mr_factor[0], sml.mr_factor[1], sml.mr_factor[2],
68  sml.mr_factor[3], sml.mr_factor[4]},
69  mr_psi_max{sml.mr_psi_max[0], sml.mr_psi_max[1], sml.mr_psi_max[2],
70  sml.mr_psi_max[3], sml.mr_psi_max[4]}
71 #endif
72  {}
73 };
74 
75 #endif
PushControls(const Simulation< DeviceType > &sml, int ipc_in)
Definition: push_controls.hpp:40
double time
Definition: push_controls.hpp:20
bool electron_on
Definition: push_controls.hpp:14
bool drift_on
Definition: push_controls.hpp:17
Definition: sml.hpp:8
bool neutrals
Definition: push_controls.hpp:13
int sheath_mode
Definition: push_controls.hpp:12
Definition: push_controls.hpp:8
double bounce_buffer
Definition: push_controls.hpp:11
int mr_factor[5]
Definition: sml.hpp:130
int bounce
Definition: push_controls.hpp:9
bool diag_heat_on
Definition: push_controls.hpp:15
int gstep
Definition: push_controls.hpp:18
int ipc
Definition: push_controls.hpp:19
int bounce_zero_weight
Definition: push_controls.hpp:10
bool ptb_3db_on
Definition: push_controls.hpp:16