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>
20 Init (
const amrex::Geometry& geom,
21 const amrex::BoxArray& ba,
22 amrex::MultiFab* cons_in) = 0;
29 const amrex::Real& dt,
30 const amrex::BoxArray& ba,
31 amrex::Geometry& geom,
32 amrex::MultiFab* cons_in,
33 amrex::MultiFab* lsm_fluxes,
34 amrex::MultiFab* lsm_zenith,
35 amrex::Vector<amrex::MultiFab*>& lsm_input_ptrs,
36 amrex::Vector<amrex::MultiFab*>& lsm_output_ptrs,
37 amrex::MultiFab* qheating_rates,
38 amrex::MultiFab* z_phys,
40 amrex::MultiFab* lon) = 0;
48 amrex::Vector<std::string>
51 amrex::Vector<std::string> empty = {
" "};
57 amrex::Vector<std::string>
60 amrex::Vector<std::string> empty = {
" "};
67 amrex::ParmParse
pp(
"erf.rad");
68 if (
pp.contains(
"datalog")) {
84 std::unique_ptr<std::fstream>
datalog =
nullptr;
93 datalog = std::make_unique<std::fstream>();
94 if (amrex::ParallelDescriptor::IOProcessor())
96 datalog->open(filename.c_str(),std::ios::out|std::ios::app);
98 amrex::FileOpenFailed(filename);
102 amrex::ParallelDescriptor::Barrier(
"ERF::Radiation::setRecordDataInfo");
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real pp(amrex::Real y)
Definition: ERF_MicrophysicsUtils.H:230
Definition: ERF_RadiationInterface.H:14
bool hasDatalog()
Definition: ERF_RadiationInterface.H:81
std::string datalogname
Definition: ERF_RadiationInterface.H:85
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 *z_phys, amrex::MultiFab *lat, amrex::MultiFab *lon)=0
std::unique_ptr< std::fstream > datalog
Definition: ERF_RadiationInterface.H:84
void setupDataLog()
Definition: ERF_RadiationInterface.H:65
void setDataLogFrequency(const int nstep)
Definition: ERF_RadiationInterface.H:76
virtual void Init(const amrex::Geometry &geom, const amrex::BoxArray &ba, amrex::MultiFab *cons_in)=0
int datalog_int
Definition: ERF_RadiationInterface.H:87
virtual ~IRadiation()=default
void setRecordDataInfo(const std::string &filename)
Definition: ERF_RadiationInterface.H:91
virtual void WriteDataLog(const amrex::Real &time)=0
virtual amrex::Vector< std::string > get_lsm_input_varnames()
Definition: ERF_RadiationInterface.H:49
virtual amrex::Vector< std::string > get_lsm_output_varnames()
Definition: ERF_RadiationInterface.H:58