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,
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 = {
" "};
69 amrex::ParmParse
pp(
"erf.rad");
70 if (
pp.contains(
"datalog")) {
86 std::unique_ptr<std::fstream>
datalog =
nullptr;
95 datalog = std::make_unique<std::fstream>();
96 if (amrex::ParallelDescriptor::IOProcessor())
100 amrex::FileOpenFailed(filename);
104 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:83
std::string datalogname
Definition: ERF_RadiationInterface.H:87
std::unique_ptr< std::fstream > datalog
Definition: ERF_RadiationInterface.H:86
void setupDataLog()
Definition: ERF_RadiationInterface.H:67
void setDataLogFrequency(const int nstep)
Definition: ERF_RadiationInterface.H:78
virtual void Init(const amrex::Geometry &geom, const amrex::BoxArray &ba, amrex::MultiFab *cons_in)=0
int datalog_int
Definition: ERF_RadiationInterface.H:89
virtual ~IRadiation()=default
void setRecordDataInfo(const std::string &filename)
Definition: ERF_RadiationInterface.H:93
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
@ t_surf
Definition: ERF_OceanSurf.H:14