ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
TimeInterpolatedData Struct Reference

#include <ERF_TimeInterpolatedData.H>

Collaboration diagram for TimeInterpolatedData:

Public Member Functions

 TimeInterpolatedData ()=default
 
 TimeInterpolatedData (double time)
 
 ~TimeInterpolatedData ()
 
 TimeInterpolatedData (TimeInterpolatedData &&) noexcept=default
 
TimeInterpolatedDataoperator= (TimeInterpolatedData &&other) noexcept=default
 
 TimeInterpolatedData (const TimeInterpolatedData &other)=delete
 
TimeInterpolatedDataoperator= (const TimeInterpolatedData &other)=delete
 
void set_time (double time)
 
double get_time () const
 
void add_var (amrex::MultiFab *var_data, int own_data)
 
amrex::MultiFab & get_var (int var_idx)
 
int num_vars ()
 
void clear ()
 

Private Attributes

amrex::Vector< amrex::MultiFab * > m_data
 
amrex::Vector< int > m_owns_data
 
double m_time
 

Constructor & Destructor Documentation

◆ TimeInterpolatedData() [1/4]

TimeInterpolatedData::TimeInterpolatedData ( )
default

Construct empty time-interpolated data storage.

◆ TimeInterpolatedData() [2/4]

TimeInterpolatedData::TimeInterpolatedData ( double  time)
inline

Construct storage associated with a time.

Parameters
[in]timetime associated with the data
19 : m_time(time) {}
double m_time
Definition: ERF_TimeInterpolatedData.H:114

◆ ~TimeInterpolatedData()

TimeInterpolatedData::~TimeInterpolatedData ( )
inline

Destroy owned data and clear internal storage.

24  {
25  clear();
26  }
void clear()
Definition: ERF_TimeInterpolatedData.H:96
Here is the call graph for this function:

◆ TimeInterpolatedData() [3/4]

TimeInterpolatedData::TimeInterpolatedData ( TimeInterpolatedData &&  )
defaultnoexcept

Default move constructor.

◆ TimeInterpolatedData() [4/4]

TimeInterpolatedData::TimeInterpolatedData ( const TimeInterpolatedData other)
delete

Deleted copy constructor.

Parameters
[in]othersource object

Member Function Documentation

◆ add_var()

void TimeInterpolatedData::add_var ( amrex::MultiFab *  var_data,
int  own_data 
)
inline

Add a MultiFab pointer to the managed list.

Parameters
[in]var_dataMultiFab pointer to store
[in]own_datawhether this object owns and deletes var_data
74  {
75  m_data.push_back(var_data);
76  m_owns_data.push_back(own_data);
77  }
amrex::Vector< int > m_owns_data
Definition: ERF_TimeInterpolatedData.H:113
amrex::Vector< amrex::MultiFab * > m_data
Definition: ERF_TimeInterpolatedData.H:112

◆ clear()

void TimeInterpolatedData::clear ( )
inline

Clear stored data, deleting entries owned by this object.

96  {
97  // clear all data owned by this object
98  for (int i = 0; i < num_vars(); ++i) {
99  if (m_owns_data[i] == 1) {
100  m_data[i]->clear();
101  delete m_data[i];
102  }
103  }
104 
105  // clear internal memory
106  m_data.clear();
107  m_owns_data.clear();
108  m_time = 0.0;
109  }
int num_vars()
Definition: ERF_TimeInterpolatedData.H:91

Referenced by ~TimeInterpolatedData().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_time()

double TimeInterpolatedData::get_time ( ) const
inline

Return the time associated with the data.

66 { return m_time; }

◆ get_var()

amrex::MultiFab& TimeInterpolatedData::get_var ( int  var_idx)
inline

Return one stored MultiFab.

Parameters
[in]var_idxindex of the stored MultiFab
84  {
85  return *m_data[var_idx];
86  }

◆ num_vars()

int TimeInterpolatedData::num_vars ( )
inline

Return the number of stored MultiFabs.

91 { return m_data.size(); }

Referenced by clear().

Here is the caller graph for this function:

◆ operator=() [1/2]

TimeInterpolatedData& TimeInterpolatedData::operator= ( const TimeInterpolatedData other)
delete

Deleted copy-assignment operator.

Parameters
[in]othersource object

◆ operator=() [2/2]

TimeInterpolatedData& TimeInterpolatedData::operator= ( TimeInterpolatedData &&  other)
defaultnoexcept

Default move-assignment operator.

Parameters
[in]othersource object

◆ set_time()

void TimeInterpolatedData::set_time ( double  time)
inline

Set the time associated with the data.

Parameters
[in]timetime associated with the data
59  {
60  m_time = time;
61  }

Member Data Documentation

◆ m_data

amrex::Vector<amrex::MultiFab*> TimeInterpolatedData::m_data
private

Referenced by add_var(), clear(), get_var(), and num_vars().

◆ m_owns_data

amrex::Vector<int> TimeInterpolatedData::m_owns_data
private

Referenced by add_var(), and clear().

◆ m_time

double TimeInterpolatedData::m_time
private

Referenced by clear(), get_time(), and set_time().


The documentation for this struct was generated from the following file: