aboutsummaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/Particles/MultiParticleContainer.cpp5
-rw-r--r--Source/Utils/WarpXUtil.H6
-rw-r--r--Source/Utils/WarpXUtil.cpp17
3 files changed, 24 insertions, 4 deletions
diff --git a/Source/Particles/MultiParticleContainer.cpp b/Source/Particles/MultiParticleContainer.cpp
index e825b0f35..462ec36a3 100644
--- a/Source/Particles/MultiParticleContainer.cpp
+++ b/Source/Particles/MultiParticleContainer.cpp
@@ -4,6 +4,7 @@
#include <WarpX_f.H>
#include <WarpX.H>
+#include <WarpXUtil.H>
#include <limits>
#include <algorithm>
@@ -770,7 +771,7 @@ void MultiParticleContainer::InitQuantumSync ()
if(generate_table && ParallelDescriptor::IOProcessor()){
qs_engine.compute_lookup_tables(ctrl);
Vector<char> all_data = qs_engine.export_lookup_tables_data();
- //TODO: WRITE
+ WarpXUtilIO::WriteBinaryDataOnFile(filename, all_data);
}
ParallelDescriptor::Barrier();
@@ -790,7 +791,7 @@ void MultiParticleContainer::InitBreitWheeler ()
if(generate_table && ParallelDescriptor::IOProcessor()){
bw_engine.compute_lookup_tables(ctrl);
Vector<char> all_data = bw_engine.export_lookup_tables_data();
- //TODO: WRITE
+ WarpXUtilIO::WriteBinaryDataOnFile(filename, all_data);
}
ParallelDescriptor::Barrier();
diff --git a/Source/Utils/WarpXUtil.H b/Source/Utils/WarpXUtil.H
index fd6e72dc6..85e6de911 100644
--- a/Source/Utils/WarpXUtil.H
+++ b/Source/Utils/WarpXUtil.H
@@ -2,6 +2,8 @@
#include <AMReX_Vector.H>
#include <AMReX_MultiFab.H>
+#include <string>
+
void ReadBoostedFrameParameters(amrex::Real& gamma_boost, amrex::Real& beta_boost,
amrex::Vector<int>& boost_direction);
@@ -9,3 +11,7 @@ void ConvertLabParamsToBoost();
void NullifyMF(amrex::MultiFab& mf, int lev, amrex::Real zmin,
amrex::Real zmax);
+
+namespace WarpXUtilIO{
+ bool WriteBinaryDataOnFile(std::string filename, const amrex::Vector<char>& data);
+}
diff --git a/Source/Utils/WarpXUtil.cpp b/Source/Utils/WarpXUtil.cpp
index 4b11eb69d..0f2c75a15 100644
--- a/Source/Utils/WarpXUtil.cpp
+++ b/Source/Utils/WarpXUtil.cpp
@@ -1,10 +1,11 @@
-#include <cmath>
-
#include <WarpXUtil.H>
#include <WarpXConst.H>
#include <AMReX_ParmParse.H>
#include <WarpX.H>
+#include <cmath>
+#include <fstream>
+
using namespace amrex;
void ReadBoostedFrameParameters(Real& gamma_boost, Real& beta_boost,
@@ -152,3 +153,15 @@ void NullifyMF(amrex::MultiFab& mf, int lev, amrex::Real zmin, amrex::Real zmax)
}
}
}
+
+
+namespace WarpXUtilIO{
+ bool WriteBinaryDataOnFile(std::string filename, const amrex::Vector<char>& data)
+ {
+ std::ofstream of{filename, std::ios::binary};
+ of.write(data.data(), data.size());
+ of.close();
+ return of.good();
+ }
+}
+