diff options
Diffstat (limited to 'Source/Parallelization/WarpXRegrid.cpp')
-rw-r--r-- | Source/Parallelization/WarpXRegrid.cpp | 84 |
1 files changed, 43 insertions, 41 deletions
diff --git a/Source/Parallelization/WarpXRegrid.cpp b/Source/Parallelization/WarpXRegrid.cpp index 374948aa8..1fdfd6564 100644 --- a/Source/Parallelization/WarpXRegrid.cpp +++ b/Source/Parallelization/WarpXRegrid.cpp @@ -11,6 +11,8 @@ #include <AMReX_BLProfiler.H> +#include <memory> + using namespace amrex; void @@ -107,29 +109,29 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi { { const IntVect& ng = Bfield_fp[lev][idim]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(Bfield_fp[lev][idim]->boxArray(), - dm, Bfield_fp[lev][idim]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(Bfield_fp[lev][idim]->boxArray(), + dm, Bfield_fp[lev][idim]->nComp(), ng); pmf->Redistribute(*Bfield_fp[lev][idim], 0, 0, Bfield_fp[lev][idim]->nComp(), ng); Bfield_fp[lev][idim] = std::move(pmf); } { const IntVect& ng = Efield_fp[lev][idim]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(Efield_fp[lev][idim]->boxArray(), - dm, Efield_fp[lev][idim]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(Efield_fp[lev][idim]->boxArray(), + dm, Efield_fp[lev][idim]->nComp(), ng); pmf->Redistribute(*Efield_fp[lev][idim], 0, 0, Efield_fp[lev][idim]->nComp(), ng); Efield_fp[lev][idim] = std::move(pmf); } { const IntVect& ng = current_fp[lev][idim]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(current_fp[lev][idim]->boxArray(), - dm, current_fp[lev][idim]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(current_fp[lev][idim]->boxArray(), + dm, current_fp[lev][idim]->nComp(), ng); current_fp[lev][idim] = std::move(pmf); } if (current_store[lev][idim]) { const IntVect& ng = current_store[lev][idim]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(current_store[lev][idim]->boxArray(), - dm, current_store[lev][idim]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(current_store[lev][idim]->boxArray(), + dm, current_store[lev][idim]->nComp(), ng); // no need to redistribute current_store[lev][idim] = std::move(pmf); } @@ -137,8 +139,8 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi if (F_fp[lev] != nullptr) { const IntVect& ng = F_fp[lev]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(F_fp[lev]->boxArray(), - dm, F_fp[lev]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(F_fp[lev]->boxArray(), + dm, F_fp[lev]->nComp(), ng); pmf->Redistribute(*F_fp[lev], 0, 0, F_fp[lev]->nComp(), ng); F_fp[lev] = std::move(pmf); } @@ -146,8 +148,8 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi if (rho_fp[lev] != nullptr) { const int nc = rho_fp[lev]->nComp(); const IntVect& ng = rho_fp[lev]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(rho_fp[lev]->boxArray(), - dm, nc, ng)); + auto pmf = std::make_unique<MultiFab>(rho_fp[lev]->boxArray(), + dm, nc, ng); rho_fp[lev] = std::move(pmf); } @@ -155,23 +157,23 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi if (lev == 0 && Bfield_aux[0][0]->ixType() == Bfield_fp[0][0]->ixType()) { for (int idim = 0; idim < 3; ++idim) { - Bfield_aux[lev][idim].reset(new MultiFab(*Bfield_fp[lev][idim], amrex::make_alias, 0, Bfield_aux[lev][idim]->nComp())); - Efield_aux[lev][idim].reset(new MultiFab(*Efield_fp[lev][idim], amrex::make_alias, 0, Efield_aux[lev][idim]->nComp())); + Bfield_aux[lev][idim] = std::make_unique<MultiFab>(*Bfield_fp[lev][idim], amrex::make_alias, 0, Bfield_aux[lev][idim]->nComp()); + Efield_aux[lev][idim] = std::make_unique<MultiFab>(*Efield_fp[lev][idim], amrex::make_alias, 0, Efield_aux[lev][idim]->nComp()); } } else { for (int idim=0; idim < 3; ++idim) { { const IntVect& ng = Bfield_aux[lev][idim]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(Bfield_aux[lev][idim]->boxArray(), - dm, Bfield_aux[lev][idim]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(Bfield_aux[lev][idim]->boxArray(), + dm, Bfield_aux[lev][idim]->nComp(), ng); // pmf->Redistribute(*Bfield_aux[lev][idim], 0, 0, Bfield_aux[lev][idim]->nComp(), ng); Bfield_aux[lev][idim] = std::move(pmf); } { const IntVect& ng = Efield_aux[lev][idim]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(Efield_aux[lev][idim]->boxArray(), - dm, Efield_aux[lev][idim]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(Efield_aux[lev][idim]->boxArray(), + dm, Efield_aux[lev][idim]->nComp(), ng); // pmf->Redistribute(*Efield_aux[lev][idim], 0, 0, Efield_aux[lev][idim]->nComp(), ng); Efield_aux[lev][idim] = std::move(pmf); } @@ -184,30 +186,30 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi { { const IntVect& ng = Bfield_cp[lev][idim]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(Bfield_cp[lev][idim]->boxArray(), - dm, Bfield_cp[lev][idim]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(Bfield_cp[lev][idim]->boxArray(), + dm, Bfield_cp[lev][idim]->nComp(), ng); pmf->Redistribute(*Bfield_cp[lev][idim], 0, 0, Bfield_cp[lev][idim]->nComp(), ng); Bfield_cp[lev][idim] = std::move(pmf); } { const IntVect& ng = Efield_cp[lev][idim]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(Efield_cp[lev][idim]->boxArray(), - dm, Efield_cp[lev][idim]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(Efield_cp[lev][idim]->boxArray(), + dm, Efield_cp[lev][idim]->nComp(), ng); pmf->Redistribute(*Efield_cp[lev][idim], 0, 0, Efield_cp[lev][idim]->nComp(), ng); Efield_cp[lev][idim] = std::move(pmf); } { const IntVect& ng = current_cp[lev][idim]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>( new MultiFab(current_cp[lev][idim]->boxArray(), - dm, current_cp[lev][idim]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(current_cp[lev][idim]->boxArray(), + dm, current_cp[lev][idim]->nComp(), ng); current_cp[lev][idim] = std::move(pmf); } } if (F_cp[lev] != nullptr) { const IntVect& ng = F_cp[lev]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(F_cp[lev]->boxArray(), - dm, F_cp[lev]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(F_cp[lev]->boxArray(), + dm, F_cp[lev]->nComp(), ng); pmf->Redistribute(*F_cp[lev], 0, 0, F_cp[lev]->nComp(), ng); F_cp[lev] = std::move(pmf); } @@ -215,8 +217,8 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi if (rho_cp[lev] != nullptr) { const int nc = rho_cp[lev]->nComp(); const IntVect& ng = rho_cp[lev]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(rho_cp[lev]->boxArray(), - dm, nc, ng)); + auto pmf = std::make_unique<MultiFab>(rho_cp[lev]->boxArray(), + dm, nc, ng); rho_cp[lev] = std::move(pmf); } } @@ -227,24 +229,24 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi if (Bfield_cax[lev][idim]) { const IntVect& ng = Bfield_cax[lev][idim]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(Bfield_cax[lev][idim]->boxArray(), - dm, Bfield_cax[lev][idim]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(Bfield_cax[lev][idim]->boxArray(), + dm, Bfield_cax[lev][idim]->nComp(), ng); // pmf->ParallelCopy(*Bfield_cax[lev][idim], 0, 0, Bfield_cax[lev][idim]->nComp(), ng, ng); Bfield_cax[lev][idim] = std::move(pmf); } if (Efield_cax[lev][idim]) { const IntVect& ng = Efield_cax[lev][idim]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(Efield_cax[lev][idim]->boxArray(), - dm, Efield_cax[lev][idim]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(Efield_cax[lev][idim]->boxArray(), + dm, Efield_cax[lev][idim]->nComp(), ng); // pmf->ParallelCopy(*Efield_cax[lev][idim], 0, 0, Efield_cax[lev][idim]->nComp(), ng, ng); Efield_cax[lev][idim] = std::move(pmf); } if (current_buf[lev][idim]) { const IntVect& ng = current_buf[lev][idim]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(current_buf[lev][idim]->boxArray(), - dm, current_buf[lev][idim]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(current_buf[lev][idim]->boxArray(), + dm, current_buf[lev][idim]->nComp(), ng); // pmf->ParallelCopy(*current_buf[lev][idim], 0, 0, current_buf[lev][idim]->nComp(), ng, ng); current_buf[lev][idim] = std::move(pmf); } @@ -252,24 +254,24 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi if (charge_buf[lev]) { const IntVect& ng = charge_buf[lev]->nGrowVect(); - auto pmf = std::unique_ptr<MultiFab>(new MultiFab(charge_buf[lev]->boxArray(), - dm, charge_buf[lev]->nComp(), ng)); + auto pmf = std::make_unique<MultiFab>(charge_buf[lev]->boxArray(), + dm, charge_buf[lev]->nComp(), ng); // pmf->ParallelCopy(*charge_buf[lev][idim], 0, 0, charge_buf[lev]->nComp(), ng, ng); charge_buf[lev] = std::move(pmf); } if (current_buffer_masks[lev]) { const IntVect& ng = current_buffer_masks[lev]->nGrowVect(); - auto pmf = std::unique_ptr<iMultiFab>(new iMultiFab(current_buffer_masks[lev]->boxArray(), - dm, current_buffer_masks[lev]->nComp(), ng)); + auto pmf = std::make_unique<iMultiFab>(current_buffer_masks[lev]->boxArray(), + dm, current_buffer_masks[lev]->nComp(), ng); // pmf->ParallelCopy(*current_buffer_masks[lev], 0, 0, current_buffer_masks[lev]->nComp(), ng, ng); current_buffer_masks[lev] = std::move(pmf); } if (gather_buffer_masks[lev]) { const IntVect& ng = gather_buffer_masks[lev]->nGrowVect(); - auto pmf = std::unique_ptr<iMultiFab>(new iMultiFab(gather_buffer_masks[lev]->boxArray(), - dm, gather_buffer_masks[lev]->nComp(), ng)); + auto pmf = std::make_unique<iMultiFab>(gather_buffer_masks[lev]->boxArray(), + dm, gather_buffer_masks[lev]->nComp(), ng); // pmf->ParallelCopy(*gather_buffer_masks[lev], 0, 0, gather_buffer_masks[lev]->nComp(), ng, ng); gather_buffer_masks[lev] = std::move(pmf); } @@ -277,7 +279,7 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi if (costs[lev] != nullptr) { - costs[lev].reset(new amrex::LayoutData<Real>(ba, dm)); + costs[lev] = std::make_unique<LayoutData<Real>>(ba, dm); for (int i : costs[lev]->IndexArray()) { (*costs[lev])[i] = 0.0; |