aboutsummaryrefslogtreecommitdiff
path: root/Source/Diagnostics/FieldIO.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Diagnostics/FieldIO.cpp')
-rw-r--r--Source/Diagnostics/FieldIO.cpp27
1 files changed, 15 insertions, 12 deletions
diff --git a/Source/Diagnostics/FieldIO.cpp b/Source/Diagnostics/FieldIO.cpp
index 03e5e07d5..7d6ca85e2 100644
--- a/Source/Diagnostics/FieldIO.cpp
+++ b/Source/Diagnostics/FieldIO.cpp
@@ -1,6 +1,5 @@
-/* Copyright 2019-2020 Andrew Myers, Axel Huebl, David Grote
- * Maxence Thevenet, Remi Lehe, Revathi Jambunathan
- * Weiqun Zhang
+/* Copyright 2019-2020 Andrew Myers, Axel Huebl, David Grote, Maxence Thevenet,
+ * Remi Lehe, Revathi Jambunathan, Weiqun Zhang, Edoardo Zoni
*
* This file is part of WarpX.
*
@@ -13,7 +12,10 @@
#include <AMReX_Interpolater.H>
#ifdef WARPX_USE_OPENPMD
-# include <openPMD/openPMD.hpp>
+#include <openPMD/openPMD.hpp>
+#endif
+#ifdef WARPX_USE_PSATD
+#include <SpectralSolver.H>
#endif
@@ -643,15 +645,16 @@ WarpX::AverageAndPackFields ( Vector<std::string>& varnames,
Bfield_aux[lev][2].get()},
WarpX::CellSize(lev) );
} else if (fieldname == "divE"){
- if (do_nodal) amrex::Abort("TODO: do_nodal && plot dive");
+ if (do_nodal) amrex::Abort("TODO: do_nodal && plot divE");
const BoxArray& ba = amrex::convert(boxArray(lev),IntVect::TheUnitVector());
- MultiFab dive(ba,DistributionMap(lev),1,0);
- ComputeDivE( dive, 0,
- {Efield_aux[lev][0].get(),
- Efield_aux[lev][1].get(),
- Efield_aux[lev][2].get()},
- WarpX::CellSize(lev) );
- AverageAndPackScalarField( mf_avg[lev], dive, dcomp++, ngrow );
+ MultiFab divE( ba, DistributionMap(lev), 1, 0 );
+#ifdef WARPX_USE_PSATD
+ spectral_solver_fp[lev]->ComputeSpectralDivE( Efield_aux[lev], divE );
+#else
+ ComputeDivE( divE, 0, {Efield_aux[lev][0].get(), Efield_aux[lev][1].get(),
+ Efield_aux[lev][2].get()}, WarpX::CellSize(lev) );
+#endif
+ AverageAndPackScalarField( mf_avg[lev], divE, dcomp++, ngrow );
} else {
amrex::Abort("unknown field in fields_to_plot: " + fieldname);
}