diff --git a/Exec/ABL/inputs_GABLS1_deardorff b/Exec/ABL/inputs_GABLS1_deardorff index 31ab03dad..1706bee02 100644 --- a/Exec/ABL/inputs_GABLS1_deardorff +++ b/Exec/ABL/inputs_GABLS1_deardorff @@ -78,10 +78,10 @@ erf.Ce = 0.7 # Note: Ce_lcoeff = C_e - 1.9*C_k erf.Ce_wall = 3.9 # To account for "wall effects" erf.sigma_k = 0.5 # TKE diffusion coeff = 2*Km = Km * inv_sigma_k, Moeng1984, Eqn. 15 -erf.rayleigh_damp_U = true -erf.rayleigh_damp_V = true +erf.rayleigh_damp_U = false +erf.rayleigh_damp_V = false erf.rayleigh_damp_W = true -erf.rayleigh_damp_T = true +erf.rayleigh_damp_T = false erf.rayleigh_dampcoef = 0.2 # [1/s] following FastEddy erf.rayleigh_zdamp = 100. # from Beare et al. 2006, "most models applied gravity wave damping above 300 m" diff --git a/Exec/MoistRegTests/Bomex/input_Kessler b/Exec/MoistRegTests/Bomex/input_Kessler index 3a90a93bf..69ec90388 100644 --- a/Exec/MoistRegTests/Bomex/input_Kessler +++ b/Exec/MoistRegTests/Bomex/input_Kessler @@ -9,8 +9,8 @@ amrex.fpe_trap_invalid = 1 fabarray.mfiter_tile_size = 1024 1024 1024 # PROBLEM SIZE & GEOMETRY -geometry.prob_extent = 3200 3200 4000 -amr.n_cell = 32 32 100 +geometry.prob_extent = 6400 6400 4000 +amr.n_cell = 64 64 100 geometry.is_periodic = 1 1 0 @@ -64,8 +64,8 @@ erf.dycore_horiz_adv_type = Upwind_3rd erf.dycore_vert_adv_type = Upwind_3rd erf.dryscal_horiz_adv_type = Upwind_3rd erf.dryscal_vert_adv_type = Upwind_3rd -erf.moistscal_horiz_adv_type = WENO5 -erf.moistscal_vert_adv_type = WENO5 +erf.moistscal_horiz_adv_type = Upwind_3rd +erf.moistscal_vert_adv_type = Upwind_3rd erf.moisture_model = "Kessler_NoRain" erf.buoyancy_type = 1 diff --git a/Exec/MoistRegTests/Bomex/input_SAM b/Exec/MoistRegTests/Bomex/input_SAM index 03dfa5e80..92f33955c 100644 --- a/Exec/MoistRegTests/Bomex/input_SAM +++ b/Exec/MoistRegTests/Bomex/input_SAM @@ -9,8 +9,8 @@ amrex.fpe_trap_invalid = 1 fabarray.mfiter_tile_size = 1024 1024 1024 # PROBLEM SIZE & GEOMETRY -geometry.prob_extent = 3200 3200 4000 -amr.n_cell = 32 32 100 +geometry.prob_extent = 6400 6400 4000 +amr.n_cell = 64 64 100 geometry.is_periodic = 1 1 0 @@ -64,8 +64,8 @@ erf.dycore_horiz_adv_type = Upwind_3rd erf.dycore_vert_adv_type = Upwind_3rd erf.dryscal_horiz_adv_type = Upwind_3rd erf.dryscal_vert_adv_type = Upwind_3rd -erf.moistscal_horiz_adv_type = WENO5 -erf.moistscal_vert_adv_type = WENO5 +erf.moistscal_horiz_adv_type = Upwind_3rd +erf.moistscal_vert_adv_type = Upwind_3rd erf.moisture_model = "SAM" erf.buoyancy_type = 1 diff --git a/Source/Microphysics/ERF_EulerianMicrophysics.H b/Source/Microphysics/ERF_EulerianMicrophysics.H index edf9c34cd..38d561b71 100644 --- a/Source/Microphysics/ERF_EulerianMicrophysics.H +++ b/Source/Microphysics/ERF_EulerianMicrophysics.H @@ -71,7 +71,8 @@ public: const amrex::Real&, /*!< current time */ const SolverChoice &solverChoice, /*!< Solver choice object */ amrex::Vector>&, /*!< Dycore state variables */ - const amrex::Vector>& /*!< terrain */) override + const amrex::Vector>&, /*!< terrain */ + const amrex::GpuArray& ) override { m_moist_model[lev]->Advance(dt_advance, solverChoice); } diff --git a/Source/Microphysics/ERF_LagrangianMicrophysics.H b/Source/Microphysics/ERF_LagrangianMicrophysics.H index 8ee581abe..e6cabb332 100644 --- a/Source/Microphysics/ERF_LagrangianMicrophysics.H +++ b/Source/Microphysics/ERF_LagrangianMicrophysics.H @@ -70,10 +70,11 @@ public: const amrex::Real& time, /*!< current time */ const SolverChoice& /*solverChoice*/, /*!< Solver choice object */ amrex::Vector>& a_vars, /*!< Dycore state variables */ - const amrex::Vector>& a_z/*!< terrain */) override + const amrex::Vector>& a_z/*!< terrain */, + const amrex::GpuArray& a_phys_bc_types ) override { if (lev > 0) return; - m_moist_model->Advance(dt_advance, iter, time, a_vars, a_z); + m_moist_model->Advance(dt_advance, iter, time, a_vars, a_z, a_phys_bc_types); } /*! \brief update microphysics variables from ERF state variables */ diff --git a/Source/Microphysics/ERF_Microphysics.H b/Source/Microphysics/ERF_Microphysics.H index 084572e0f..cfca27cae 100644 --- a/Source/Microphysics/ERF_Microphysics.H +++ b/Source/Microphysics/ERF_Microphysics.H @@ -8,6 +8,7 @@ #include #include #include "ERF_DataStruct.H" +#include "ERF_IndexDefines.H" /*! \brief Base class for microphysics interface */ class Microphysics { @@ -39,7 +40,8 @@ public: const amrex::Real&, const SolverChoice&, amrex::Vector>&, - const amrex::Vector>& ) = 0; + const amrex::Vector>&, + const amrex::GpuArray& ) = 0; /*! \brief update microphysics variables from ERF state variables */ virtual void Update_Micro_Vars_Lev (const int&, amrex::MultiFab&) = 0; diff --git a/Source/Microphysics/Null/ERF_NullMoistLagrangian.H b/Source/Microphysics/Null/ERF_NullMoistLagrangian.H index f05e93006..981e02652 100644 --- a/Source/Microphysics/Null/ERF_NullMoistLagrangian.H +++ b/Source/Microphysics/Null/ERF_NullMoistLagrangian.H @@ -7,6 +7,7 @@ #ifdef ERF_USE_PARTICLES #include +#include "ERF_IndexDefines.H" #include "ERF_NullMoist.H" /* forward declaration */ @@ -53,7 +54,8 @@ public: const int&, /* iter */ const amrex::Real&, /* time */ amrex::Vector>&, /* state variables */ - const amrex::Vector>& /* terrain */) { } + const amrex::Vector>&, /* terrain */ + const amrex::GpuArray& ) { } protected: diff --git a/Source/TimeIntegration/ERF_AdvanceMicrophysics.cpp b/Source/TimeIntegration/ERF_AdvanceMicrophysics.cpp index 93b37ff3d..e764b7f43 100644 --- a/Source/TimeIntegration/ERF_AdvanceMicrophysics.cpp +++ b/Source/TimeIntegration/ERF_AdvanceMicrophysics.cpp @@ -10,7 +10,7 @@ void ERF::advance_microphysics (int lev, { if (solverChoice.moisture_type != MoistureType::None) { micro->Update_Micro_Vars_Lev(lev, cons); - micro->Advance(lev, dt_advance, iteration, time, solverChoice, vars_new, z_phys_nd); + micro->Advance(lev, dt_advance, iteration, time, solverChoice, vars_new, z_phys_nd, phys_bc_type); micro->Update_State_Vars_Lev(lev, cons); } }