ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
IRadiation Class Referenceabstract

#include <ERF_RadiationInterface.H>

Inheritance diagram for IRadiation:
Collaboration diagram for IRadiation:

Public Member Functions

virtual ~IRadiation ()=default
 
virtual void Init (const amrex::Geometry &geom, const amrex::BoxArray &ba, amrex::MultiFab *cons_in)=0
 
virtual void Run (int &level, int &step, double &time, const double &dt, const amrex::BoxArray &ba, amrex::Geometry &geom, amrex::MultiFab *cons_in, amrex::iMultiFab *lmask, amrex::MultiFab *t_surf, amrex::Vector< amrex::MultiFab * > &lsm_input_ptrs, amrex::Vector< amrex::MultiFab * > &lsm_output_ptrs, amrex::MultiFab *qheating_rates, amrex::MultiFab *rad_fluxes, amrex::MultiFab *z_phys, amrex::MultiFab *lat, amrex::MultiFab *lon, const bool updated_lsm)=0
 
virtual void WriteDataLog (const double &time)=0
 
virtual amrex::Vector< std::string > get_lsm_input_varnames ()
 
virtual amrex::Vector< std::string > get_lsm_output_varnames ()
 
void setupDataLog ()
 
void setDataLogFrequency (const int nstep)
 
bool hasDatalog ()
 

Protected Attributes

std::unique_ptr< std::fstream > datalog = nullptr
 
std::string datalogname
 
int datalog_int = -1
 

Private Member Functions

void setRecordDataInfo (const std::string &filename)
 

Constructor & Destructor Documentation

◆ ~IRadiation()

virtual IRadiation::~IRadiation ( )
virtualdefault

Member Function Documentation

◆ get_lsm_input_varnames()

virtual amrex::Vector<std::string> IRadiation::get_lsm_input_varnames ( )
inlinevirtual

Reimplemented in Radiation.

52  {
53  amrex::Vector<std::string> empty = {" "};
54  return empty;
55  }

◆ get_lsm_output_varnames()

virtual amrex::Vector<std::string> IRadiation::get_lsm_output_varnames ( )
inlinevirtual

Reimplemented in Radiation.

61  {
62  amrex::Vector<std::string> empty = {" "};
63  return empty;
64  }

◆ hasDatalog()

bool IRadiation::hasDatalog ( )
inline
83 { return (datalog != nullptr && datalog->good()); }
std::unique_ptr< std::fstream > datalog
Definition: ERF_RadiationInterface.H:86

◆ Init()

virtual void IRadiation::Init ( const amrex::Geometry &  geom,
const amrex::BoxArray &  ba,
amrex::MultiFab *  cons_in 
)
pure virtual

Implemented in Radiation.

◆ Run()

virtual void IRadiation::Run ( int &  level,
int &  step,
double &  time,
const double &  dt,
const amrex::BoxArray &  ba,
amrex::Geometry &  geom,
amrex::MultiFab *  cons_in,
amrex::iMultiFab *  lmask,
amrex::MultiFab *  t_surf,
amrex::Vector< amrex::MultiFab * > &  lsm_input_ptrs,
amrex::Vector< amrex::MultiFab * > &  lsm_output_ptrs,
amrex::MultiFab *  qheating_rates,
amrex::MultiFab *  rad_fluxes,
amrex::MultiFab *  z_phys,
amrex::MultiFab *  lat,
amrex::MultiFab *  lon,
const bool  updated_lsm 
)
pure virtual

Implemented in Radiation.

◆ setDataLogFrequency()

void IRadiation::setDataLogFrequency ( const int  nstep)
inline
78  {
79  datalog_int = nstep;
80  }
int datalog_int
Definition: ERF_RadiationInterface.H:89

◆ setRecordDataInfo()

void IRadiation::setRecordDataInfo ( const std::string &  filename)
inlineprivate
94  {
95  datalog = std::make_unique<std::fstream>();
96  if (amrex::ParallelDescriptor::IOProcessor())
97  {
98  datalog->open(filename.c_str(),std::ios::out|std::ios::app);
99  if (!datalog->good()) {
100  amrex::FileOpenFailed(filename);
101  }
102  datalogname = filename;
103  }
104  amrex::ParallelDescriptor::Barrier("ERF::Radiation::setRecordDataInfo");
105  }
struct @29 out
std::string datalogname
Definition: ERF_RadiationInterface.H:87

Referenced by setupDataLog().

Here is the caller graph for this function:

◆ setupDataLog()

void IRadiation::setupDataLog ( )
inline
68  {
69  amrex::ParmParse pp("erf.rad");
70  if (pp.contains("datalog")) {
71  pp.query("datalog", datalogname);
72 
74  }
75  }
ParmParse pp("prob")
void setRecordDataInfo(const std::string &filename)
Definition: ERF_RadiationInterface.H:93
Here is the call graph for this function:

◆ WriteDataLog()

virtual void IRadiation::WriteDataLog ( const double &  time)
pure virtual

Implemented in Radiation.

Member Data Documentation

◆ datalog

std::unique_ptr<std::fstream> IRadiation::datalog = nullptr
protected

Referenced by hasDatalog(), and setRecordDataInfo().

◆ datalog_int

int IRadiation::datalog_int = -1
protected

Referenced by setDataLogFrequency().

◆ datalogname

std::string IRadiation::datalogname
protected

Referenced by setRecordDataInfo(), and setupDataLog().


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