From 278f3cd3db8889219e468699a8475d664ac5f2d3 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Wed, 16 Feb 2022 15:31:10 -0800 Subject: ABLASTR: Refactor `deposit_charge` API (#2856) Simplified and re-ordered interface for `ablastr::particles::deposit_charge`. --- Source/Particles/WarpXParticleContainer.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'Source/Particles/WarpXParticleContainer.cpp') diff --git a/Source/Particles/WarpXParticleContainer.cpp b/Source/Particles/WarpXParticleContainer.cpp index f590d3cc0..e2a34727c 100644 --- a/Source/Particles/WarpXParticleContainer.cpp +++ b/Source/Particles/WarpXParticleContainer.cpp @@ -594,7 +594,11 @@ WarpXParticleContainer::DepositCharge (WarpXParIter& pti, RealVector const& wp, { if (!do_not_deposit) { WarpX& warpx = WarpX::GetInstance(); + + // deposition guards + // note: this is smaller than rho->nGrowVect() for PSATD const amrex::IntVect& ng_rho = warpx.get_ng_depos_rho(); + const std::array& dx = WarpX::CellSize(std::max(depos_lev,0)); amrex::IntVect ref_ratio; if (lev == depos_lev) { @@ -641,12 +645,18 @@ WarpXParticleContainer::DepositCharge (WarpXParIter& pti, RealVector const& wp, amrex::LayoutData* costs = WarpX::getCosts(lev); amrex::Real* cost = costs ? &((*costs)[pti.index()]) : nullptr; - ablastr::particles::deposit_charge - (pti, wp, ion_lev, rho, icomp, nc, offset, np_to_depose, - local_rho[thread_num], lev, depos_lev, this->charge, - WarpX::nox, WarpX::noy, WarpX::noz, ng_rho, dx, xyzmin, ref_ratio, - cost, WarpX::n_rz_azimuthal_modes, WarpX::load_balance_costs_update_algo, - WarpX::do_device_synchronize); + AMREX_ALWAYS_ASSERT(WarpX::nox == WarpX::noy); + AMREX_ALWAYS_ASSERT(WarpX::nox == WarpX::noz); + + ablastr::particles::deposit_charge( + pti, wp, this->charge, ion_lev, + rho, local_rho[thread_num], + WarpX::noz, dx, xyzmin, WarpX::n_rz_azimuthal_modes, + ng_rho, depos_lev, ref_ratio, + offset, np_to_depose, + icomp, nc, + cost, WarpX::load_balance_costs_update_algo, WarpX::do_device_synchronize + ); } } -- cgit v1.2.3