ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_ImmersedBuildingMasks.H File Reference
#include <AMReX_Array4.H>
#include <AMReX_REAL.H>
#include <AMReX_GpuQualifiers.H>
#include "ERF_NumericalConstants.H"
Include dependency graph for ERF_ImmersedBuildingMasks.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  if_bld::HorizFace
 
struct  if_bld::VertFace
 
struct  if_bld::HorizMasks
 
struct  if_bld::VertMasks
 

Namespaces

 if_bld
 

Functions

AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real if_bld::snapped (amrex::Real b, bool snap) noexcept
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real if_bld::raw_face_blank (const amrex::Array4< const amrex::Real > &t, const amrex::Array4< const amrex::Real > &tf, int i, int j, int k, int io, int jo, int ko) noexcept
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real if_bld::face_blank (const amrex::Array4< const amrex::Real > &t, const amrex::Array4< const amrex::Real > &tf, int i, int j, int k, int io, int jo, int ko, bool snap, amrex::Real small) noexcept
 
template<int dir>
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE HorizFace if_bld::horiz_face (const amrex::Array4< const amrex::Real > &t, const amrex::Array4< const amrex::Real > &tf, int i, int j, int k, int klo, bool snap, amrex::Real small) noexcept
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE VertFace if_bld::vert_face (const amrex::Array4< const amrex::Real > &t, const amrex::Array4< const amrex::Real > &tf, int i, int j, int k, bool snap, amrex::Real small) noexcept
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE HorizMasks if_bld::horiz_masks (amrex::Real t, amrex::Real below, amrex::Real above, amrex::Real lo, amrex::Real hi, bool normal_face, bool use_most, bool snap) noexcept
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE HorizMasks if_bld::horiz_masks (const HorizFace &f, bool use_most, bool snap) noexcept
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE VertMasks if_bld::vert_masks (amrex::Real t, amrex::Real above, amrex::Real south, amrex::Real north, amrex::Real west, amrex::Real east, bool above_floor, bool normal_face, bool use_most, bool snap) noexcept
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE VertMasks if_bld::vert_masks (const VertFace &f, bool above_floor, bool use_most, bool snap) noexcept
 
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real if_bld::implicit_weight (amrex::Real linear, amrex::Real raw) noexcept
 

Detailed Description

How the buildings immersed forcing reads a momentum face and which forcing it applies there, shared by the source kernels (ImmersedForcingBuildings_{X,Y,Z}mom) and the implicit projection (ERF::make_if_projection_sigma, erf.if_implicit_projection, erf-model/ERF#4887), so the two agree face by face on the blanking, on which faces carry the MOST wall law and on which the linear drag toward zero.