aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Axel Huebl <axel.huebl@plasma.ninja> 2019-09-27 11:14:00 -0700
committerGravatar Axel Huebl <axel.huebl@plasma.ninja> 2019-09-27 15:17:34 -0700
commitc9577f8d200d99c40d15d5ff0d2fdacbddc2026f (patch)
tree5606dba411201d581ae386bb9694b933c4b07bcd
parent9db3a53e959a6279c313a0d8d3e80288f6775b5a (diff)
downloadWarpX-c9577f8d200d99c40d15d5ff0d2fdacbddc2026f.tar.gz
WarpX-c9577f8d200d99c40d15d5ff0d2fdacbddc2026f.tar.zst
WarpX-c9577f8d200d99c40d15d5ff0d2fdacbddc2026f.zip
Rename, Profile & Remove TODO
-rw-r--r--Source/Parallelization/InterpolateCurrentFineToCoarse.H (renamed from Source/Parallelization/CurrentSynchronize.H)18
-rw-r--r--Source/Parallelization/WarpXComm.cpp19
-rw-r--r--Source/WarpX.H6
3 files changed, 22 insertions, 21 deletions
diff --git a/Source/Parallelization/CurrentSynchronize.H b/Source/Parallelization/InterpolateCurrentFineToCoarse.H
index 5329ca242..148b725d0 100644
--- a/Source/Parallelization/CurrentSynchronize.H
+++ b/Source/Parallelization/InterpolateCurrentFineToCoarse.H
@@ -5,8 +5,8 @@
* License: BSD-3-Clause-LBNL
*/
-#ifndef WARPX_CURRENTSYNCHRONIZE_H
-#define WARPX_CURRENTSYNCHRONIZE_H
+#ifndef INTERPOLATECURRENTFINETOCOARSE_H
+#define INTERPOLATECURRENTFINETOCOARSE_H
#include <AMReX_Array4.H>
#include <AMReX_REAL.H>
@@ -14,7 +14,7 @@
#include <AMReX_Extension.H>
#include <AMReX_GpuQualifiers.H>
-#include <utility> // std::move
+#include <utility> // std::move
/** Fill a current coarse patch with averaged values from a fine patch
@@ -25,7 +25,7 @@
* @tparam IDim j-field component on which the averaging is performed
*/
template< int IDim >
-class WarpxSyncCurrent
+class InterpolateCurrentFineToCoarse
{
public:
/** Construct with fine and coarse patch and their refinement ratio
@@ -36,9 +36,9 @@ public:
* (currently, only a value of is implemented)
*/
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE
- WarpxSyncCurrent(
- amrex::Array4<amrex::Real const> const fine,
- amrex::Array4<amrex::Real > const coarse,
+ InterpolateCurrentFineToCoarse(
+ amrex::Array4< amrex::Real const > const fine,
+ amrex::Array4< amrex::Real > const coarse,
int const refinement_ratio
) : m_fine(std::move(fine)),
m_coarse(std::move(coarse)),
@@ -54,7 +54,7 @@ public:
int const i,
int const j,
int const k
- ) const noexcept // TODO rename to jkl
+ ) const noexcept
{
auto const & fine_unsafe = m_fine; // out-of-bounds access not secured with zero-values yet
auto const & coarse = m_coarse; // out-of-bounds access not secured but will also not occur
@@ -172,4 +172,4 @@ private:
int m_refinement_ratio;
};
-#endif //WARPX_CURRENTSYNCHRONIZE_H
+#endif // INTERPOLATECURRENTFINETOCOARSE_H
diff --git a/Source/Parallelization/WarpXComm.cpp b/Source/Parallelization/WarpXComm.cpp
index 40f8203a9..4f870e79c 100644
--- a/Source/Parallelization/WarpXComm.cpp
+++ b/Source/Parallelization/WarpXComm.cpp
@@ -2,7 +2,7 @@
#include <WarpX.H>
#include <WarpX_f.H>
#include <WarpXSumGuardCells.H>
-#include <Parallelization/CurrentSynchronize.H>
+#include <Parallelization/InterpolateCurrentFineToCoarse.H>
#include <algorithm>
#include <cstdlib>
@@ -337,7 +337,7 @@ WarpX::SyncCurrent ()
std::array< MultiFab*,3> crse { current_cp[lev][0].get(),
current_cp[lev][1].get(),
current_cp[lev][2].get() };
- SyncCurrent(fine, crse, refinement_ratio[0]);
+ interpolateCurrentFineToCoarse(fine, crse, refinement_ratio[0]);
}
// For each level
@@ -350,10 +350,11 @@ WarpX::SyncCurrent ()
}
void
-WarpX::SyncCurrent (const std::array<const amrex::MultiFab*,3>& fine,
- const std::array< amrex::MultiFab*,3>& coarse,
- int const refinement_ratio)
+WarpX::interpolateCurrentFineToCoarse ( std::array< amrex::MultiFab const *, 3 > const & fine,
+ std::array< amrex::MultiFab *, 3 > const & coarse,
+ int const refinement_ratio)
{
+ BL_PROFILE("InterpolateCurrentFineToCoarse()");
BL_ASSERT(refinement_ratio == 2);
const IntVect& ng = (fine[0]->nGrowVect() + 1) / refinement_ratio; // add equivalent no. of guards to coarse patch
@@ -372,11 +373,11 @@ WarpX::SyncCurrent (const std::array<const amrex::MultiFab*,3>& fine,
auto const & arrCoarse = coarse[idim]->array(mfi);
if( idim == 0 )
- amrex::ParallelFor( bx, WarpxSyncCurrent<0>(arrFine, arrCoarse, refinement_ratio) );
+ amrex::ParallelFor( bx, InterpolateCurrentFineToCoarse<0>(arrFine, arrCoarse, refinement_ratio) );
else if( idim == 1 )
- amrex::ParallelFor( bx, WarpxSyncCurrent<1>(arrFine, arrCoarse, refinement_ratio) );
+ amrex::ParallelFor( bx, InterpolateCurrentFineToCoarse<1>(arrFine, arrCoarse, refinement_ratio) );
else if( idim == 2 )
- amrex::ParallelFor( bx, WarpxSyncCurrent<2>(arrFine, arrCoarse, refinement_ratio) );
+ amrex::ParallelFor( bx, InterpolateCurrentFineToCoarse<2>(arrFine, arrCoarse, refinement_ratio) );
}
}
}
@@ -452,7 +453,7 @@ WarpX::RestrictCurrentFromFineToCoarsePatch (int lev)
std::array< MultiFab*,3> crse { current_cp[lev][0].get(),
current_cp[lev][1].get(),
current_cp[lev][2].get() };
- SyncCurrent(fine, crse, refinement_ratio[0]);
+ interpolateCurrentFineToCoarse(fine, crse, refinement_ratio[0]);
}
void
diff --git a/Source/WarpX.H b/Source/WarpX.H
index 9b9fb045c..c59802427 100644
--- a/Source/WarpX.H
+++ b/Source/WarpX.H
@@ -428,9 +428,9 @@ private:
* \param[out] coarse coarse patches to interpolate to
* \param[in] refinement_ratio integer ratio between the two
*/
- void SyncCurrent (const std::array<const amrex::MultiFab*,3>& fine,
- const std::array< amrex::MultiFab*,3>& coarse,
- int const refinement_ratio);
+ void interpolateCurrentFineToCoarse (std::array< amrex::MultiFab const *, 3 > const & fine,
+ std::array< amrex::MultiFab *, 3 > const & coarse,
+ int const refinement_ratio);
/** \brief Fills the values of the charge density on the coarse patch by
* averaging the values of the charge density of the fine patch (on the same level).