diff options
Diffstat (limited to 'Source/Particles/MultiParticleContainer.cpp')
-rw-r--r-- | Source/Particles/MultiParticleContainer.cpp | 59 |
1 files changed, 58 insertions, 1 deletions
diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp index c860d21f5..afeac1abd 100644 --- a/Source/Particles/MultiParticleContainer.cpp +++ b/Source/Particles/MultiParticleContainer.cpp @@ -5,7 +5,6 @@ #include <limits> #include <algorithm> #include <string> -#include <memory> using namespace amrex; @@ -740,11 +739,69 @@ void MultiParticleContainer::InitQED () if(pc->has_quantum_sync()){ pc->set_quantum_sync_engine_ptr (std::make_shared<QuantumSynchrotronEngine>(qs_engine)); + someone_has_quantum_sync = true; } if(pc->has_breit_wheeler()){ pc->set_breit_wheeler_engine_ptr (std::make_shared<BreitWheelerEngine>(bw_engine)); + someone_has_breit_wheeler = true; } } + + if(someone_has_quantum_sync) + InitQuantumSync(); + + if(someone_has_breit_wheeler) + InitBreitWheeler(); + +} + +void MultiParticleContainer::InitQuantumSync () +{ + bool is_custom; + PicsarQuantumSynchrotronCtrl ctrl; + std::string filename; + std::tie(is_custom, filename, ctrl) = ParseQuantumSyncParams(); + + // if(ParallelDescriptor::IOProcessor()){ + // qs_engine.compute_lookup_tables_default(); + // qs_engine.write_lookup_tables("qed_qs_lookup.bin"); + // } + // amrex::ParallelDescriptor::Barrier(); + // qs_engine.read_lookup_tables("qed_qs_lookup.bin"); +} + +void MultiParticleContainer::InitBreitWheeler () +{ + bool is_custom; + PicsarBreitWheelerCtrl ctrl; + std::string filename; + std::tie(is_custom, filename, ctrl) = ParseBreitWheelerParams(); + + // if(ParallelDescriptor::IOProcessor()){ + // bw_engine.compute_lookup_tables_default(); + // bw_engine.write_lookup_tables("qed_bw_lookup.bin"); + // } + // amrex::ParallelDescriptor::Barrier(); + // bw_engine.read_lookup_tables("qed_bw_lookup.bin"); + +} + +std::tuple<bool,std::string,PicsarQuantumSynchrotronCtrl> +MultiParticleContainer::ParseQuantumSyncParams () +{ + PicsarQuantumSynchrotronCtrl ctrl; + bool is_custom{false}; + + return std::make_tuple(is_custom, std::string(""), ctrl); +} + +std::tuple<bool,std::string,PicsarBreitWheelerCtrl> +MultiParticleContainer::ParseBreitWheelerParams () +{ + PicsarBreitWheelerCtrl ctrl; + bool is_custom{false}; + + return std::make_tuple(is_custom, std::string(""), ctrl); } #endif |