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;
30 const amrex::BoxArray& ba,
31 amrex::Geometry& geom,
32 amrex::MultiFab* cons_in,
33 amrex::iMultiFab* lmask,
34 amrex::MultiFab* t_surf,
35 amrex::Vector<amrex::MultiFab*>& lsm_input_ptrs,
36 amrex::Vector<amrex::MultiFab*>& lsm_output_ptrs,
37 amrex::MultiFab* qheating_rates,
38 amrex::MultiFab* rad_fluxes,
39 amrex::MultiFab* z_phys,
42 const bool updated_lsm) = 0;
50 amrex::Vector<std::string>
53 amrex::Vector<std::string> empty = {
" "};
59 amrex::Vector<std::string>
62 amrex::Vector<std::string> empty = {
" "};
77 amrex::ParmParse
pp(
"erf.rad");
78 if (
pp.contains(
"datalog")) {
94 std::unique_ptr<std::fstream>
datalog =
nullptr;
103 datalog = std::make_unique<std::fstream>();
104 if (amrex::ParallelDescriptor::IOProcessor())
106 datalog->open(filename.c_str(),std::ios::out|std::ios::app);
108 amrex::FileOpenFailed(filename);
112 amrex::ParallelDescriptor::Barrier(
"ERF::Radiation::setRecordDataInfo");
Definition: ERF_RadiationInterface.H:14
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
bool hasDatalog()
Definition: ERF_RadiationInterface.H:91
std::string datalogname
Definition: ERF_RadiationInterface.H:95
std::unique_ptr< std::fstream > datalog
Definition: ERF_RadiationInterface.H:94
void setupDataLog()
Definition: ERF_RadiationInterface.H:75
void setDataLogFrequency(const int nstep)
Definition: ERF_RadiationInterface.H:86
virtual void Init(const amrex::Geometry &geom, const amrex::BoxArray &ba, amrex::MultiFab *cons_in)=0
virtual bool is_nested_patch() const
Definition: ERF_RadiationInterface.H:69
int datalog_int
Definition: ERF_RadiationInterface.H:97
virtual ~IRadiation()=default
void setRecordDataInfo(const std::string &filename)
Definition: ERF_RadiationInterface.H:101
virtual void WriteDataLog(const double &time)=0
virtual amrex::Vector< std::string > get_lsm_input_varnames()
Definition: ERF_RadiationInterface.H:51
virtual amrex::Vector< std::string > get_lsm_output_varnames()
Definition: ERF_RadiationInterface.H:60