diff options
Diffstat (limited to 'Source/QED/QuantumSyncEngineWrapper.H')
-rw-r--r-- | Source/QED/QuantumSyncEngineWrapper.H | 64 |
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 ============================= |