aboutsummaryrefslogtreecommitdiff
path: root/Source/QED/QuantumSyncEngineWrapper.H
diff options
context:
space:
mode:
Diffstat (limited to 'Source/QED/QuantumSyncEngineWrapper.H')
-rw-r--r--Source/QED/QuantumSyncEngineWrapper.H64
1 files changed, 36 insertions, 28 deletions
diff --git a/Source/QED/QuantumSyncEngineWrapper.H b/Source/QED/QuantumSyncEngineWrapper.H
index 7d6657988..6afcd9313 100644
--- a/Source/QED/QuantumSyncEngineWrapper.H
+++ b/Source/QED/QuantumSyncEngineWrapper.H
@@ -78,16 +78,12 @@ public:
* allocations should be triggered on GPU
*/
QuantumSynchrotronEvolveOpticalDepth(
- const PicsarQuantumSynchrotronCtrl t_ctrl,
- size_t KKfunc_size,
- amrex::Real* p_KKfunc_coords,
- amrex::Real* p_KKfunc_data):
- ctrl{t_ctrl},
- lookup_table{
- KKfunc_size,
- p_KKfunc_coords,
- p_KKfunc_data
- }{};
+ QuantumSynchrotronEngineInnards& r_innards):
+ ctrl{r_innards.ctrl},
+ m_KKfunc_size{r_innards.KKfunc_coords.size()},
+ m_p_KKfunc_coords{r_innards.KKfunc_coords.dataPtr()},
+ m_p_KKfunc_data{r_innards.KKfunc_data.dataPtr()}
+ {};
/**
* Evolves the optical depth. It can be used on GPU.
@@ -120,7 +116,10 @@ public:
dt, opt_depth,
has_event_happend, unused_event_time,
dummy_lambda,
- lookup_table,
+ picsar::multi_physics::lookup_1d<amrex::Real>{
+ m_KKfunc_size,
+ m_p_KKfunc_coords,
+ m_p_KKfunc_data},
ctrl);
return has_event_happend;
@@ -131,7 +130,11 @@ private:
const amrex::Real dummy_lambda{1.0};
const PicsarQuantumSynchrotronCtrl ctrl;
- const picsar::multi_physics::lookup_1d<amrex::Real> lookup_table;
+
+ //lookup table data
+ size_t m_KKfunc_size;
+ amrex::Real* m_p_KKfunc_coords;
+ amrex::Real* m_p_KKfunc_data;
};
/**
@@ -148,20 +151,14 @@ public:
* allocations should be triggered on GPU
*/
QuantumSynchrotronGeneratePhotonAndUpdateMomentum(
- const PicsarQuantumSynchrotronCtrl t_ctrl,
- size_t cum_distrib_coords_1_size,
- size_t cum_distrib_coords_2_size,
- amrex::Real* p_cum_distrib_coords_1,
- amrex::Real* p_cum_distrib_coords_2,
- amrex::Real* p_cum_distrib_data):
- ctrl{t_ctrl},
- lookup_table{
- cum_distrib_coords_1_size,
- p_cum_distrib_coords_1,
- cum_distrib_coords_2_size,
- p_cum_distrib_coords_2,
- p_cum_distrib_data
- }{};
+ QuantumSynchrotronEngineInnards& r_innards):
+ ctrl{r_innards.ctrl},
+ m_cum_distrib_coords_1_size{r_innards.cum_distrib_coords_1.size()},
+ m_cum_distrib_coords_2_size{r_innards.cum_distrib_coords_2.size()},
+ m_p_distrib_coords_1{r_innards.cum_distrib_coords_1.data()},
+ m_p_distrib_coords_2{r_innards.cum_distrib_coords_2.data()},
+ m_p_cum_distrib_data{r_innards.cum_distrib_data.data()}
+ {};
/**
* Generates sampling (template parameter) photons according to Quantum Synchrotron process.
@@ -198,7 +195,12 @@ public:
g_px, g_py, g_pz,
g_weight,
dummy_lambda,
- lookup_table,
+ picsar::multi_physics::lookup_2d<amrex::Real>{
+ m_cum_distrib_coords_1_size,
+ m_p_distrib_coords_1,
+ m_cum_distrib_coords_2_size,
+ m_p_distrib_coords_2,
+ m_p_cum_distrib_data},
ctrl,
rand_zero_one_minus_epsi.data());
}
@@ -208,7 +210,13 @@ private:
const amrex::Real dummy_lambda{1.0};
const PicsarQuantumSynchrotronCtrl ctrl;
- const picsar::multi_physics::lookup_2d<amrex::Real> lookup_table;
+
+ //lookup table data
+ size_t m_cum_distrib_coords_1_size;
+ size_t m_cum_distrib_coords_2_size;
+ amrex::Real* m_p_distrib_coords_1;
+ amrex::Real* m_p_distrib_coords_2;
+ amrex::Real* m_p_cum_distrib_data;
};
// Factory class =============================