aboutsummaryrefslogtreecommitdiff
path: root/Source/Diagnostics/WarpXOpenPMD.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Diagnostics/WarpXOpenPMD.cpp')
-rw-r--r--Source/Diagnostics/WarpXOpenPMD.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/Source/Diagnostics/WarpXOpenPMD.cpp b/Source/Diagnostics/WarpXOpenPMD.cpp
index 04877444b..8b7630821 100644
--- a/Source/Diagnostics/WarpXOpenPMD.cpp
+++ b/Source/Diagnostics/WarpXOpenPMD.cpp
@@ -6,6 +6,7 @@
*/
#include "WarpXOpenPMD.H"
#include "FieldIO.H" // for getReversedVec
+#include "Utils/RelativeCellPosition.H"
#include "Utils/WarpXAlgorithmSelection.H"
#include "Utils/WarpXUtil.H"
@@ -792,9 +793,10 @@ WarpXOpenPMDPlot::WriteOpenPMDFields( //const std::string& filename,
// Create a new mesh record component, and store the associated metadata
auto mesh_comp = mesh[comp_name];
mesh_comp.resetDataset( dataset );
- // Cell-centered data: position is at 0.5 of a cell size.
- // TODO: honor nodal/cell centered data per component; reverse order to axisLabel order
- mesh_comp.setPosition( std::vector<double>{AMREX_D_DECL(0.5, 0.5, 0.5)} );
+
+ auto relative_cell_pos = utils::getRelativeCellPosition( mf ); // AMReX Fortran index order
+ std::reverse( relative_cell_pos.begin(), relative_cell_pos.end() ); // now in C order
+ mesh_comp.setPosition( relative_cell_pos );
// Loop through the multifab, and store each box as a chunk,
// in the openPMD file.