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 <REMORA_Constants.H>
5#include <AMReX_MultiFab.H>
6#include <AMReX_Vector.H>
7#include <AMReX_REAL.H>
8
11
13
17
18 void set_time(amrex::Real time) {
19 m_time = time;
20 }
21
22 amrex::Real get_time() { return m_time; }
23
24 void add_var(amrex::MultiFab* var_data, int own_data) {
25 m_data.push_back(var_data);
26 m_owns_data.push_back(own_data);
27 }
28
29 amrex::MultiFab& get_var(int var_idx) {
30 return *m_data[var_idx];
31 }
32
33 int num_vars() { return m_data.size(); }
34
35 void clear() {
36 // clear all data owned by this object
37 for (int i = 0; i < num_vars(); ++i) {
38 if (m_owns_data[i] == owning) {
39 m_data[i]->clear();
40 delete m_data[i];
41 }
42 }
43
44 // clear internal memory
45 m_data.clear();
46 m_owns_data.clear();
47 m_time = zero;
48 }
49
50 const int owning = 1;
51 const int non_owning = 0;
52
53private:
54 amrex::Vector<amrex::MultiFab*> m_data;
55 amrex::Vector<int> m_owns_data;
56 amrex::Real m_time;
57};
58
59#endif
constexpr amrex::Real zero
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