REMORA
Regional Modeling of Oceans Refined Adaptively
Loading...
Searching...
No Matches
REMORA_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
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
52private:
53 amrex::Vector<amrex::MultiFab*> m_data;
54 amrex::Vector<int> m_owns_data;
55 amrex::Real m_time;
56};
57
58#endif
void set_time(amrex::Real time)
void add_var(amrex::MultiFab *var_data, int own_data)
amrex::MultiFab & get_var(int var_idx)
amrex::Vector< amrex::MultiFab * > m_data