WarpX
ComputeDiagFunctor.H
Go to the documentation of this file.
1 #ifndef WARPX_COMPUTEDIAGFUNCTOR_H_
2 #define WARPX_COMPUTEDIAGFUNCTOR_H_
3 
5 
6 #include <AMReX.H>
7 #include <AMReX_MultiFab.H>
8 
13 class
15 {
16 public:
17  ComputeDiagFunctor( int ncomp, amrex::IntVect crse_ratio) :
18  m_ncomp(ncomp), m_crse_ratio(crse_ratio) {}
19  //** Virtual Destructor to handle clean destruction of derived classes */
20  virtual ~ComputeDiagFunctor() = default;
28  virtual void operator() (amrex::MultiFab& mf_dst, int dcomp, const int i_buffer = 0) const = 0;
31  int nComp () const { return m_ncomp; }
32 
33  virtual void PrepareFunctorData ( int i_buffer, bool ZSliceInDomain,
34  amrex::Real current_z_boost,
35  amrex::Box buffer_box, const int k_index_zlab,
36  const int max_box_size) {
37  amrex::ignore_unused(i_buffer,
38  ZSliceInDomain,
39  current_z_boost, buffer_box,
40  k_index_zlab, max_box_size);
41  }
42  virtual void InitData() {}
43 private:
45  int m_ncomp;
46 protected:
48  amrex::IntVect m_crse_ratio;
49 };
50 
51 #endif // WARPX_COMPUTEDIAGFUNCTOR_H_
int nComp() const
Definition: ComputeDiagFunctor.H:31
virtual void InitData()
Definition: ComputeDiagFunctor.H:42
ComputeDiagFunctor(int ncomp, amrex::IntVect crse_ratio)
Definition: ComputeDiagFunctor.H:17
Functor to compute a diagnostic and store the result in existing MultiFab.
Definition: ComputeDiagFunctor.H:13
int m_ncomp
Definition: ComputeDiagFunctor.H:45
virtual void PrepareFunctorData(int i_buffer, bool ZSliceInDomain, amrex::Real current_z_boost, amrex::Box buffer_box, const int k_index_zlab, const int max_box_size)
Definition: ComputeDiagFunctor.H:33
amrex::IntVect m_crse_ratio
Definition: ComputeDiagFunctor.H:48