WarpX
ParticleReductionFunctor.H
Go to the documentation of this file.
1 #ifndef WARPX_PARTICLEREDUCTIONFUNCTOR_H_
2 #define WARPX_PARTICLEREDUCTIONFUNCTOR_H_
3 
4 #include "ComputeDiagFunctor.H"
5 
6 #include <AMReX_Parser.H>
7 #include <AMReX_BaseFwd.H>
8 
9 #include <memory>
10 #include <string>
11 
16 {
17 public:
32  ParticleReductionFunctor(const amrex::MultiFab * mf_src, int lev,
33  amrex::IntVect crse_ratio, const std::string& fn_str,
34  int ispec, bool do_average,
35  bool do_filter, const std::string& filter_str,
36  int ncomp=1);
37 
44  void operator()(amrex::MultiFab& mf_dst, int dcomp, int /*i_buffer=0*/) const override;
45 private:
46  int const m_lev;
47  int const m_ispec;
48  bool const m_do_average;
49  bool const m_do_filter;
51  std::unique_ptr<amrex::Parser> m_map_fn_parser;
53  std::unique_ptr<amrex::Parser> m_filter_fn_parser;
58 };
59 
60 #endif // WARPX_PARTICLEREDUCTIONFUNCTOR_H_
Functor to compute a diagnostic and store the result in existing MultiFab.
Definition: ComputeDiagFunctor.H:17
Functor to calculate per-cell averages of particle properties.
Definition: ParticleReductionFunctor.H:16
amrex::ParserExecutor< 6 > m_map_fn
Definition: ParticleReductionFunctor.H:55
amrex::ParserExecutor< 6 > m_filter_fn
Definition: ParticleReductionFunctor.H:57
void operator()(amrex::MultiFab &mf_dst, int dcomp, int) const override
Compute the average of the function m_map_fn over each grid cell.
Definition: ParticleReductionFunctor.cpp:46
bool const m_do_filter
Definition: ParticleReductionFunctor.H:49
ParticleReductionFunctor(const amrex::MultiFab *mf_src, int lev, amrex::IntVect crse_ratio, const std::string &fn_str, int ispec, bool do_average, bool do_filter, const std::string &filter_str, int ncomp=1)
Definition: ParticleReductionFunctor.cpp:20
std::unique_ptr< amrex::Parser > m_filter_fn_parser
Definition: ParticleReductionFunctor.H:53
int const m_ispec
Definition: ParticleReductionFunctor.H:47
bool const m_do_average
Definition: ParticleReductionFunctor.H:48
std::unique_ptr< amrex::Parser > m_map_fn_parser
Definition: ParticleReductionFunctor.H:51
int const m_lev
Definition: ParticleReductionFunctor.H:46