diff options
author | 2022-11-07 13:52:46 -0800 | |
---|---|---|
committer | 2022-11-07 13:52:46 -0800 | |
commit | ada6fc49cf16f40d1764d3a95c8338126360f329 (patch) | |
tree | e28c28108cc75edcdbe7d67238d0d093618d9e71 /Source/Parallelization/WarpXRegrid.cpp | |
parent | 8f9da8cbfcbb304e7ee09531a64b567631a382e2 (diff) | |
download | WarpX-ada6fc49cf16f40d1764d3a95c8338126360f329.tar.gz WarpX-ada6fc49cf16f40d1764d3a95c8338126360f329.tar.zst WarpX-ada6fc49cf16f40d1764d3a95c8338126360f329.zip |
Load balancing bug fix: remake MultiFabs for Vay deposition, current centering, time averaging (#3508)
Additional MultiFabs for Vay deposition, current centering, and time averaging need to be allocated after load-balancing, otherwise the simulation crashes.
Diffstat (limited to '')
-rw-r--r-- | Source/Parallelization/WarpXRegrid.cpp | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/Source/Parallelization/WarpXRegrid.cpp b/Source/Parallelization/WarpXRegrid.cpp index 4e0662fbf..794a48a5b 100644 --- a/Source/Parallelization/WarpXRegrid.cpp +++ b/Source/Parallelization/WarpXRegrid.cpp @@ -1,6 +1,6 @@ /* Copyright 2019 Andrew Myers, Ann Almgren, Axel Huebl * David Grote, Maxence Thevenet, Michael Rowan - * Remi Lehe, Weiqun Zhang, levinem + * Remi Lehe, Weiqun Zhang, levinem, Revathi Jambunathan * * This file is part of WarpX. * @@ -170,7 +170,16 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi RemakeMultiFab(Efield_fp[lev][idim], dm, true); RemakeMultiFab(current_fp[lev][idim], dm, false); RemakeMultiFab(current_store[lev][idim], dm, false); - + if (current_deposition_algo == CurrentDepositionAlgo::Vay) { + RemakeMultiFab(current_fp_vay[lev][idim], dm, false); + } + if (do_current_centering) { + RemakeMultiFab(current_fp_nodal[lev][idim], dm, false); + } + if (fft_do_time_averaging) { + RemakeMultiFab(Efield_avg_fp[lev][idim], dm, true); + RemakeMultiFab(Bfield_avg_fp[lev][idim], dm, true); + } #ifdef AMREX_USE_EB if (WarpX::maxwell_solver_id == MaxwellSolverAlgo::Yee || WarpX::maxwell_solver_id == MaxwellSolverAlgo::ECT || @@ -264,6 +273,10 @@ WarpX::RemakeLevel (int lev, Real /*time*/, const BoxArray& ba, const Distributi RemakeMultiFab(Bfield_cp[lev][idim], dm, true); RemakeMultiFab(Efield_cp[lev][idim], dm, true); RemakeMultiFab(current_cp[lev][idim], dm, false); + if (fft_do_time_averaging) { + RemakeMultiFab(Efield_avg_cp[lev][idim], dm, true); + RemakeMultiFab(Bfield_avg_cp[lev][idim], dm, true); + } } RemakeMultiFab(F_cp[lev], dm, true); RemakeMultiFab(rho_cp[lev], dm, false); |