ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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, amrex::Real &time, const amrex::Real &dt, const amrex::BoxArray &ba, amrex::Geometry &geom, amrex::MultiFab *cons_in, amrex::MultiFab *lsm_fluxes, amrex::MultiFab *lsm_zenith, amrex::MultiFab *qheating_rates, amrex::MultiFab *z_phys, amrex::MultiFab *lat, amrex::MultiFab *lon)=0
 
virtual void WriteDataLog (const amrex::Real &time)=0
 
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

◆ hasDatalog()

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

◆ 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,
amrex::Real &  time,
const amrex::Real &  dt,
const amrex::BoxArray &  ba,
amrex::Geometry &  geom,
amrex::MultiFab *  cons_in,
amrex::MultiFab *  lsm_fluxes,
amrex::MultiFab *  lsm_zenith,
amrex::MultiFab *  qheating_rates,
amrex::MultiFab *  z_phys,
amrex::MultiFab *  lat,
amrex::MultiFab *  lon 
)
pure virtual

Implemented in Radiation.

◆ setDataLogFrequency()

void IRadiation::setDataLogFrequency ( const int  nstep)
inline
48  {
49  datalog_int = nstep;
50  }
int datalog_int
Definition: ERF_RadiationInterface.H:58

◆ setRecordDataInfo()

void IRadiation::setRecordDataInfo ( const std::string &  filename)
inlineprivate
62  {
63  datalog = std::make_unique<std::fstream>();
64  if (amrex::ParallelDescriptor::IOProcessor())
65  {
66  datalog->open(filename.c_str(),std::ios::out|std::ios::app);
67  if (!datalog->good()) {
68  amrex::FileOpenFailed(filename);
69  }
70  datalogname = filename;
71  }
72  amrex::ParallelDescriptor::Barrier("ERF::Radiation::setRecordDataInfo");
73  }
std::string datalogname
Definition: ERF_RadiationInterface.H:56

Referenced by setupDataLog().

Here is the caller graph for this function:

◆ setupDataLog()

void IRadiation::setupDataLog ( )
inline
39  {
40  amrex::ParmParse pp("erf.rad");
41  if (pp.contains("datalog")) {
42  pp.query("datalog", datalogname);
43 
45  }
46  }
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real pp(amrex::Real y)
Definition: ERF_MicrophysicsUtils.H:219
void setRecordDataInfo(const std::string &filename)
Definition: ERF_RadiationInterface.H:61
Here is the call graph for this function:

◆ WriteDataLog()

virtual void IRadiation::WriteDataLog ( const amrex::Real &  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: