REMORA
Energy Research and Forecasting: An Atmospheric Modeling Code
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TimeInterpolatedData.H
Go to the documentation of this file.
1 #ifndef REMORA_TIME_INTERP_DATA_H_
2 #define REMORA_TIME_INTERP_DATA_H_
3 
4 #include <AMReX_MultiFab.H>
5 #include <AMReX_Vector.H>
6 #include <AMReX_REAL.H>
7 
10 
11  TimeInterpolatedData(amrex::Real time) : m_time(time) {}
12 
14  clear();
15  }
16 
17  void set_time(amrex::Real time) {
18  m_time = time;
19  }
20 
21  amrex::Real get_time() { return m_time; }
22 
23  void add_var(amrex::MultiFab* var_data, int own_data) {
24  m_data.push_back(var_data);
25  m_owns_data.push_back(own_data);
26  }
27 
28  amrex::MultiFab& get_var(int var_idx) {
29  return *m_data[var_idx];
30  }
31 
32  int num_vars() { return m_data.size(); }
33 
34  void clear() {
35  // clear all data owned by this object
36  for (int i = 0; i < num_vars(); ++i) {
37  if (m_owns_data[i] == owning) {
38  m_data[i]->clear();
39  delete m_data[i];
40  }
41  }
42 
43  // clear internal memory
44  m_data.clear();
45  m_owns_data.clear();
46  m_time = 0.;
47  }
48 
49  const int owning = 1;
50  const int non_owning = 0;
51 
52 private:
53  amrex::Vector<amrex::MultiFab*> m_data;
54  amrex::Vector<int> m_owns_data;
55  amrex::Real m_time;
56 };
57 
58 #endif
Definition: TimeInterpolatedData.H:8
void set_time(amrex::Real time)
Definition: TimeInterpolatedData.H:17
const int non_owning
Definition: TimeInterpolatedData.H:50
void add_var(amrex::MultiFab *var_data, int own_data)
Definition: TimeInterpolatedData.H:23
amrex::Real get_time()
Definition: TimeInterpolatedData.H:21
amrex::MultiFab & get_var(int var_idx)
Definition: TimeInterpolatedData.H:28
void clear()
Definition: TimeInterpolatedData.H:34
int num_vars()
Definition: TimeInterpolatedData.H:32
amrex::Vector< int > m_owns_data
Definition: TimeInterpolatedData.H:54
amrex::Vector< amrex::MultiFab * > m_data
Definition: TimeInterpolatedData.H:53
amrex::Real m_time
Definition: TimeInterpolatedData.H:55
TimeInterpolatedData(amrex::Real time)
Definition: TimeInterpolatedData.H:11
~TimeInterpolatedData()
Definition: TimeInterpolatedData.H:13
const int owning
Definition: TimeInterpolatedData.H:49
TimeInterpolatedData()
Definition: TimeInterpolatedData.H:9