|
ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
Rain per column for the fuel moisture model from the microphysics surface precipitation accumulators, for an engine that reads the rain (FireEngine::wants_surface_precip). More...
#include <AMReX_GpuQualifiers.H>#include <AMReX_MultiFab.H>#include <AMReX_MFIter.H>#include <AMReX_REAL.H>#include <ERF_SurfacePrecipitation.H>

Go to the source code of this file.
Functions | |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | fire_precip_rate_mm_hr (amrex::Real accum_now_kgm2, amrex::Real accum_prev_kgm2, amrex::Real dt_s) noexcept |
| Rain rate [mm/hr] from the change of the surface accumulation over one step. More... | |
| void | fire_surface_precip_accum_k0 (amrex::MultiFab &accum_2d, const SurfacePrecipAccumulationSources &sources, int klo) |
| Total liquid-water-equivalent surface precipitation accumulation [kg/m2] of every column, from the scheme-native accumulators. More... | |
| void | fire_precip_rate_from_accum (amrex::MultiFab &rate_2d, amrex::MultiFab &prev_2d, const amrex::MultiFab &now_2d, amrex::Real dt_s, bool prev_valid) |
| Rain rate [mm/hr] of every column over the step just taken, and roll the snapshot forward. More... | |
Rain per column for the fuel moisture model from the microphysics surface precipitation accumulators, for an engine that reads the rain (FireEngine::wants_surface_precip).
Every Eulerian microphysics scheme with precipitation keeps a cumulative surface accumulator per atmospheric column (Kessler's rain_accum, SAM's and Morrison's rain, snow and graupel accumulations, ...), exposed through Microphysics::Get_Surface_Precip_Accumulation_Ptrs() with a factor that turns the scheme's native unit into kg/m2 of liquid water. One kg/m2 of liquid water is one millimetre of depth, so the change of the accumulation over a step, divided by the step, is the rain rate in mm/hr that the time-lag and stick moisture updates take. The fire layer keeps the accumulation it saw at the end of its previous step (checkpointed) and forms that difference every step; a fresh start begins at zero, which is where every scheme starts its accumulators.
Snow, graupel and hail count with their liquid-water equivalent: the fuel models have no frozen-precipitation branch. There is no canopy interception.
|
inline |
Rain rate [mm/hr] of every column over the step just taken, and roll the snapshot forward.
rate_2d = fire_precip_rate_mm_hr(now, prev, dt) per column when prev_valid, zero otherwise (a restart from a checkpoint without the snapshot); then prev_2d = now_2d. All three MultiFabs share boxes and distribution.

|
noexcept |
Rain rate [mm/hr] from the change of the surface accumulation over one step.
| [in] | accum_now_kgm2 | accumulation at the end of the step [kg/m2 == mm] |
| [in] | accum_prev_kgm2 | accumulation at the end of the previous step [kg/m2] |
| [in] | dt_s | the step [s] |
Referenced by fire_precip_rate_from_accum().

|
inline |
Total liquid-water-equivalent surface precipitation accumulation [kg/m2] of every column, from the scheme-native accumulators.
Fills accum_2d, a one-component MultiFab on the level's boxes coarsened to one cell in z (box n of accum_2d is box n of the accumulators, with the same owner), from the k = klo plane of the sources. Schemes that provide a total give it directly; schemes that provide the species give their sum, so nothing is counted twice (the same rule as the 2D plotfile precipitation diagnostics). Without any source the field is zero.
Referenced by FireCoupler::advance().

