diff options
Diffstat (limited to 'Source/WarpXIO.cpp')
-rw-r--r-- | Source/WarpXIO.cpp | 95 |
1 files changed, 49 insertions, 46 deletions
diff --git a/Source/WarpXIO.cpp b/Source/WarpXIO.cpp index 93a359d7c..70985ac7e 100644 --- a/Source/WarpXIO.cpp +++ b/Source/WarpXIO.cpp @@ -488,11 +488,11 @@ WarpX::UpdateInSitu () const Vector<const MultiFab*> srcmf(AMREX_SPACEDIM); PackPlotDataPtrs(srcmf, current_fp[lev]); int dcomp = 0; - amrex::average_edge_to_cellcenter(mf[lev], dcomp, srcmf, ngrow); + amrex::average_edge_to_cellcenter(mf[lev], dcomp, srcmf); #if (AMREX_SPACEDIM == 2) MultiFab::Copy(mf[lev], mf[lev], dcomp+1, dcomp+2, 1, ngrow); - amrex::average_node_to_cellcenter(mf[lev], dcomp+1, *current_fp[lev][1], 0, 1, ngrow); + amrex::average_node_to_cellcenter(mf[lev], dcomp+1, *current_fp[lev][1], 0, 1); #endif if (lev == 0) { @@ -503,10 +503,10 @@ WarpX::UpdateInSitu () const dcomp += 3; PackPlotDataPtrs(srcmf, Efield_aux[lev]); - amrex::average_edge_to_cellcenter(mf[lev], dcomp, srcmf, ngrow); + amrex::average_edge_to_cellcenter(mf[lev], dcomp, srcmf); #if (AMREX_SPACEDIM == 2) MultiFab::Copy(mf[lev], mf[lev], dcomp+1, dcomp+2, 1, ngrow); - amrex::average_node_to_cellcenter(mf[lev], dcomp+1, *Efield_aux[lev][1], 0, 1, ngrow); + amrex::average_node_to_cellcenter(mf[lev], dcomp+1, *Efield_aux[lev][1], 0, 1); #endif if (lev == 0) { @@ -517,10 +517,10 @@ WarpX::UpdateInSitu () const dcomp += 3; PackPlotDataPtrs(srcmf, Bfield_aux[lev]); - amrex::average_face_to_cellcenter(mf[lev], dcomp, srcmf, ngrow); + amrex::average_face_to_cellcenter(mf[lev], dcomp, srcmf); #if (AMREX_SPACEDIM == 2) MultiFab::Copy(mf[lev], mf[lev], dcomp+1, dcomp+2, 1, ngrow); - MultiFab::Copy(mf[lev], *Bfield_aux[lev][1], 0, dcomp+1, 1, ngrow); + MultiFab::Copy(mf[lev], *Bfield_aux[lev][1], 0, dcomp+1, 1, ngrow); #endif if (lev == 0) { @@ -532,14 +532,16 @@ WarpX::UpdateInSitu () const if (plot_part_per_cell) { - MultiFab temp_dat(grids[lev], mf[lev].DistributionMap(), 1, ngrow); - temp_dat.setVal(0, ngrow); + MultiFab temp_dat(grids[lev],mf[lev].DistributionMap(),1,0); + temp_dat.setVal(0); // MultiFab containing number of particles in each cell mypc->Increment(temp_dat, lev); - MultiFab::Copy(mf[lev], temp_dat, 0, dcomp, 1, ngrow); + MultiFab::Copy(mf[lev], temp_dat, 0, dcomp, 1, 0); if (lev == 0) + { varnames.push_back("part_per_cell"); + } dcomp += 1; } @@ -552,13 +554,14 @@ WarpX::UpdateInSitu () const #ifdef _OPENMP #pragma omp parallel #endif - for (MFIter mfi(mf[lev]); mfi.isValid(); ++mfi) - (mf[lev])[mfi].setVal(static_cast<Real>(npart_in_grid[mfi.index()]), dcomp); - - if (lev == 0) - varnames.push_back("part_per_grid"); - - dcomp += 1; + for (MFIter mfi(mf[lev]); mfi.isValid(); ++mfi) { + (mf[lev])[mfi].setVal(static_cast<Real>(npart_in_grid[mfi.index()]), dcomp); + } + if (lev == 0) + { + varnames.push_back("part_per_grid"); + } + dcomp += 1; } if (plot_part_per_proc) @@ -567,30 +570,30 @@ WarpX::UpdateInSitu () const #ifdef _OPENMP #pragma omp parallel reduction(+:n_per_proc) #endif - for (MFIter mfi(mf[lev]); mfi.isValid(); ++mfi) + for (MFIter mfi(mf[lev]); mfi.isValid(); ++mfi) { n_per_proc += npart_in_grid[mfi.index()]; - - mf[lev].setVal(static_cast<Real>(n_per_proc), dcomp, ngrow); - + } + mf[lev].setVal(static_cast<Real>(n_per_proc), dcomp,1); if (lev == 0) + { varnames.push_back("part_per_proc"); - + } dcomp += 1; } } if (plot_proc_number) { - Real procid = static_cast<Real>(ParallelDescriptor::MyProc()); #ifdef _OPENMP #pragma omp parallel #endif - for (MFIter mfi(mf[lev]); mfi.isValid(); ++mfi) - (mf[lev])[mfi].setVal(procid, dcomp); - + for (MFIter mfi(mf[lev]); mfi.isValid(); ++mfi) { + (mf[lev])[mfi].setVal(static_cast<Real>(ParallelDescriptor::MyProc()), dcomp); + } if (lev == 0) + { varnames.push_back("proc_number"); - + } dcomp += 1; } @@ -598,56 +601,56 @@ WarpX::UpdateInSitu () const { ComputeDivB(mf[lev], dcomp, {Bfield_aux[lev][0].get(),Bfield_aux[lev][1].get(),Bfield_aux[lev][2].get()}, - WarpX::CellSize(lev), ngrow); + WarpX::CellSize(lev)); if (lev == 0) + { varnames.push_back("divB"); - + } dcomp += 1; } if (plot_dive) { const BoxArray& ba = amrex::convert(boxArray(lev),IntVect::TheUnitVector()); - MultiFab dive(ba, DistributionMap(lev), 1, ngrow); - + 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), ngrow); - - amrex::average_node_to_cellcenter(mf[lev], dcomp, dive, 0, 1, ngrow); - + WarpX::CellSize(lev)); + amrex::average_node_to_cellcenter(mf[lev], dcomp, dive, 0, 1); if (lev == 0) + { varnames.push_back("divE"); - + } dcomp += 1; } if (plot_rho) { - amrex::average_node_to_cellcenter(mf[lev], dcomp, *rho_fp[lev], 0, 1, ngrow); + amrex::average_node_to_cellcenter(mf[lev], dcomp, *rho_fp[lev], 0, 1); if (lev == 0) + { varnames.push_back("rho"); - + } dcomp += 1; } if (plot_F) { - amrex::average_node_to_cellcenter(mf[lev], dcomp, *F_fp[lev], 0, 1, ngrow); - + amrex::average_node_to_cellcenter(mf[lev], dcomp, *F_fp[lev], 0, 1); if (lev == 0) + { varnames.push_back("F"); - + } dcomp += 1; } if (plot_finepatch) { PackPlotDataPtrs(srcmf, Efield_fp[lev]); - amrex::average_edge_to_cellcenter(mf[lev], dcomp, srcmf, ngrow); + amrex::average_edge_to_cellcenter(mf[lev], dcomp, srcmf); #if (AMREX_SPACEDIM == 2) MultiFab::Copy(mf[lev], mf[lev], dcomp+1, dcomp+2, 1, ngrow); - amrex::average_node_to_cellcenter(mf[lev], dcomp+1, *Efield_fp[lev][1], 0, 1, ngrow); + amrex::average_node_to_cellcenter(mf[lev], dcomp+1, *Efield_fp[lev][1], 0, 1); #endif if (lev == 0) { @@ -658,7 +661,7 @@ WarpX::UpdateInSitu () const dcomp += 3; PackPlotDataPtrs(srcmf, Bfield_fp[lev]); - amrex::average_face_to_cellcenter(mf[lev], dcomp, srcmf, ngrow); + amrex::average_face_to_cellcenter(mf[lev], dcomp, srcmf); #if (AMREX_SPACEDIM == 2) MultiFab::Copy(mf[lev], mf[lev], dcomp+1, dcomp+2, 1, ngrow); MultiFab::Copy(mf[lev], *Bfield_fp[lev][1], 0, dcomp+1, 1, ngrow); @@ -683,10 +686,10 @@ WarpX::UpdateInSitu () const { std::array<std::unique_ptr<MultiFab>, 3> E = getInterpolatedE(lev); PackPlotDataPtrs(srcmf, E); - amrex::average_edge_to_cellcenter(mf[lev], dcomp, srcmf, ngrow); + amrex::average_edge_to_cellcenter(mf[lev], dcomp, srcmf); #if (AMREX_SPACEDIM == 2) MultiFab::Copy(mf[lev], mf[lev], dcomp+1, dcomp+2, 1, ngrow); - amrex::average_node_to_cellcenter(mf[lev], dcomp+1, *E[1], 0, 1, ngrow); + amrex::average_node_to_cellcenter(mf[lev], dcomp+1, *E[1], 0, 1); #endif } if (lev == 0) @@ -706,7 +709,7 @@ WarpX::UpdateInSitu () const { std::array<std::unique_ptr<MultiFab>, 3> B = getInterpolatedB(lev); PackPlotDataPtrs(srcmf, B); - amrex::average_face_to_cellcenter(mf[lev], dcomp, srcmf, ngrow); + amrex::average_face_to_cellcenter(mf[lev], dcomp, srcmf); #if (AMREX_SPACEDIM == 2) MultiFab::Copy(mf[lev], mf[lev], dcomp+1, dcomp+2, 1, ngrow); MultiFab::Copy(mf[lev], *B[1], 0, dcomp+1, 1, ngrow); |