WarpX
Diagnostics.H
Go to the documentation of this file.
1 #ifndef WARPX_DIAGNOSTICS_H_
2 #define WARPX_DIAGNOSTICS_H_
3 
8 #include <AMReX_Vector.H>
9 #include <AMReX_MultiFab.H>
10 
18 {
19 public:
20  Diagnostics (int i, std::string name);
22  virtual ~Diagnostics () ;
27  void ComputeAndPack ();
41  virtual void Flush (int i_buffer) = 0;
43  void InitData ();
52  virtual void InitializeFieldFunctors (int lev) = 0;
58  virtual bool DoComputeAndPack(int step, bool force_flush=false) = 0;
64  virtual bool DoDump (int step, int i_buffer, bool force_flush=false) = 0;
66  void NewIteration () {m_already_done = false;}
73  void FilterComputePackFlush (int step, bool force_flush=false);
74 
75 protected:
77  bool BaseReadParameters ();
79  void InitBaseData ();
84  virtual void InitializeFieldBufferData (int i_buffer, int lev) = 0;
88  virtual void DerivedInitData () {}
90  virtual void InitializeParticleBuffer () = 0;
94  virtual void PrepareFieldDataForOutput () {}
98  std::string m_diag_name;
100  std::string m_file_prefix;
106  amrex::Vector< std::string > m_varnames;
110  std::string m_format = "plotfile";
112  int m_already_done = false;
120  amrex::Vector< amrex::Vector< amrex::MultiFab > > m_mf_output;
121 
128  amrex::Vector< amrex::Vector <amrex::Geometry> > m_geom_output;
129  // a particle buffer here?
130  int nlev;
131  int nmax_lev;
135  std::vector< std::string > m_species_names;
137  amrex::Vector< ParticleDiag > m_all_species;
143  amrex::Vector< amrex::Vector <std::unique_ptr<ComputeDiagFunctor > > > m_all_field_functors;
146  amrex::IntVect m_crse_ratio = amrex::IntVect(1);
148  amrex::Vector< amrex::Real> m_lo;
150  amrex::Vector< amrex::Real> m_hi;
154  amrex::Vector<int> m_rho_per_species_index;
155 };
156 
157 #endif // WARPX_DIAGNOSTICS_H_
std::string m_diag_name
Definition: Diagnostics.H:98
void FilterComputePackFlush(int step, bool force_flush=false)
Definition: Diagnostics.cpp:299
int nlev_output
Definition: Diagnostics.H:133
virtual void PrepareFieldDataForOutput()
Definition: Diagnostics.H:94
Definition: FlushFormat.H:7
virtual void InitializeFieldBufferData(int i_buffer, int lev)=0
void InitBaseData()
Definition: Diagnostics.cpp:216
bool BaseReadParameters()
Definition: Diagnostics.cpp:31
FlushFormat * m_flush_format
Definition: Diagnostics.H:114
void ComputeAndPack()
Definition: Diagnostics.cpp:275
amrex::Vector< int > m_rho_per_species_index
Definition: Diagnostics.H:154
amrex::Vector< amrex::Real > m_lo
Definition: Diagnostics.H:148
void InitData()
Definition: Diagnostics.cpp:178
std::string m_format
Definition: Diagnostics.H:110
virtual void InitializeParticleBuffer()=0
Diagnostics(int i, std::string name)
Definition: Diagnostics.cpp:20
virtual void MovingWindowAndGalileanDomainShift()
Definition: Diagnostics.H:96
std::vector< std::string > m_species_names
Definition: Diagnostics.H:135
virtual void DerivedInitData()
Definition: Diagnostics.H:88
virtual ~Diagnostics()
Definition: Diagnostics.cpp:25
int m_already_done
Definition: Diagnostics.H:112
i
Definition: check_interp_points_and_weights.py:171
amrex::Vector< ParticleDiag > m_all_species
Definition: Diagnostics.H:137
int m_num_buffers
Definition: Diagnostics.H:152
int nmax_lev
Definition: Diagnostics.H:131
name
Definition: run_automated.py:204
virtual bool DoDump(int step, int i_buffer, bool force_flush=false)=0
void NewIteration()
Definition: Diagnostics.H:66
virtual bool DoComputeAndPack(int step, bool force_flush=false)=0
virtual void InitializeFieldFunctors(int lev)=0
int m_diag_index
Definition: Diagnostics.H:102
amrex::Vector< amrex::Real > m_hi
Definition: Diagnostics.H:150
amrex::IntVect m_crse_ratio
Definition: Diagnostics.H:146
amrex::Vector< amrex::Vector< amrex::MultiFab > > m_mf_output
Definition: Diagnostics.H:120
int nlev
Definition: Diagnostics.H:130
amrex::Vector< std::string > m_varnames
Definition: Diagnostics.H:106
amrex::Vector< amrex::Vector< std::unique_ptr< ComputeDiagFunctor > > > m_all_field_functors
Definition: Diagnostics.H:143
std::string m_file_prefix
Definition: Diagnostics.H:100
virtual void Flush(int i_buffer)=0
Flush particle and field buffers to file using the FlushFormat member variable.
base class for diagnostics. Contains main routines to filter, compute and flush diagnostics.
Definition: Diagnostics.H:17
amrex::Vector< amrex::Vector< amrex::Geometry > > m_geom_output
Definition: Diagnostics.H:128