aboutsummaryrefslogtreecommitdiff
path: root/Source/Parallelization
diff options
context:
space:
mode:
authorGravatar David Grote <grote1@llnl.gov> 2023-06-28 17:00:55 -0700
committerGravatar GitHub <noreply@github.com> 2023-06-29 00:00:55 +0000
commit3a55e2bf138d1f722b752ba04765679fbae18b29 (patch)
tree4eac2aa91ba066d263f31728b339890f36ca68d0 /Source/Parallelization
parente7becd694e6b66a1d256eb74cad9ea01d00cef17 (diff)
downloadWarpX-3a55e2bf138d1f722b752ba04765679fbae18b29.tar.gz
WarpX-3a55e2bf138d1f722b752ba04765679fbae18b29.tar.zst
WarpX-3a55e2bf138d1f722b752ba04765679fbae18b29.zip
Clean up of MultiFab tagging (#4014)
* Clean up of MultiFab tagging * Use [level=level] for the tag
Diffstat (limited to 'Source/Parallelization')
-rw-r--r--Source/Parallelization/WarpXRegrid.cpp76
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();