diff options
Diffstat (limited to 'Source/Parallelization')
-rw-r--r-- | Source/Parallelization/WarpXRegrid.cpp | 76 |
1 files changed, 38 insertions, 38 deletions
diff --git a/Source/Parallelization/WarpXRegrid.cpp b/Source/Parallelization/WarpXRegrid.cpp index 4d10b3691..358316fc9 100644 --- a/Source/Parallelization/WarpXRegrid.cpp +++ b/Source/Parallelization/WarpXRegrid.cpp @@ -148,12 +148,12 @@ WarpX::LoadBalance () template <typename MultiFabType> void RemakeMultiFab (std::unique_ptr<MultiFabType>& mf, const DistributionMapping& dm, - const bool redistribute) + const bool redistribute, const int lev) { if (mf == nullptr) return; const IntVect& ng = mf->nGrowVect(); std::unique_ptr<MultiFabType> pmf; - WarpX::AllocInitMultiFab(pmf, mf->boxArray(), dm, mf->nComp(), ng, mf->tags()[0]); + WarpX::AllocInitMultiFab(pmf, mf->boxArray(), dm, mf->nComp(), ng, lev, mf->tags()[0]); if (redistribute) pmf->Redistribute(*mf, 0, 0, mf->nComp(), ng); mf = std::move(pmf); } @@ -168,50 +168,50 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi // Fine patch for (int idim=0; idim < 3; ++idim) { - RemakeMultiFab(Bfield_fp[lev][idim], dm, true); - RemakeMultiFab(Efield_fp[lev][idim], dm, true); + RemakeMultiFab(Bfield_fp[lev][idim], dm, true ,lev); + RemakeMultiFab(Efield_fp[lev][idim], dm, true ,lev); if (add_external_B_field) { - RemakeMultiFab(Bfield_fp_external[lev][idim], dm, true); + RemakeMultiFab(Bfield_fp_external[lev][idim], dm, true ,lev); } if (add_external_E_field) { - RemakeMultiFab(Efield_fp_external[lev][idim], dm, true); + RemakeMultiFab(Efield_fp_external[lev][idim], dm, true ,lev); } - RemakeMultiFab(current_fp[lev][idim], dm, false); - RemakeMultiFab(current_store[lev][idim], dm, false); + RemakeMultiFab(current_fp[lev][idim], dm, false ,lev); + RemakeMultiFab(current_store[lev][idim], dm, false ,lev); if (current_deposition_algo == CurrentDepositionAlgo::Vay) { - RemakeMultiFab(current_fp_vay[lev][idim], dm, false); + RemakeMultiFab(current_fp_vay[lev][idim], dm, false ,lev); } if (do_current_centering) { - RemakeMultiFab(current_fp_nodal[lev][idim], dm, false); + RemakeMultiFab(current_fp_nodal[lev][idim], dm, false ,lev); } if (fft_do_time_averaging) { - RemakeMultiFab(Efield_avg_fp[lev][idim], dm, true); - RemakeMultiFab(Bfield_avg_fp[lev][idim], dm, true); + RemakeMultiFab(Efield_avg_fp[lev][idim], dm, true ,lev); + RemakeMultiFab(Bfield_avg_fp[lev][idim], dm, true ,lev); } #ifdef AMREX_USE_EB if (WarpX::electromagnetic_solver_id != ElectromagneticSolverAlgo::PSATD) { - RemakeMultiFab(m_edge_lengths[lev][idim], dm, false); - RemakeMultiFab(m_face_areas[lev][idim], dm, false); + RemakeMultiFab(m_edge_lengths[lev][idim], dm, false ,lev); + RemakeMultiFab(m_face_areas[lev][idim], dm, false ,lev); if(WarpX::electromagnetic_solver_id == ElectromagneticSolverAlgo::ECT){ - RemakeMultiFab(Venl[lev][idim], dm, false); - RemakeMultiFab(m_flag_info_face[lev][idim], dm, false); - RemakeMultiFab(m_flag_ext_face[lev][idim], dm, false); - RemakeMultiFab(m_area_mod[lev][idim], dm, false); - RemakeMultiFab(ECTRhofield[lev][idim], dm, false); + RemakeMultiFab(Venl[lev][idim], dm, false ,lev); + RemakeMultiFab(m_flag_info_face[lev][idim], dm, false ,lev); + RemakeMultiFab(m_flag_ext_face[lev][idim], dm, false ,lev); + RemakeMultiFab(m_area_mod[lev][idim], dm, false ,lev); + RemakeMultiFab(ECTRhofield[lev][idim], dm, false ,lev); m_borrowing[lev][idim] = std::make_unique<amrex::LayoutData<FaceInfoBox>>(amrex::convert(ba, Bfield_fp[lev][idim]->ixType().toIntVect()), dm); } } #endif } - RemakeMultiFab(F_fp[lev], dm, true); - RemakeMultiFab(rho_fp[lev], dm, false); + RemakeMultiFab(F_fp[lev], dm, true ,lev); + RemakeMultiFab(rho_fp[lev], dm, false ,lev); // phi_fp should be redistributed since we use the solution from // the last step as the initial guess for the next solve - RemakeMultiFab(phi_fp[lev], dm, true); + RemakeMultiFab(phi_fp[lev], dm, true ,lev); #ifdef AMREX_USE_EB - RemakeMultiFab(m_distance_to_eb[lev], dm, false); + RemakeMultiFab(m_distance_to_eb[lev], dm, false ,lev); int max_guard = guard_cells.ng_FieldSolver.max(); m_field_factory[lev] = amrex::makeEBFabFactory(Geom(lev), ba, dm, @@ -267,8 +267,8 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi } else { for (int idim=0; idim < 3; ++idim) { - RemakeMultiFab(Bfield_aux[lev][idim], dm, false); - RemakeMultiFab(Efield_aux[lev][idim], dm, false); + RemakeMultiFab(Bfield_aux[lev][idim], dm, false ,lev); + RemakeMultiFab(Efield_aux[lev][idim], dm, false ,lev); } } @@ -276,16 +276,16 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi if (lev > 0) { for (int idim=0; idim < 3; ++idim) { - RemakeMultiFab(Bfield_cp[lev][idim], dm, true); - RemakeMultiFab(Efield_cp[lev][idim], dm, true); - RemakeMultiFab(current_cp[lev][idim], dm, false); + RemakeMultiFab(Bfield_cp[lev][idim], dm, true ,lev); + RemakeMultiFab(Efield_cp[lev][idim], dm, true ,lev); + RemakeMultiFab(current_cp[lev][idim], dm, false ,lev); if (fft_do_time_averaging) { - RemakeMultiFab(Efield_avg_cp[lev][idim], dm, true); - RemakeMultiFab(Bfield_avg_cp[lev][idim], dm, true); + RemakeMultiFab(Efield_avg_cp[lev][idim], dm, true ,lev); + RemakeMultiFab(Bfield_avg_cp[lev][idim], dm, true ,lev); } } - RemakeMultiFab(F_cp[lev], dm, true); - RemakeMultiFab(rho_cp[lev], dm, false); + RemakeMultiFab(F_cp[lev], dm, true ,lev); + RemakeMultiFab(rho_cp[lev], dm, false ,lev); #ifdef WARPX_USE_PSATD if (electromagnetic_solver_id == ElectromagneticSolverAlgo::PSATD) { @@ -325,14 +325,14 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi if (lev > 0 && (n_field_gather_buffer > 0 || n_current_deposition_buffer > 0)) { for (int idim=0; idim < 3; ++idim) { - RemakeMultiFab(Bfield_cax[lev][idim], dm, false); - RemakeMultiFab(Efield_cax[lev][idim], dm, false); - RemakeMultiFab(current_buf[lev][idim], dm, false); + RemakeMultiFab(Bfield_cax[lev][idim], dm, false ,lev); + RemakeMultiFab(Efield_cax[lev][idim], dm, false ,lev); + RemakeMultiFab(current_buf[lev][idim], dm, false ,lev); } - RemakeMultiFab(charge_buf[lev], dm, false); + RemakeMultiFab(charge_buf[lev], dm, false ,lev); // we can avoid redistributing these since we immediately re-build the values via BuildBufferMasks() - RemakeMultiFab(current_buffer_masks[lev], dm, false); - RemakeMultiFab(gather_buffer_masks[lev], dm, false); + RemakeMultiFab(current_buffer_masks[lev], dm, false ,lev); + RemakeMultiFab(gather_buffer_masks[lev], dm, false ,lev); if (current_buffer_masks[lev] || gather_buffer_masks[lev]) BuildBufferMasks(); |