1 #ifndef ERF_RADIATION_INTERFACE_H
2 #define ERF_RADIATION_INTERFACE_H
7 #include <AMReX_BoxArray.H>
8 #include <AMReX_Geometry.H>
9 #include <AMReX_MultiFab.H>
10 #include <AMReX_ParmParse.H>
18 virtual void Init(
const amrex::Geometry& geom,
19 const amrex::BoxArray& ba,
20 amrex::MultiFab* cons_in) = 0;
22 virtual void Run(
int& level,
25 const amrex::Real& dt,
26 const amrex::BoxArray& ba,
27 amrex::Geometry& geom,
28 amrex::MultiFab* cons_in,
29 amrex::MultiFab* lsm_fluxes,
30 amrex::MultiFab* lsm_zenith,
31 amrex::MultiFab* qheating_rates,
32 amrex::MultiFab* z_phys,
34 amrex::MultiFab* lon) = 0;
40 amrex::ParmParse
pp(
"erf.rad");
41 if (
pp.contains(
"datalog")) {
55 std::unique_ptr<std::fstream>
datalog =
nullptr;
63 datalog = std::make_unique<std::fstream>();
64 if (amrex::ParallelDescriptor::IOProcessor())
66 datalog->open(filename.c_str(),std::ios::out|std::ios::app);
68 amrex::FileOpenFailed(filename);
72 amrex::ParallelDescriptor::Barrier(
"ERF::Radiation::setRecordDataInfo");
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real pp(amrex::Real y)
Definition: ERF_MicrophysicsUtils.H:219
Definition: ERF_RadiationInterface.H:14
bool hasDatalog()
Definition: ERF_RadiationInterface.H:52
std::string datalogname
Definition: ERF_RadiationInterface.H:56
std::unique_ptr< std::fstream > datalog
Definition: ERF_RadiationInterface.H:55
void setupDataLog()
Definition: ERF_RadiationInterface.H:38
void setDataLogFrequency(const int nstep)
Definition: ERF_RadiationInterface.H:48
virtual void Init(const amrex::Geometry &geom, const amrex::BoxArray &ba, amrex::MultiFab *cons_in)=0
int datalog_int
Definition: ERF_RadiationInterface.H:58
virtual ~IRadiation()=default
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
void setRecordDataInfo(const std::string &filename)
Definition: ERF_RadiationInterface.H:61
virtual void WriteDataLog(const amrex::Real &time)=0