ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_IBSEB.cpp File Reference

ERF-side hooks of the immersed-boundary surface energy balance. More...

#include <ERF.H>
#include <ERF_PlaneAverage.H>
#include <ERF_DirectionSelector.H>
#include <AMReX_VisMF.H>
#include <AMReX_MultiFabUtil.H>
#include <ERF_IBSEBSolar.H>
#include <algorithm>
#include <cmath>
#include <limits>
#include <sstream>
Include dependency graph for ERF_IBSEB.cpp:

Detailed Description

ERF-side hooks of the immersed-boundary surface energy balance.

The balance lives in IBFaceSet (one per level, ERF::m_ibseb); this file holds the places ERF calls into it:

  • init_ibseb() from ERF::InitData_post(), after the immersed forcing has built the blanking on a fresh start or a restart, with its start-up checks ibseb_check_refined_levels(), ibseb_check_sun_matches_two_stream() and ibseb_check_two_stream_provider();
  • ibseb_advance() from ERF::Advance(), per level and step, which with erf.ibseb.sun_mode = two_stream hands the faces the two-stream sun of the step first (ibseb_set_two_stream_sun(), as init_ibseb() does). It runs at the start of the step, or with erf.ibseb.radiation = two_stream after the step's radiation (ibseb_after_radiation()), whose column sweep the faces then take;
  • ibseb_write_checkpoint() from ERF::WriteCheckpointFile(), per level;
  • ibseb_report() from ERF::post_timestep(). The inputs are parsed in ERF::ReadParameters() into ERF::ibseb_params. Every function is a no-op unless erf.ibseb.enable is set.