XGC1
 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 
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  double loop_voltage;
23 #ifdef DELTAF_CONV
24  bool dwdt_exb_only;
25  bool dwdt_fix_bg;
26 #endif
27 #ifdef EXPLICIT_EM
28  bool em_mixed_variable;
29  bool em_control_variate;
30  int em_pullback_mode;
31 #ifdef EM_B_PARA_EFF
32  bool em_b_para_eff;
33 #endif
34 #endif
35 #ifdef MULTI_RATE
36  int mr_factor[5];
37  double mr_psi_max[5];
38 #endif
39 
40 
41  PushControls(const Simulation<DeviceType>& sml, int ipc_in) :
42  bounce(sml.bounce),
46  neutrals(sml.neutrals),
50  drift_on(sml.drift_on),
51  gstep(sml.gstep),
52  ipc(ipc_in),
53  time(sml.time),
56 #ifdef DELTAF_CONV
57  ,dwdt_exb_only(sml.dwdt_exb_only),
58  dwdt_fix_bg(sml.dwdt_fix_bg)
59 #endif
60 #ifdef EXPLICIT_EM
61  , em_mixed_variable(sml.em_mixed_variable),
62  em_control_variate(sml.em_control_variate),
63  em_pullback_mode(sml.em_pullback_mode)
64 #ifdef EM_B_PARA_EFF
65  , em_b_para_eff(sml.em_b_para_eff)
66 #endif
67 #endif
68 #ifdef MULTI_RATE
69  , mr_factor{sml.mr_factor[0], sml.mr_factor[1], sml.mr_factor[2],
70  sml.mr_factor[3], sml.mr_factor[4]},
71  mr_psi_max{sml.mr_psi_max[0], sml.mr_psi_max[1], sml.mr_psi_max[2],
72  sml.mr_psi_max[3], sml.mr_psi_max[4]}
73 #endif
74  {}
75 };
76 
77 #endif
PushControls(const Simulation< DeviceType > &sml, int ipc_in)
Definition: push_controls.hpp:41
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 loop_voltage_psimax
Definition: push_controls.hpp:22
double bounce_buffer
Definition: push_controls.hpp:11
int mr_factor[5]
Definition: sml.hpp:147
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
double loop_voltage
Definition: push_controls.hpp:21
bool ptb_3db_on
Definition: push_controls.hpp:16