aboutsummaryrefslogtreecommitdiff
path: root/Source/QED
diff options
context:
space:
mode:
Diffstat (limited to 'Source/QED')
-rw-r--r--Source/QED/BreitWheelerEngineWrapper.cpp34
-rw-r--r--Source/QED/BreitWheelerEngineWrapper.h12
2 files changed, 44 insertions, 2 deletions
diff --git a/Source/QED/BreitWheelerEngineWrapper.cpp b/Source/QED/BreitWheelerEngineWrapper.cpp
index 97934589a..36d19838c 100644
--- a/Source/QED/BreitWheelerEngineWrapper.cpp
+++ b/Source/QED/BreitWheelerEngineWrapper.cpp
@@ -82,6 +82,40 @@ bool BreitWheelerEngine::are_lookup_tables_initialized () const
return lookup_tables_initialized;
}
+
+// Writes lookup tables on disk in 'folder'
+// return false if it fails. */
+bool BreitWheelerEngine::write_lookup_tables (
+ std::string folder) const
+{
+ if(!lookup_tables_initialized)
+ return false;
+
+ auto all_data = make_tuple(
+ std::ref(innards.ctrl.chi_phot_min),
+ std::ref(innards.ctrl.chi_phot_tdndt_min),
+ std::ref(innards.ctrl.chi_phot_tdndt_max),
+ std::ref(innards.ctrl.chi_phot_tdndt_how_many),
+ std::ref(innards.ctrl.chi_phot_tpair_min),
+ std::ref(innards.ctrl.chi_phot_tpair_max),
+ std::ref(innards.ctrl.chi_phot_tpair_how_many),
+ std::ref(innards.ctrl.chi_frac_tpair_how_many),
+ std::ref(innards.TTfunc_coords),
+ std::ref(innards.TTfunc_data));
+
+
+
+
+ char* data_dump = new char(buf_size);
+
+ size_t count = 0;
+ auto copy_and_advance = [&count] (char* source, char*dest, size_t size) {
+ count += size;
+ };
+
+ return true;
+}
+
//Private function which actually computes the lookup tables
void BreitWheelerEngine::computes_lookup_tables (
WarpXBreitWheelerWrapperCtrl ctrl)
diff --git a/Source/QED/BreitWheelerEngineWrapper.h b/Source/QED/BreitWheelerEngineWrapper.h
index aaa94c0ec..a841f48a5 100644
--- a/Source/QED/BreitWheelerEngineWrapper.h
+++ b/Source/QED/BreitWheelerEngineWrapper.h
@@ -3,6 +3,10 @@
#include "QedWrapperCommons.h"
+#include<string>
+#include<vector>
+#include<tuple>
+
//BW ENGINE from PICSAR
#include "breit_wheeler_engine.hpp"
@@ -20,8 +24,8 @@ struct BreitWheelerEngineInnards
WarpXBreitWheelerWrapperCtrl ctrl;
//Lookup table data
- amrex::Gpu::ManagedDeviceVector<amrex::Real> TTfunc_coords;
- amrex::Gpu::ManagedDeviceVector<amrex::Real> TTfunc_data;
+ amrex::Gpu::ManagedVector<amrex::Real> TTfunc_coords;
+ amrex::Gpu::ManagedVector<amrex::Real> TTfunc_data;
//______
};
@@ -84,6 +88,10 @@ public:
/* \brief Checks if lookup tables are properly initialized */
bool are_lookup_tables_initialized () const;
+ /* \brief Writes lookup tables on disk in 'file'
+ * return false if it fails. */
+ bool write_lookup_tables (std::string file) const;
+
private:
bool lookup_tables_initialized = false;