ARTEMIS
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 
50  virtual void PrepareFunctorData ( int i_buffer, bool z_slice_in_domain,
51  amrex::Real current_z_boost,
52  amrex::Box buffer_box, const int k_index_zlab,
53  const int max_box_size, const int snapshot_full) {
54  amrex::ignore_unused(i_buffer,
55  z_slice_in_domain,
56  current_z_boost, buffer_box,
57  k_index_zlab, max_box_size, snapshot_full);
58  }
59  virtual void InitData() {}
60 private:
62  int m_ncomp;
63 protected:
66 };
67 
68 #endif // WARPX_COMPUTEDIAGFUNCTOR_H_
Functor to compute a diagnostic and store the result in existing MultiFab.
Definition: ComputeDiagFunctor.H:15
virtual void PrepareFunctorData(int i_buffer, bool z_slice_in_domain, amrex::Real current_z_boost, amrex::Box buffer_box, const int k_index_zlab, const int max_box_size, const int snapshot_full)
Prepare data required to process fields in the operator() Note that this function has parameters that...
Definition: ComputeDiagFunctor.H:50
int nComp() const
Definition: ComputeDiagFunctor.H:31
amrex::IntVect m_crse_ratio
Definition: ComputeDiagFunctor.H:65
virtual void InitData()
Definition: ComputeDiagFunctor.H:59
ComputeDiagFunctor(int ncomp, amrex::IntVect crse_ratio)
Definition: ComputeDiagFunctor.H:17
virtual ~ComputeDiagFunctor()=default
int m_ncomp
Definition: ComputeDiagFunctor.H:62
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void ignore_unused(const Ts &...)