diff --git a/.github/workflows/cuda-ci.yml b/.github/workflows/cuda-ci.yml index f709076efd..3838aef6e2 100644 --- a/.github/workflows/cuda-ci.yml +++ b/.github/workflows/cuda-ci.yml @@ -90,7 +90,7 @@ jobs: - name: Report run: | - grep -Ei "warning:|error:" ${{runner.workspace}}/build-${{matrix.cuda_pkg}}-output.txt \ + grep -Ei "warning:|warning #|error:|error #" ${{runner.workspace}}/build-${{matrix.cuda_pkg}}-output.txt \ | grep -Ev "Submodules/(amrex|googletest)" | grep -Ev "lto-wrapper: warning:" | sort | uniq \ | awk 'BEGIN{i=0}{print $0}{i++}END{print "Warnings: "i}' > ${{runner.workspace}}/build-${{matrix.cuda_pkg}}-output-warnings.txt cat ${{runner.workspace}}/build-${{matrix.cuda_pkg}}-output-warnings.txt diff --git a/Source/Microphysics/Kessler/ERF_Kessler.H b/Source/Microphysics/Kessler/ERF_Kessler.H index 14f5333805..485a9fcaf6 100644 --- a/Source/Microphysics/Kessler/ERF_Kessler.H +++ b/Source/Microphysics/Kessler/ERF_Kessler.H @@ -86,6 +86,8 @@ public: void Copy_Micro_to_State (amrex::MultiFab& cons_in) override; + using NullMoist::Update_Micro_Vars; + // update micro vars void Update_Micro_Vars (amrex::MultiFab& cons_in) override diff --git a/Source/Microphysics/Morrison/ERF_Morrison.H b/Source/Microphysics/Morrison/ERF_Morrison.H index 1c019b8a29..43e0a5ae9b 100644 --- a/Source/Microphysics/Morrison/ERF_Morrison.H +++ b/Source/Microphysics/Morrison/ERF_Morrison.H @@ -100,6 +100,8 @@ public: void Copy_Micro_to_State (amrex::MultiFab& cons_in) override; + using NullMoist::Update_Micro_Vars; + void Update_Micro_Vars (amrex::MultiFab& cons_in) override { diff --git a/Source/Microphysics/SAM/ERF_SAM.H b/Source/Microphysics/SAM/ERF_SAM.H index 7ff000736b..89576d3d04 100644 --- a/Source/Microphysics/SAM/ERF_SAM.H +++ b/Source/Microphysics/SAM/ERF_SAM.H @@ -112,6 +112,8 @@ public: void Copy_Micro_to_State (amrex::MultiFab& cons_in) override; + using NullMoist::Update_Micro_Vars; + void Update_Micro_Vars (amrex::MultiFab& cons_in) override { diff --git a/Source/Microphysics/SuperDropletsMoist/ERF_SuperDropletsMoist.H b/Source/Microphysics/SuperDropletsMoist/ERF_SuperDropletsMoist.H index 8874d5b646..e5b5231911 100644 --- a/Source/Microphysics/SuperDropletsMoist/ERF_SuperDropletsMoist.H +++ b/Source/Microphysics/SuperDropletsMoist/ERF_SuperDropletsMoist.H @@ -194,6 +194,8 @@ class SuperDropletsMoist : public NullMoistLagrangian { const amrex::Vector& mf_array, const BCTypeArr& bc_arr) override; + using NullMoist::Update_Micro_Vars; + /*! \brief Update microphysics variables * \param[in] a_cons_vars Conservative variables multifab */ diff --git a/Source/Microphysics/WSM6/ERF_WSM6.H b/Source/Microphysics/WSM6/ERF_WSM6.H index fdc5563c1f..df50bed9ff 100644 --- a/Source/Microphysics/WSM6/ERF_WSM6.H +++ b/Source/Microphysics/WSM6/ERF_WSM6.H @@ -86,6 +86,8 @@ public: void Copy_State_to_Micro(const amrex::MultiFab& cons_in) override; void Copy_Micro_to_State(amrex::MultiFab& cons_in) override; + using NullMoist::Update_Micro_Vars; + void Update_Micro_Vars(amrex::MultiFab& cons_in) override { Copy_State_to_Micro(cons_in); diff --git a/Source/TimeIntegration/ERF_SlowRhsPre.cpp b/Source/TimeIntegration/ERF_SlowRhsPre.cpp index ed98b0802e..aeedbe0d00 100644 --- a/Source/TimeIntegration/ERF_SlowRhsPre.cpp +++ b/Source/TimeIntegration/ERF_SlowRhsPre.cpp @@ -470,13 +470,6 @@ void erf_slow_rhs_pre (int level, int finest_level, const Array4< Real>& omega_arr = Omega.array(mfi); - Array4 z_t; - if (z_t_mf) { - z_t = z_t_mf->array(mfi); - } else { - z_t = Array4{}; - } - const Array4& rho_u_rhs = S_rhs[IntVars::xmom].array(mfi); const Array4& rho_v_rhs = S_rhs[IntVars::ymom].array(mfi); const Array4& rho_w_rhs = S_rhs[IntVars::zmom].array(mfi); diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index a51fc2526b..7e81627801 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -85,6 +85,18 @@ if(ERF_ENABLE_TESTS) set(CLOUD_CHAMBER_CHECKER "${CMAKE_CURRENT_BINARY_DIR}/erf_cloud_chamber_check${CMAKE_EXECUTABLE_SUFFIX}") + if(ERF_ENABLE_CUDA) + foreach(_erf_test_tool IN ITEMS + erf_shoc_plotfile_check + erf_shoc_microphysics_differential + erf_shoc_mutation_differential + erf_shoc_gold_differential + erf_anelastic_wall_diffusion_check + erf_cloud_chamber_check) + setup_target_for_cuda_compilation(${_erf_test_tool}) + endforeach() + endif() + include(${CMAKE_CURRENT_SOURCE_DIR}/CTestList.cmake) endif() diff --git a/Tests/Unit/Microphysics/SatAdj/ERF_GTestSatAdjTemperatureDiagnostics.cpp b/Tests/Unit/Microphysics/SatAdj/ERF_GTestSatAdjTemperatureDiagnostics.cpp index 559de0254c..5c8e0a4210 100644 --- a/Tests/Unit/Microphysics/SatAdj/ERF_GTestSatAdjTemperatureDiagnostics.cpp +++ b/Tests/Unit/Microphysics/SatAdj/ERF_GTestSatAdjTemperatureDiagnostics.cpp @@ -50,6 +50,19 @@ const char* diag_name[DIAG_NUM] = { "T_fixed_p" }; +void fill_anelastic_reference_pressure(amrex::MultiFab& base) +{ + for (amrex::MFIter mfi(base); mfi.isValid(); ++mfi) { + const amrex::Box& bx = mfi.validbox(); + const auto p0 = base.array(mfi); + amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept { + p0(i,j,k,BaseState::p0_comp) = (i == 0) ? + amrex::Real(100000.0) : amrex::Real(90000.0); + }); + } + satadj_test::sync(); +} + } // namespace // Motivation: The observed artifact appears in thermodynamic temperature but @@ -251,15 +264,7 @@ TEST(SatAdjTemperatureDiagnostics, AnelasticPressureContextMatchesReference) cons.setVal(amrex::Real(1.0), Rho_comp, 1); cons.setVal(amrex::Real(300.0), RhoTheta_comp, 1); cons.setVal(amrex::Real(0.03), RhoQ1_comp, 1); - for (amrex::MFIter mfi(base); mfi.isValid(); ++mfi) { - const auto bx = mfi.validbox(); - const auto p0 = base.array(mfi); - amrex::ParallelFor(bx, [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept { - p0(i,j,k,BaseState::p0_comp) = (i == 0) ? - amrex::Real(100000.0) : amrex::Real(90000.0); - }); - } - satadj_test::sync(); + fill_anelastic_reference_pressure(base); SatAdj satadj; SolverChoice sc = make_solver_choice(false);