|
ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
#include <AMReX_Array4.H>#include <AMReX_Box.H>#include <AMReX_GpuContainers.H>#include <AMReX_Math.H>#include <AMReX_MultiFab.H>#include "ERF_Constants.H"#include "ERF_DataStruct.H"#include "ERF_EOS.H"#include "ERF_IndexDefines.H"#include "ERF_MicrophysicsUtils.H"#include "BoundaryConditions/ERF_MOSTUtils.H"#include "BoundaryConditions/ERF_WallThermodynamics.H"#include <cmath>#include <type_traits>

Go to the source code of this file.
Namespaces | |
| erf_cloud_chamber_wall_flux | |
Enumerations | |
| enum | erf_cloud_chamber_wall_flux::OwnedChannel : unsigned char { erf_cloud_chamber_wall_flux::OwnNone = 0 , erf_cloud_chamber_wall_flux::OwnMomentum = 1 << 0 , erf_cloud_chamber_wall_flux::OwnHeat = 1 << 1 , erf_cloud_chamber_wall_flux::OwnVapor = 1 << 2 , erf_cloud_chamber_wall_flux::OwnCloudWater = 1 << 3 } |
| enum class | erf_cloud_chamber_wall_flux::ScalarChannel : unsigned char { erf_cloud_chamber_wall_flux::None , erf_cloud_chamber_wall_flux::Heat , erf_cloud_chamber_wall_flux::Vapor , erf_cloud_chamber_wall_flux::CloudWater } |
Functions | |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool | erf_cloud_chamber_wall_flux::wall_uses_most_vapor (const erf_wall_thermodynamics::FaceWall &wall) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool | erf_cloud_chamber_wall_flux::wall_uses_most (const erf_wall_thermodynamics::FaceWall &wall) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE ScalarChannel | erf_cloud_chamber_wall_flux::scalar_channel_from_quantity (int quantity) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE int | erf_cloud_chamber_wall_flux::primitive_component (ScalarChannel channel) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool | erf_cloud_chamber_wall_flux::wall_owns_scalar_channel (const erf_wall_thermodynamics::FaceWall &wall, ScalarChannel channel) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE unsigned char | erf_cloud_chamber_wall_flux::scalar_channel_mask (ScalarChannel channel) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool | erf_cloud_chamber_wall_flux::owns (const WallFlux &flux, ScalarChannel channel) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE NeutralLogMomentumState | erf_cloud_chamber_wall_flux::neutral_log_momentum_state (amrex::Real U_t, amrex::Real wall_distance, amrex::Real z0_m) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::neutral_log_scalar_coefficient (amrex::Real wall_distance, amrex::Real z0_m, amrex::Real z0_scalar) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE MostStabilityResult | erf_cloud_chamber_wall_flux::most_stability_coordinate (amrex::Real Ri, amrex::Real D_m, amrex::Real D_s) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE FaceRuntimeCoefficients | erf_cloud_chamber_wall_flux::most_wall_coefficients (const erf_wall_thermodynamics::FaceWall &wall, amrex::Real theta_air, amrex::Real qv_air, amrex::Real p_hse, amrex::Real rdOcp, amrex::Real U_t, amrex::Real wall_distance, int gravity_sign) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > | erf_cloud_chamber_wall_flux::neutral_log_traction_on_fluid (const MomentumWallSample &sample, const NeutralLogMomentumState &neutral) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::neutral_scalar_rate (amrex::Real coefficient, amrex::Real U_t, amrex::Real dx_inv) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::momentum_infinity_row_sum_factor () noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::momentum_row_sum_rate (int component, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &low_rate, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &high_rate) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::momentum_rate_for_face (const erf_wall_thermodynamics::FaceWall &wall, amrex::Real U_t, amrex::Real dx_inv, const FaceRuntimeCoefficients &runtime=FaceRuntimeCoefficients{}) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool | erf_cloud_chamber_wall_flux::requires_tangential_speed (const erf_wall_thermodynamics::FaceWall &wall, ScalarChannel channel) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool | erf_cloud_chamber_wall_flux::requires_tangential_momentum (const erf_wall_thermodynamics::FaceWall &wall) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE bool | erf_cloud_chamber_wall_flux::wall_rate_requires_tangential_speed (const erf_wall_thermodynamics::FaceWall &wall) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::wall_rate_for_face (const erf_wall_thermodynamics::FaceWall &wall, amrex::Real U_t, amrex::Real dx_inv, const FaceRuntimeCoefficients &runtime) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::wall_rate_for_face (const erf_wall_thermodynamics::FaceWall &wall, amrex::Real U_t, amrex::Real dx_inv) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::wall_rate_for_face (const erf_wall_thermodynamics::FaceWall &wall, amrex::Real theta_air, amrex::Real qv_air, amrex::Real p_hse, amrex::Real rdOcp, amrex::Real U_t, amrex::Real dx_inv, int gravity_sign) noexcept |
| template<int DIR, bool HIGH> | |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::to_coordinate_flux (amrex::Real inward) noexcept |
| template<int DIR, bool HIGH> | |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > | erf_cloud_chamber_wall_flux::traction_from_local_inward (amrex::Real normal_in, amrex::Real tangent_a, amrex::Real tangent_b) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::bulk_theta_flux_in (amrex::Real rho, amrex::Real C_H, amrex::Real U_t, amrex::Real wall_temperature_K, amrex::Real theta_air, amrex::Real p_hse, amrex::Real rdOcp) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::bulk_vapor_flux_in (amrex::Real rho, amrex::Real C_E, amrex::Real U_t, amrex::Real wall_temperature_K, amrex::Real qv_air, amrex::Real p_hse) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > | erf_cloud_chamber_wall_flux::relative_tangential_velocity_cell_centered (int dir, int i, int j, int k, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &w, const erf_wall_thermodynamics::FaceWall &wall) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::tangential_magnitude (const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &u_t) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::tangential_speed (int dir, int i, int j, int k, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &w, const erf_wall_thermodynamics::FaceWall &wall) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::tangential_speed_cell_centered (int dir, int i, int j, int k, const amrex::Array4< const amrex::Real > &velocity, const erf_wall_thermodynamics::FaceWall &wall) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::resolved_theta_flux_in (amrex::Real rho, amrex::Real alpha_T, amrex::Real wall_temperature_K, amrex::Real theta_air, amrex::Real p_hse, amrex::Real dx_inv, amrex::Real rdOcp) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::resolved_vapor_flux_in (amrex::Real rho, amrex::Real alpha_C, amrex::Real wall_temperature_K, amrex::Real qv_air, amrex::Real p_hse, amrex::Real dx_inv) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE WallFlux | erf_cloud_chamber_wall_flux::evaluate_momentum_traction (const erf_wall_thermodynamics::FaceWall &wall, const MomentumWallSample &sample) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE WallFlux | erf_cloud_chamber_wall_flux::evaluate_scalar_flux_in (const erf_wall_thermodynamics::FaceWall &wall, ScalarChannel channel, const ScalarWallSample &sample) noexcept |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::scalar_flux_in (const WallFlux &flux, ScalarChannel channel) noexcept |
| template<int DIR, bool HIGH> | |
| AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE ScalarFluxReplacement | erf_cloud_chamber_wall_flux::scalar_flux_replacement (amrex::Real old_flux, amrex::Real inward_flux, amrex::Real dx_inv) noexcept |
| template<int DIR, bool HIGH> | |
| AMREX_FORCE_INLINE void | erf_cloud_chamber_wall_flux::apply_face (const amrex::Box &bx, const amrex::Box &domain, const int quantity, const int flux_comp, const amrex::Array4< const amrex::Real > &state, const amrex::Array4< const amrex::Real > &prim, const amrex::Array4< const amrex::Real > &base_state, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &w, const amrex::Array4< amrex::Real > &rhs, const amrex::Array4< amrex::Real > &xflux, const amrex::Array4< amrex::Real > &yflux, const amrex::Array4< amrex::Real > &zflux, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dx_inv, const erf_wall_thermodynamics::Boundary &walls, const amrex::Real alpha_T, const amrex::Real alpha_C, const amrex::Real rdOcp, const bool cloudy) |
| void | erf_cloud_chamber_wall_flux::apply (const amrex::Box &bx, const amrex::Box &domain, const int quantity, const int flux_comp, const amrex::Array4< const amrex::Real > &state, const amrex::Array4< const amrex::Real > &prim, const amrex::Array4< const amrex::Real > &base_state, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &w, const amrex::Array4< amrex::Real > &rhs, const amrex::Array4< amrex::Real > &xflux, const amrex::Array4< amrex::Real > &yflux, const amrex::Array4< amrex::Real > &zflux, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dx_inv, const erf_wall_thermodynamics::Boundary &walls, const amrex::Real alpha_T, const amrex::Real alpha_C, const amrex::Real rdOcp, const bool cloudy=false) |
| bool | erf_cloud_chamber_wall_flux::has_velocity_dependent_scalar_wall (const erf_wall_thermodynamics::Boundary &walls) noexcept |
| AMREX_FORCE_INLINE amrex::Real | erf_cloud_chamber_wall_flux::wall_dt_from_max_rate (amrex::Real max_rate, amrex::Real wall_cfl=amrex::Real(0.5)) noexcept |