aboutsummaryrefslogtreecommitdiff
path: root/Source/Diagnostics/ComputeDiagFunctors/CellCenterFunctor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Diagnostics/ComputeDiagFunctors/CellCenterFunctor.cpp')
-rw-r--r--Source/Diagnostics/ComputeDiagFunctors/CellCenterFunctor.cpp35
1 files changed, 4 insertions, 31 deletions
diff --git a/Source/Diagnostics/ComputeDiagFunctors/CellCenterFunctor.cpp b/Source/Diagnostics/ComputeDiagFunctors/CellCenterFunctor.cpp
index f43714a9c..fe5037131 100644
--- a/Source/Diagnostics/ComputeDiagFunctors/CellCenterFunctor.cpp
+++ b/Source/Diagnostics/ComputeDiagFunctors/CellCenterFunctor.cpp
@@ -1,11 +1,6 @@
#include "CellCenterFunctor.H"
-#include "Utils/TextMsg.H"
-#ifdef WARPX_DIM_RZ
-# include "WarpX.H"
-#endif
-
-#include <ablastr/coarsen/sample.H>
+#include "WarpX.H"
#include <AMReX.H>
#include <AMReX_IntVect.H>
@@ -21,29 +16,7 @@ CellCenterFunctor::CellCenterFunctor(amrex::MultiFab const * mf_src, int lev,
void
CellCenterFunctor::operator()(amrex::MultiFab& mf_dst, int dcomp, const int /*i_buffer*/) const
{
-#ifdef WARPX_DIM_RZ
- if (m_convertRZmodes2cartesian) {
- // In cylindrical geometry, sum real part of all modes of m_mf_src in
- // temporary multifab mf_dst_stag, and cell-center it to mf_dst.
- WARPX_ALWAYS_ASSERT_WITH_MESSAGE(
- nComp()==1,
- "The RZ averaging over modes must write into 1 single component");
- auto& warpx = WarpX::GetInstance();
- amrex::MultiFab mf_dst_stag(m_mf_src->boxArray(), warpx.DistributionMap(m_lev), 1, m_mf_src->nGrowVect());
- // Mode 0
- amrex::MultiFab::Copy(mf_dst_stag, *m_mf_src, 0, 0, 1, m_mf_src->nGrowVect());
- for (int ic=1 ; ic < m_mf_src->nComp() ; ic += 2) {
- // All modes > 0
- amrex::MultiFab::Add(mf_dst_stag, *m_mf_src, ic, 0, 1, m_mf_src->nGrowVect());
- }
- ablastr::coarsen::sample::Coarsen( mf_dst, mf_dst_stag, dcomp, 0, nComp(), 0, m_crse_ratio);
- } else {
- ablastr::coarsen::sample::Coarsen( mf_dst, *m_mf_src, dcomp, 0, nComp(), 0, m_crse_ratio);
- }
-#else
- // In cartesian geometry, coarsen and interpolate from simulation MultiFab, m_mf_src,
- // to output diagnostic MultiFab, mf_dst.
- ablastr::coarsen::sample::Coarsen(mf_dst, *m_mf_src, dcomp, 0, nComp(), mf_dst.nGrowVect(), m_crse_ratio);
- amrex::ignore_unused(m_lev, m_convertRZmodes2cartesian);
-#endif
+ auto& warpx = WarpX::GetInstance();
+ InterpolateMFForDiag(mf_dst, *m_mf_src, dcomp, warpx.DistributionMap(m_lev),
+ m_convertRZmodes2cartesian);
}