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, 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::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)=0
 
virtual void WriteDataLog (const amrex::Real &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.

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

◆ get_lsm_output_varnames()

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

Reimplemented in Radiation.

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

◆ hasDatalog()

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

◆ 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::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 
)
pure virtual

Implemented in Radiation.

◆ setDataLogFrequency()

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

◆ setRecordDataInfo()

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

Referenced by setupDataLog().

Here is the caller graph for this function:

◆ setupDataLog()

void IRadiation::setupDataLog ( )
inline
67  {
68  amrex::ParmParse pp("erf.rad");
69  if (pp.contains("datalog")) {
70  pp.query("datalog", datalogname);
71 
73  }
74  }
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real pp(amrex::Real y)
Definition: ERF_MicrophysicsUtils.H:233
void setRecordDataInfo(const std::string &filename)
Definition: ERF_RadiationInterface.H:92
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: