diff --git a/CMake/BuildERFExe.cmake b/CMake/BuildERFExe.cmake index 9c169110a..155c82578 100644 --- a/CMake/BuildERFExe.cmake +++ b/CMake/BuildERFExe.cmake @@ -49,6 +49,18 @@ function(build_erf_lib erf_lib_name) target_compile_definitions(${erf_lib_name} PUBLIC ERF_USE_PARTICLES) endif() + if(ERF_ENABLE_EB) + target_sources(${erf_lib_name} PRIVATE + ${SRC_DIR}/EB/Init_EB.cpp + ${SRC_DIR}/EB/eb_box.cpp + ${SRC_DIR}/EB/eb_cylinder.cpp + ${SRC_DIR}/EB/eb_regular.cpp + ${SRC_DIR}/EB/initEB.cpp + ${SRC_DIR}/EB/writeEBsurface.cpp) + target_include_directories(${erf_lib_name} PUBLIC ${SRC_DIR}/EB) + target_compile_definitions(${erf_lib_name} PUBLIC ERF_USE_EB) + endif() + if(ERF_ENABLE_NETCDF) target_sources(${erf_lib_name} PRIVATE ${SRC_DIR}/IO/NCInterface.cpp diff --git a/CMake/SetAmrexOptions.cmake b/CMake/SetAmrexOptions.cmake index 39310d5fb..c902bef72 100644 --- a/CMake/SetAmrexOptions.cmake +++ b/CMake/SetAmrexOptions.cmake @@ -37,6 +37,11 @@ if(ERF_ENABLE_PARTICLES) set(AMReX_PARTICLES ON) endif() +set(AMReX_EB OFF) +if(ERF_ENABLE_EB) + set(AMReX_EB ON) +endif() + if(ERF_ENABLE_CUDA) set(AMReX_GPU_BACKEND CUDA CACHE STRING "AMReX GPU type" FORCE) set(AMReX_CUDA_WARN_CAPTURE_THIS OFF) diff --git a/Docs/sphinx_doc/RegressionTests.rst b/Docs/sphinx_doc/RegressionTests.rst index ca3e7e111..f61a68b53 100644 --- a/Docs/sphinx_doc/RegressionTests.rst +++ b/Docs/sphinx_doc/RegressionTests.rst @@ -408,7 +408,7 @@ Test Location: `Tests/test_files/CouetteFlow`_ Problem Location: `Exec/RegTests/CouetteFlow`_ -.. _`Exec/RegTests/CouetteFlow`: https://github.com/erf-model/ERF/tree/development/Exec/RegTests/CouetteFlow +.. _`Exec/RegTests/Couette_Poiseuille`: https://github.com/erf-model/ERF/tree/development/Exec/RegTests/Couette_Poiseuille Poiseuille Flow --------------- @@ -424,7 +424,7 @@ Test Location: `Tests/test_files/PoiseuilleFlow`_ Problem Location: `Exec/RegTests/PoiseuilleFlow`_ -.. _`Exec/RegTests/PoiseuilleFlow`: https://github.com/erf-model/ERF/tree/development/Exec/RegTests/PoiseuilleFlow +.. _`Exec/RegTests/Couette_Poiseuille`: https://github.com/erf-model/ERF/tree/development/Exec/RegTests/Couette_Poiseuille Nonlinear Density Current --------------------------- diff --git a/Exec/CMakeLists.txt b/Exec/CMakeLists.txt index 5246ae6e1..edd761a38 100644 --- a/Exec/CMakeLists.txt +++ b/Exec/CMakeLists.txt @@ -6,12 +6,11 @@ if (ERF_ENABLE_MULTIBLOCK) add_subdirectory(DevTests/MultiBlock) elseif (ERF_ENABLE_REGRESSION_TESTS_ONLY) # add_subdirectory(RegTests/Bubble) - add_subdirectory(RegTests/CouetteFlow) + add_subdirectory(RegTests/Couette_Poiseuille) add_subdirectory(RegTests/DensityCurrent) add_subdirectory(RegTests/DynamicRefinement) add_subdirectory(RegTests/EkmanSpiral_custom) add_subdirectory(RegTests/IsentropicVortex) - add_subdirectory(RegTests/PoiseuilleFlow) add_subdirectory(RegTests/ScalarAdvDiff) add_subdirectory(RegTests/TaylorGreenVortex) add_subdirectory(DevTests/MovingTerrain) @@ -21,7 +20,7 @@ else () add_subdirectory(Radiation) add_subdirectory(SquallLine_2D) add_subdirectory(RegTests/Bubble) - add_subdirectory(RegTests/CouetteFlow) + add_subdirectory(RegTests/Couette_Poiseuille) add_subdirectory(RegTests/DensityCurrent) add_subdirectory(RegTests/DynamicRefinement) add_subdirectory(RegTests/EkmanSpiral_custom) @@ -29,7 +28,6 @@ else () add_subdirectory(RegTests/EkmanSpiral_input_sounding) add_subdirectory(RegTests/IsentropicVortex) add_subdirectory(RegTests/ParticlesOverWoA) - add_subdirectory(RegTests/PoiseuilleFlow) add_subdirectory(RegTests/ScalarAdvDiff) add_subdirectory(RegTests/TaylorGreenVortex) add_subdirectory(RegTests/WitchOfAgnesi) diff --git a/Exec/RegTests/CouetteFlow/README b/Exec/RegTests/CouetteFlow/README deleted file mode 100644 index 998bdc8d3..000000000 --- a/Exec/RegTests/CouetteFlow/README +++ /dev/null @@ -1,7 +0,0 @@ -This problem setup is for classic Couette flow. The domain is periodic in the x- and y-directions -and has no slip walls on the top and bottom. The velocity is specified to be -(2,0,0) (for inputs_couette_x) or (0,2,0) (for inputs_couette_y) at the top wall. - -The Couette flow and Poiseuille flow problems primarily test the implementation of the -viscous terms, in particular the discretization at the boundaries. - diff --git a/Exec/RegTests/CouetteFlow/prob.cpp b/Exec/RegTests/CouetteFlow/prob.cpp deleted file mode 100644 index 2f9208b18..000000000 --- a/Exec/RegTests/CouetteFlow/prob.cpp +++ /dev/null @@ -1,78 +0,0 @@ -#include "prob.H" - -using namespace amrex; - -std::unique_ptr -amrex_probinit( - const amrex_real* /*problo*/, - const amrex_real* /*probhi*/) -{ - return std::make_unique(); -} - -Problem::Problem() -{ - // Parse params - amrex::ParmParse pp("prob"); - pp.query("rho_0", parms.rho_0); - pp.query("T_0", parms.T_0); - pp.query("u_0", parms.u_0); - pp.query("v_0", parms.v_0); - pp.query("w_0", parms.w_0); - - init_base_parms(parms.rho_0, parms.T_0); -} - -void -Problem::init_custom_pert( - const Box& bx, - const Box& xbx, - const Box& ybx, - const Box& zbx, - Array4 const& /*state*/, - Array4 const& state_pert, - Array4 const& x_vel_pert, - Array4 const& y_vel_pert, - Array4 const& z_vel_pert, - Array4 const& /*r_hse*/, - Array4 const& /*p_hse*/, - Array4 const& /*z_nd*/, - Array4 const& /*z_cc*/, - GeometryData const& geomdata, - Array4 const& /*mf_m*/, - Array4 const& /*mf_u*/, - Array4 const& /*mf_v*/, - const SolverChoice& sc) -{ - const bool use_moisture = (sc.moisture_type != MoistureType::None); - - amrex::ParallelFor(bx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - - // Set scalar to 0 - state_pert(i, j, k, RhoScalar_comp) = 0.0; - - if (use_moisture) { - state_pert(i, j, k, RhoQ1_comp) = 0.0; - state_pert(i, j, k, RhoQ2_comp) = 0.0; - } - - }); - - amrex::ParallelFor(xbx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - const auto *const prob_hi = geomdata.ProbHi(); - const auto *const dx = geomdata.CellSize(); - const Real z = (k + 0.5) * dx[2]; - x_vel_pert(i, j, k) = parms.u_0 * z / prob_hi[2]; - }); - - amrex::ParallelFor(ybx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - const auto *const prob_hi = geomdata.ProbHi(); - const auto *const dx = geomdata.CellSize(); - const Real z = (k + 0.5) * dx[2]; - y_vel_pert(i, j, k) = parms.v_0 * z / prob_hi[2]; - }); - - amrex::ParallelFor(zbx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { - z_vel_pert(i, j, k) = parms.w_0; - }); -} diff --git a/Exec/RegTests/CouetteFlow/CMakeLists.txt b/Exec/RegTests/Couette_Poiseuille/CMakeLists.txt similarity index 86% rename from Exec/RegTests/CouetteFlow/CMakeLists.txt rename to Exec/RegTests/Couette_Poiseuille/CMakeLists.txt index 3d3a05acb..cfa90fd97 100644 --- a/Exec/RegTests/CouetteFlow/CMakeLists.txt +++ b/Exec/RegTests/Couette_Poiseuille/CMakeLists.txt @@ -1,4 +1,4 @@ -set(erf_exe_name erf_couette_flow) +set(erf_exe_name erf_couette_poiseuille) add_executable(${erf_exe_name} "") target_sources(${erf_exe_name} diff --git a/Exec/RegTests/CouetteFlow/GNUmakefile b/Exec/RegTests/Couette_Poiseuille/GNUmakefile similarity index 87% rename from Exec/RegTests/CouetteFlow/GNUmakefile rename to Exec/RegTests/Couette_Poiseuille/GNUmakefile index 42d99ae33..1efc87478 100644 --- a/Exec/RegTests/CouetteFlow/GNUmakefile +++ b/Exec/RegTests/Couette_Poiseuille/GNUmakefile @@ -29,5 +29,5 @@ Bpack := ./Make.package Blocs := . ERF_HOME := ../../.. -ERF_PROBLEM_DIR = $(ERF_HOME)/Exec/RegTests/CouetteFlow +ERF_PROBLEM_DIR = $(ERF_HOME)/Exec/RegTests/Couette_Poiseuille include $(ERF_HOME)/Exec/Make.ERF diff --git a/Exec/RegTests/CouetteFlow/Make.package b/Exec/RegTests/Couette_Poiseuille/Make.package similarity index 100% rename from Exec/RegTests/CouetteFlow/Make.package rename to Exec/RegTests/Couette_Poiseuille/Make.package diff --git a/Exec/RegTests/Couette_Poiseuille/README b/Exec/RegTests/Couette_Poiseuille/README new file mode 100644 index 000000000..6eb0c2787 --- /dev/null +++ b/Exec/RegTests/Couette_Poiseuille/README @@ -0,0 +1,13 @@ +This directory has two problem setups: Couette flow and Poiseuille flow. +These problems primarily test the implementation of the viscous terms, +in particular the discretization at the boundaries. + +If prob_type == 1 in the inputs file, then the problem setup is for classic Couette flow. +The domain is periodic in the x- and y-directions and has no slip walls on the top and bottom. +The velocity is specified to be (2,0,0) (for inputs_couette_x) or +(0,2,0) (for inputs_couette_y) at the top wall. + +If prob_type == 10 or 11 in the inputs file, then the problem setup is for classic Poiseuille flow. +The domain is periodic in the x- and y-directions and has no slip walls on the top and bottom. +The flow is driven by a pressure gradient in the x-direction if prob_type == 10, +or in the y-direction if prob_type = 11. diff --git a/Exec/RegTests/CouetteFlow/couette_helpers.py b/Exec/RegTests/Couette_Poiseuille/couette_helpers.py similarity index 100% rename from Exec/RegTests/CouetteFlow/couette_helpers.py rename to Exec/RegTests/Couette_Poiseuille/couette_helpers.py diff --git a/Exec/RegTests/CouetteFlow/inputs_couette_x b/Exec/RegTests/Couette_Poiseuille/inputs_couette_x similarity index 94% rename from Exec/RegTests/CouetteFlow/inputs_couette_x rename to Exec/RegTests/Couette_Poiseuille/inputs_couette_x index b62f1b996..a2e7b7604 100644 --- a/Exec/RegTests/CouetteFlow/inputs_couette_x +++ b/Exec/RegTests/Couette_Poiseuille/inputs_couette_x @@ -1,4 +1,4 @@ -# ------------------ INPUTS TO MAIN PROGRAM ------------------- +#------------------ INPUTS TO MAIN PROGRAM ------------------- max_step = 50 amrex.fpe_trap_invalid = 1 @@ -49,6 +49,8 @@ erf.dynamicViscosity = 0.1 erf.init_type = "uniform" # PROBLEM PARAMETERS +prob.prob_type = 1 + prob.rho_0 = 1.0 prob.T_0 = 300.0 # NOTE: this u_0 should match the zhi.velocity specified above diff --git a/Exec/RegTests/CouetteFlow/inputs_couette_y b/Exec/RegTests/Couette_Poiseuille/inputs_couette_y similarity index 98% rename from Exec/RegTests/CouetteFlow/inputs_couette_y rename to Exec/RegTests/Couette_Poiseuille/inputs_couette_y index 1eae945d9..5af596575 100644 --- a/Exec/RegTests/CouetteFlow/inputs_couette_y +++ b/Exec/RegTests/Couette_Poiseuille/inputs_couette_y @@ -49,6 +49,8 @@ erf.dynamicViscosity = 0.1 erf.init_type = "uniform" # PROBLEM PARAMETERS +prob.prob_type = 1 + prob.rho_0 = 1.0 prob.T_0 = 300.0 # NOTE: this v_0 should match the zhi.velocity specified above diff --git a/Exec/RegTests/PoiseuilleFlow/inputs_neumann_test b/Exec/RegTests/Couette_Poiseuille/inputs_neumann_test similarity index 98% rename from Exec/RegTests/PoiseuilleFlow/inputs_neumann_test rename to Exec/RegTests/Couette_Poiseuille/inputs_neumann_test index f88f49106..507aa12d5 100644 --- a/Exec/RegTests/PoiseuilleFlow/inputs_neumann_test +++ b/Exec/RegTests/Couette_Poiseuille/inputs_neumann_test @@ -66,5 +66,7 @@ erf.use_coriolis = false erf.init_type = "uniform" # PROBLEM PARAMETERS +prob.prob_type = 10 + prob.rho_0 = 2.0 prob.T_0 = 300.0 diff --git a/Exec/RegTests/PoiseuilleFlow/inputs_poiseuille_x b/Exec/RegTests/Couette_Poiseuille/inputs_poiseuille_x similarity index 100% rename from Exec/RegTests/PoiseuilleFlow/inputs_poiseuille_x rename to Exec/RegTests/Couette_Poiseuille/inputs_poiseuille_x diff --git a/Exec/RegTests/PoiseuilleFlow/inputs_poiseuille_y b/Exec/RegTests/Couette_Poiseuille/inputs_poiseuille_y similarity index 100% rename from Exec/RegTests/PoiseuilleFlow/inputs_poiseuille_y rename to Exec/RegTests/Couette_Poiseuille/inputs_poiseuille_y diff --git a/Exec/RegTests/CouetteFlow/plot_couette_flow_evolution.py b/Exec/RegTests/Couette_Poiseuille/plot_couette_flow_evolution.py similarity index 100% rename from Exec/RegTests/CouetteFlow/plot_couette_flow_evolution.py rename to Exec/RegTests/Couette_Poiseuille/plot_couette_flow_evolution.py diff --git a/Exec/RegTests/CouetteFlow/prob.H b/Exec/RegTests/Couette_Poiseuille/prob.H similarity index 82% rename from Exec/RegTests/CouetteFlow/prob.H rename to Exec/RegTests/Couette_Poiseuille/prob.H index 0d9d8db18..2a7380b15 100644 --- a/Exec/RegTests/CouetteFlow/prob.H +++ b/Exec/RegTests/Couette_Poiseuille/prob.H @@ -9,10 +9,12 @@ struct ProbParm : ProbParmDefaults { amrex::Real rho_0 = 1.0; - amrex::Real T_0 = 300.0; amrex::Real u_0 = 0.0; amrex::Real v_0 = 0.0; amrex::Real w_0 = 0.0; + amrex::Real T_0 = 300.0; + + int prob_type = -1; }; // namespace ProbParm class Problem : public ProblemBase @@ -43,7 +45,15 @@ public: const SolverChoice& sc) override; protected: - std::string name() override { return "Couette Flow"; } + std::string name() override { + if ( parms.prob_type == 1 ) { + return "Couette Flow"; + } else if ( parms.prob_type == 10 || parms.prob_type == 11) { + return "Poiseuille Flow"; + } else { + return "Unknown"; + } + } private: ProbParm parms; diff --git a/Exec/RegTests/Couette_Poiseuille/prob.cpp b/Exec/RegTests/Couette_Poiseuille/prob.cpp new file mode 100644 index 000000000..187607a97 --- /dev/null +++ b/Exec/RegTests/Couette_Poiseuille/prob.cpp @@ -0,0 +1,120 @@ +#include "prob.H" + +using namespace amrex; + +std::unique_ptr +amrex_probinit( + const amrex_real* /*problo*/, + const amrex_real* /*probhi*/) +{ + return std::make_unique(); +} + +Problem::Problem() +{ + // Parse params + amrex::ParmParse pp("prob"); + pp.query("rho_0", parms.rho_0); + pp.query("u_0", parms.u_0); + pp.query("v_0", parms.v_0); + pp.query("w_0", parms.w_0); + pp.query("T_0", parms.T_0); + + pp.get("prob_type", parms.prob_type); + + init_base_parms(parms.rho_0, parms.T_0); +} + +void +Problem::init_custom_pert( + const Box& bx, + const Box& xbx, + const Box& ybx, + const Box& zbx, + Array4 const& /*state*/, + Array4 const& state_pert, + Array4 const& x_vel_pert, + Array4 const& y_vel_pert, + Array4 const& z_vel_pert, + Array4 const& /*r_hse*/, + Array4 const& /*p_hse*/, + Array4 const& /*z_nd*/, + Array4 const& /*z_cc*/, + GeometryData const& geomdata, + Array4 const& /*mf_m*/, + Array4 const& /*mf_u*/, + Array4 const& /*mf_v*/, + const SolverChoice& sc) +{ + const bool use_moisture = (sc.moisture_type != MoistureType::None); + + ParallelFor(bx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept + { + state_pert(i, j, k, RhoScalar_comp) = 0.0; + + if (use_moisture) { + state_pert(i, j, k, RhoQ1_comp) = 0.0; + state_pert(i, j, k, RhoQ2_comp) = 0.0; + } + }); + + AMREX_ALWAYS_ASSERT (parms.prob_type == 1 || parms.prob_type == 10 || parms.prob_type == 11); + + // Couette flow + if (parms.prob_type == 1) { + + ParallelFor(xbx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + const auto *const prob_hi = geomdata.ProbHi(); + const auto *const dx = geomdata.CellSize(); + const Real z = (k + 0.5) * dx[2]; + x_vel_pert(i, j, k) = parms.u_0 * z / prob_hi[2]; + }); + + ParallelFor(ybx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + const auto *const prob_hi = geomdata.ProbHi(); + const auto *const dx = geomdata.CellSize(); + const Real z = (k + 0.5) * dx[2]; + y_vel_pert(i, j, k) = parms.v_0 * z / prob_hi[2]; + }); + + ParallelFor(zbx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept { + z_vel_pert(i, j, k) = parms.w_0; + }); + + // Poiseuille flow + } else if (parms.prob_type == 10 || parms.prob_type == 11) { + + ParallelFor(xbx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept + { + const Real* prob_lo = geomdata.ProbLo(); + const Real* dx = geomdata.CellSize(); + const Real z_h = prob_lo[2] + (k + 0.5) * dx[2]; + + // Set the x-velocity to be a parabolic profile with max 1 at z = 0 and 0 at z = +/-1 + if (parms.prob_type == 10) { + x_vel_pert(i, j, k) = 1.0 - z_h * z_h; + } else { + x_vel_pert(i, j, k) = 0.0; + } + }); + + ParallelFor(ybx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept + { + const Real* prob_lo = geomdata.ProbLo(); + const Real* dx = geomdata.CellSize(); + const Real z_h = prob_lo[2] + (k + 0.5) * dx[2]; + + // Set the x-velocity to be a parabolic profile with max 1 at z = 0 and 0 at z = +/-1 + if (parms.prob_type == 11) { + y_vel_pert(i, j, k) = 1.0 - z_h * z_h; + } else { + y_vel_pert(i, j, k) = 0.0; + } + }); + + ParallelFor(zbx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept + { + z_vel_pert(i, j, k) = 0.0; + }); + } // prob_type +} diff --git a/Exec/RegTests/PoiseuilleFlow/CMakeLists.txt b/Exec/RegTests/PoiseuilleFlow/CMakeLists.txt deleted file mode 100644 index 6bc0fbeac..000000000 --- a/Exec/RegTests/PoiseuilleFlow/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -set(erf_exe_name erf_poiseuille_flow) - -add_executable(${erf_exe_name} "") -target_sources(${erf_exe_name} - PRIVATE - prob.cpp -) - -target_include_directories(${erf_exe_name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}) - -include(${CMAKE_SOURCE_DIR}/CMake/BuildERFExe.cmake) -build_erf_exe(${erf_exe_name}) diff --git a/Exec/RegTests/PoiseuilleFlow/GNUmakefile b/Exec/RegTests/PoiseuilleFlow/GNUmakefile deleted file mode 100644 index 9e472b309..000000000 --- a/Exec/RegTests/PoiseuilleFlow/GNUmakefile +++ /dev/null @@ -1,33 +0,0 @@ -# AMReX -COMP = gnu -PRECISION = DOUBLE - -# Profiling -PROFILE = FALSE -TINY_PROFILE = FALSE -COMM_PROFILE = FALSE -TRACE_PROFILE = FALSE -MEM_PROFILE = FALSE -USE_GPROF = FALSE - -# Performance -USE_MPI = TRUE -USE_OMP = FALSE - -USE_CUDA = FALSE -USE_HIP = FALSE -USE_SYCL = FALSE - -# Debugging -DEBUG = FALSE - -TEST = TRUE -USE_ASSERTION = TRUE - -# GNU Make -Bpack := ./Make.package -Blocs := . - -ERF_HOME := ../../.. -ERF_PROBLEM_DIR = $(ERF_HOME)/Exec/RegTests/PoiseuilleFlow -include $(ERF_HOME)/Exec/Make.ERF diff --git a/Exec/RegTests/PoiseuilleFlow/Make.package b/Exec/RegTests/PoiseuilleFlow/Make.package deleted file mode 100644 index aeacb72f0..000000000 --- a/Exec/RegTests/PoiseuilleFlow/Make.package +++ /dev/null @@ -1,2 +0,0 @@ -CEXE_headers += prob.H -CEXE_sources += prob.cpp diff --git a/Exec/RegTests/PoiseuilleFlow/README b/Exec/RegTests/PoiseuilleFlow/README deleted file mode 100644 index 72c6d9112..000000000 --- a/Exec/RegTests/PoiseuilleFlow/README +++ /dev/null @@ -1,6 +0,0 @@ -This problem setup is for classic Poiseuille flow. The domain is periodic in the x- and y-directions -and has no slip walls on the top and bottom. The flow is driven by a pressure gradient in the x- or -y-direction. - -The Couette flow and Poiseuille flow problems primarily test the implementation of the -viscous terms, in particular the discretization at the boundaries. diff --git a/Exec/RegTests/PoiseuilleFlow/prob.H b/Exec/RegTests/PoiseuilleFlow/prob.H deleted file mode 100644 index 75274a005..000000000 --- a/Exec/RegTests/PoiseuilleFlow/prob.H +++ /dev/null @@ -1,51 +0,0 @@ -#ifndef _PROB_H_ -#define _PROB_H_ - -#include - -#include "AMReX_REAL.H" - -#include "prob_common.H" - -struct ProbParm : ProbParmDefaults { - amrex::Real rho_0 = 1.0; - amrex::Real T_0 = 300.0; - - int prob_type = -1; -}; // namespace ProbParm - -class Problem : public ProblemBase -{ -public: - Problem(); - -#include "Prob/init_constant_density_hse.H" - - void init_custom_pert ( - const amrex::Box& bx, - const amrex::Box& xbx, - const amrex::Box& ybx, - const amrex::Box& zbx, - amrex::Array4 const& state, - amrex::Array4 const& state_pert, - amrex::Array4 const& x_vel_pert, - amrex::Array4 const& y_vel_pert, - amrex::Array4 const& z_vel_pert, - amrex::Array4 const& r_hse, - amrex::Array4 const& p_hse, - amrex::Array4 const& z_nd, - amrex::Array4 const& z_cc, - amrex::GeometryData const& geomdata, - amrex::Array4 const& mf_m, - amrex::Array4 const& mf_u, - amrex::Array4 const& mf_v, - const SolverChoice& sc) override; - -protected: - std::string name() override { return "Poiseuille Flow"; } - -private: - ProbParm parms; -}; - -#endif diff --git a/Exec/RegTests/PoiseuilleFlow/prob.cpp b/Exec/RegTests/PoiseuilleFlow/prob.cpp deleted file mode 100644 index 35a29705e..000000000 --- a/Exec/RegTests/PoiseuilleFlow/prob.cpp +++ /dev/null @@ -1,94 +0,0 @@ -#include "prob.H" - -using namespace amrex; - -std::unique_ptr -amrex_probinit( - const amrex_real* /*problo*/, - const amrex_real* /*probhi*/) -{ - return std::make_unique(); -} - -Problem::Problem() -{ - // Parse params - amrex::ParmParse pp("prob"); - pp.query("rho_0", parms.rho_0); - pp.query("T_0", parms.T_0); - - pp.query("prob_type", parms.prob_type); - - init_base_parms(parms.rho_0, parms.T_0); -} - -void -Problem::init_custom_pert( - const Box& bx, - const Box& xbx, - const Box& ybx, - const Box& zbx, - Array4 const& /*state*/, - Array4 const& state_pert, - Array4 const& x_vel_pert, - Array4 const& y_vel_pert, - Array4 const& z_vel_pert, - Array4 const& /*r_hse*/, - Array4 const& /*p_hse*/, - Array4 const& /*z_nd*/, - Array4 const& /*z_cc*/, - GeometryData const& geomdata, - Array4 const& /*mf_m*/, - Array4 const& /*mf_u*/, - Array4 const& /*mf_v*/, - const SolverChoice& sc) -{ - const bool use_moisture = (sc.moisture_type != MoistureType::None); - - amrex::ParallelFor(bx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept - { - // Arbitrarily choose the radius of the bubble to be 0.05 times the length of the domain - - // Set scalar = A_0*exp(-10r^2), where r is distance from center of domain - state_pert(i, j, k, RhoScalar_comp) = 0.0; - - if (use_moisture) { - state_pert(i, j, k, RhoQ1_comp) = 0.0; - state_pert(i, j, k, RhoQ2_comp) = 0.0; - } - - }); - - amrex::ParallelFor(xbx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept - { - const Real* prob_lo = geomdata.ProbLo(); - const Real* dx = geomdata.CellSize(); - const Real z_h = prob_lo[2] + (k + 0.5) * dx[2]; - - // Set the x-velocity to be a parabolic profile with max 1 at z = 0 and 0 at z = +/-1 - if (parms.prob_type == 10) { - x_vel_pert(i, j, k) = 1.0 - z_h * z_h; - } else { - x_vel_pert(i, j, k) = 0.0; - } - }); - - amrex::ParallelFor(ybx, [=, parms=parms] AMREX_GPU_DEVICE(int i, int j, int k) noexcept - { - const Real* prob_lo = geomdata.ProbLo(); - const Real* dx = geomdata.CellSize(); - const Real z_h = prob_lo[2] + (k + 0.5) * dx[2]; - - // Set the x-velocity to be a parabolic profile with max 1 at z = 0 and 0 at z = +/-1 - if (parms.prob_type == 11) { - y_vel_pert(i, j, k) = 1.0 - z_h * z_h; - } else { - y_vel_pert(i, j, k) = 0.0; - } - }); - - amrex::ParallelFor(zbx, [=] AMREX_GPU_DEVICE(int i, int j, int k) noexcept - { - z_vel_pert(i, j, k) = 0.0; - }); -} diff --git a/Source/Diffusion/PBLModels.cpp b/Source/Diffusion/PBLModels.cpp index 55ea96068..75f197ad2 100644 --- a/Source/Diffusion/PBLModels.cpp +++ b/Source/Diffusion/PBLModels.cpp @@ -269,17 +269,17 @@ ComputeTurbulentViscosityPBL (const MultiFab& xvel, // Get some data in arrays const auto& cell_data = cons_in.const_array(mfi); - const auto& K_turb = eddyViscosity.array(mfi); + //const auto& K_turb = eddyViscosity.array(mfi); const auto& uvel = xvel.const_array(mfi); const auto& vvel = yvel.const_array(mfi); const auto& z0_arr = most->get_z0(level)->const_array(); const auto& ws10av_arr = most->get_mac_avg(level,4)->const_array(mfi); const auto& t10av_arr = most->get_mac_avg(level,2)->const_array(mfi); - const auto& u_star_arr = most->get_u_star(level)->const_array(mfi); - const auto& t_star_arr = most->get_t_star(level)->const_array(mfi); + //const auto& u_star_arr = most->get_u_star(level)->const_array(mfi); + //const auto& t_star_arr = most->get_t_star(level)->const_array(mfi); const auto& t_surf_arr = most->get_t_surf(level)->const_array(mfi); - const auto& l_obuk_arr = most->get_olen(level)->const_array(mfi); + //const auto& l_obuk_arr = most->get_olen(level)->const_array(mfi); const auto& z_nd_arr = z_phys_nd->array(mfi); const Real most_zref = most->get_zref(); @@ -300,7 +300,7 @@ ComputeTurbulentViscosityPBL (const MultiFab& xvel, const bool over_land = turbChoice.pbl_ysu_over_land; // TODO: make this local and consistent const Real land_Ribcr = turbChoice.pbl_ysu_land_Ribcr; const Real unst_Ribcr = turbChoice.pbl_ysu_unst_Ribcr; - ParallelFor(xybx, [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept + ParallelFor(xybx, [=] AMREX_GPU_DEVICE (int i, int j, int) noexcept { // Reconstruct a surface bulk Richardson number from the surface layer model // In WRF, this value is supplied to YSU by the MM5 surface layer model diff --git a/Source/ERF.H b/Source/ERF.H index 983bfe83a..5497b9c22 100644 --- a/Source/ERF.H +++ b/Source/ERF.H @@ -28,7 +28,6 @@ #include "prob_common.H" #include -#include #include #include #include @@ -51,10 +50,6 @@ #include "Radiation.H" #endif -#ifdef ERF_USE_NETCDF -#include "NCWpsFile.H" -#endif - #include #ifdef AMREX_LAZY diff --git a/Source/IO/NCInterface.H b/Source/IO/NCInterface.H index 386bd79e0..e8f3a590c 100644 --- a/Source/IO/NCInterface.H +++ b/Source/IO/NCInterface.H @@ -231,26 +231,20 @@ public: //! Get the variable instance by name [[nodiscard]] NCVar var (const std::string&) const; - //! Define new group - [[nodiscard]] NCGroup def_group (const std::string&) const; - //! Define new dimension - [[nodiscard]] NCDim def_dim (const std::string&, size_t len) const; - - //! Define a scalar variable, i.e., 0-dimensional array - [[nodiscard]] NCVar def_scalar (const std::string& name, nc_type dtype) const; + void def_dim (const std::string&, size_t len) const; //! Define an array - [[nodiscard]] NCVar def_array (const std::string& name, - nc_type dtype, - const std::vector&) const; + void def_array (const std::string& name, + nc_type dtype, + const std::vector&) const; //! Define a variable (wrapper for def_array) - [[nodiscard]] NCVar def_var (const std::string& name, - const nc_type dtype, - const std::vector& dnames) const + void def_var (const std::string& name, + const nc_type dtype, + const std::vector& dnames) const { - return def_array(name, dtype, dnames); + def_array(name, dtype, dnames); } void put_attr (const std::string& name, const std::string& value) const; diff --git a/Source/IO/NCInterface.cpp b/Source/IO/NCInterface.cpp index 8a2000cb0..77294f8e8 100644 --- a/Source/IO/NCInterface.cpp +++ b/Source/IO/NCInterface.cpp @@ -459,13 +459,6 @@ std::string NCGroup::full_name () const return std::string{grpname.begin(), grpname.end()}; } -NCGroup NCGroup::def_group (const std::string& name) const -{ - int newid; - check_nc_error(nc_def_grp(ncid, name.data(), &newid)); - return NCGroup(newid, this); -} - NCGroup NCGroup::group (const std::string& name) const { int newid; @@ -480,23 +473,16 @@ NCDim NCGroup::dim (const std::string& name) const return NCDim{ncid, newid}; } -NCDim NCGroup::def_dim (const std::string& name, const size_t len) const +void NCGroup::def_dim (const std::string& name, const size_t len) const { int newid; check_nc_error(nc_def_dim(ncid, name.data(), len, &newid)); - return NCDim{ncid, newid}; -} - -NCVar NCGroup::def_scalar (const std::string& name, const nc_type dtype) const -{ - int newid; - check_nc_error(nc_def_var(ncid, name.data(), dtype, 0, nullptr, &newid)); - return NCVar{ncid, newid}; + // NCDim{ncid, newid}; } -NCVar NCGroup::def_array (const std::string& name, - const nc_type dtype, - const std::vector& dnames) const +void NCGroup::def_array (const std::string& name, + const nc_type dtype, + const std::vector& dnames) const { int newid; int ndims = dnames.size(); @@ -505,7 +491,6 @@ NCVar NCGroup::def_array (const std::string& name, check_nc_error( nc_def_var(ncid, name.data(), dtype, ndims, dimids.data(), &newid)); - return NCVar{ncid, newid}; } NCVar NCGroup::var (const std::string& name) const diff --git a/Source/IO/NCPlotFile.cpp b/Source/IO/NCPlotFile.cpp index 3d3fd62c5..a8effee2b 100644 --- a/Source/IO/NCPlotFile.cpp +++ b/Source/IO/NCPlotFile.cpp @@ -22,7 +22,7 @@ void ERF::writeNCPlotFile (int lev, int which_subdomain, const std::string& dir, const Vector &plotMF, const Vector &plot_var_names, - const Vector& level_steps, const Real time) const + const Vector& /*level_steps*/, const Real time) const { // get the processor number int iproc = amrex::ParallelContext::MyProcAll(); diff --git a/Source/IO/ReadFromMetgrid.cpp b/Source/IO/ReadFromMetgrid.cpp index 08cceae6d..dfe6eebd2 100644 --- a/Source/IO/ReadFromMetgrid.cpp +++ b/Source/IO/ReadFromMetgrid.cpp @@ -143,17 +143,17 @@ read_from_metgrid (int lev, const Box& domain, const std::string& fname, // Convert the velocities using the map factors // const Box& uubx = NC_xvel_fab.box(); - const Array4 u_arr = NC_xvel_fab.array(); - const Array4 msfu_arr = NC_msfu_fab.array(); - ParallelFor(uubx, [=] AMREX_GPU_DEVICE (int i, int j, int k) + // const Array4 u_arr = NC_xvel_fab.array(); + // const Array4 msfu_arr = NC_msfu_fab.array(); + ParallelFor(uubx, [=] AMREX_GPU_DEVICE (int , int , int ) { // u_arr(i,j,k) /= msfu_arr(i,j,0); }); const Box& vvbx = NC_yvel_fab.box(); - const Array4 v_arr = NC_yvel_fab.array(); - const Array4 msfv_arr = NC_msfv_fab.array(); - ParallelFor(vvbx, [=] AMREX_GPU_DEVICE (int i, int j, int k) + // const Array4 v_arr = NC_yvel_fab.array(); + // const Array4 msfv_arr = NC_msfv_fab.array(); + ParallelFor(vvbx, [=] AMREX_GPU_DEVICE (int , int , int ) { // v_arr(i,j,k) /= msfv_arr(i,j,0); }); diff --git a/Source/IO/ReadFromWRFBdy.cpp b/Source/IO/ReadFromWRFBdy.cpp index 0d96ac906..bf37898aa 100644 --- a/Source/IO/ReadFromWRFBdy.cpp +++ b/Source/IO/ReadFromWRFBdy.cpp @@ -529,7 +529,7 @@ read_from_wrfbdy (const std::string& nc_bdy_file, const Box& domain, } void -convert_wrfbdy_data (int which, const Box& domain, Vector>& bdy_data, +convert_wrfbdy_data (const Box& domain, Vector>& bdy_data, const FArrayBox& NC_MUB_fab, const FArrayBox& NC_PH_fab, const FArrayBox& NC_PHB_fab, const FArrayBox& NC_C1H_fab, const FArrayBox& NC_C2H_fab, diff --git a/Source/Initialization/ERF_init_from_metgrid.cpp b/Source/Initialization/ERF_init_from_metgrid.cpp index 0fa0df1db..576d223fd 100644 --- a/Source/Initialization/ERF_init_from_metgrid.cpp +++ b/Source/Initialization/ERF_init_from_metgrid.cpp @@ -22,7 +22,6 @@ ERF::init_from_metgrid (int lev) Print() << "Init with met_em without moisture model." << std::endl; } - int nboxes = num_boxes_at_level[lev]; int ntimes = num_files_at_level[lev]; if (nc_init_file.empty()) @@ -135,7 +134,6 @@ ERF::init_from_metgrid (int lev) for ( MFIter mfi(lev_new[Vars::cons], TilingIfNotGPU()); mfi.isValid(); ++mfi ) { // This defines only the z(i,j,0) values given the FAB filled from the NetCDF input FArrayBox& z_phys_nd_fab = (*z_phys)[mfi]; - int lev = 0; init_terrain_from_metgrid(z_phys_nd_fab, NC_hgt_fab); } // mf @@ -773,7 +771,7 @@ init_base_state_from_metgrid (const bool use_moisture, FArrayBox& p_hse_fab, FArrayBox& pi_hse_fab, FArrayBox& z_phys_cc_fab, - const Vector& NC_ght_fab, + const Vector& /*NC_ght_fab*/, const Vector& NC_psfc_fab, Vector>& fabs_for_bcs, const amrex::Array4& mask_c_arr) diff --git a/Source/Initialization/ERF_init_from_wrfinput.cpp b/Source/Initialization/ERF_init_from_wrfinput.cpp index 143d95e26..14757f8f2 100644 --- a/Source/Initialization/ERF_init_from_wrfinput.cpp +++ b/Source/Initialization/ERF_init_from_wrfinput.cpp @@ -47,7 +47,7 @@ read_from_wrfbdy (const std::string& nc_bdy_file, const Box& domain, int& width, Real& start_bdy_time); void -convert_wrfbdy_data (int which, const Box& domain, +convert_wrfbdy_data (const Box& domain, Vector>& bdy_data, const FArrayBox& NC_MUB_fab, const FArrayBox& NC_PH_fab, @@ -258,19 +258,19 @@ ERF::init_from_wrfinput (int lev) Print() << "Running with specification width: " << real_set_width << " and relaxation width: " << real_width - real_set_width << std::endl; - convert_wrfbdy_data(0,domain,bdy_data_xlo, + convert_wrfbdy_data(domain,bdy_data_xlo, NC_MUB_fab[0] , NC_PH_fab[0] , NC_PHB_fab[0] , NC_C1H_fab[0] , NC_C2H_fab[0] , NC_RDNW_fab[0], NC_xvel_fab[0], NC_yvel_fab[0], NC_rho_fab[0] , NC_rhoth_fab[0], NC_QVAPOR_fab[0]); - convert_wrfbdy_data(1,domain,bdy_data_xhi, + convert_wrfbdy_data(domain,bdy_data_xhi, NC_MUB_fab[0] , NC_PH_fab[0] , NC_PHB_fab[0] , NC_C1H_fab[0] , NC_C2H_fab[0] , NC_RDNW_fab[0], NC_xvel_fab[0], NC_yvel_fab[0], NC_rho_fab[0] , NC_rhoth_fab[0], NC_QVAPOR_fab[0]); - convert_wrfbdy_data(2,domain,bdy_data_ylo, + convert_wrfbdy_data(domain,bdy_data_ylo, NC_MUB_fab[0] , NC_PH_fab[0] , NC_PHB_fab[0] , NC_C1H_fab[0] , NC_C2H_fab[0] , NC_RDNW_fab[0], NC_xvel_fab[0], NC_yvel_fab[0], NC_rho_fab[0] , NC_rhoth_fab[0], NC_QVAPOR_fab[0]); - convert_wrfbdy_data(3,domain,bdy_data_yhi, + convert_wrfbdy_data(domain,bdy_data_yhi, NC_MUB_fab[0] , NC_PH_fab[0] , NC_PHB_fab[0] , NC_C1H_fab[0] , NC_C2H_fab[0] , NC_RDNW_fab[0], NC_xvel_fab[0], NC_yvel_fab[0], NC_rho_fab[0] , NC_rhoth_fab[0], NC_QVAPOR_fab[0]); @@ -296,7 +296,7 @@ ERF::init_from_wrfinput (int lev) * @param NC_rhotheta_fab Vector of FArrayBox objects with the WRF dataset specifying density*(potential temperature) */ void -init_state_from_wrfinput (int lev, +init_state_from_wrfinput (int /*lev*/, FArrayBox& state_fab, FArrayBox& x_vel_fab, FArrayBox& y_vel_fab, @@ -368,7 +368,7 @@ init_state_from_wrfinput (int lev, * @param NC_MSFM_fab Vector of FArrayBoxes holding WRF data specifying z-velocity map factors */ void -init_msfs_from_wrfinput (int lev, FArrayBox& msfu_fab, +init_msfs_from_wrfinput (int /*lev*/, FArrayBox& msfu_fab, FArrayBox& msfv_fab, FArrayBox& msfm_fab, const Vector& NC_MSFU_fab, const Vector& NC_MSFV_fab, @@ -405,7 +405,7 @@ init_msfs_from_wrfinput (int lev, FArrayBox& msfu_fab, * @param NC_PB_fab Vector of FArrayBox objects containing WRF data specifying pressure */ void -init_base_state_from_wrfinput (int lev, +init_base_state_from_wrfinput (int /*lev*/, const Box& gtbx, const Box& domain, const Real l_rdOcp, @@ -433,7 +433,7 @@ init_base_state_from_wrfinput (int lev, const Array4& p_hse_arr = p_hse.array(); const Array4& pi_hse_arr = pi_hse.array(); const Array4& r_hse_arr = r_hse.array(); - const Array4& alpha_arr = NC_ALB_fab[idx].const_array(); + //const Array4& alpha_arr = NC_ALB_fab[idx].const_array(); const Array4& nc_pb_arr = NC_PB_fab[idx].const_array(); const Array4& nc_p_arr = NC_P_fab[idx].const_array(); @@ -541,7 +541,7 @@ verify_terrain_top_boundary (const Real& z_top, * @param NC_PHB_fab Vector of FArrayBox objects storing WRF terrain coordinate data (PHB) */ void -init_terrain_from_wrfinput (int lev, const Real& z_top, +init_terrain_from_wrfinput (int /*lev*/, const Real& z_top, const Box& domain, FArrayBox& z_phys, const Vector& NC_PH_fab, const Vector& NC_PHB_fab) diff --git a/Source/TimeIntegration/ERF_slow_rhs_post.cpp b/Source/TimeIntegration/ERF_slow_rhs_post.cpp index a31eb7b49..113876302 100644 --- a/Source/TimeIntegration/ERF_slow_rhs_post.cpp +++ b/Source/TimeIntegration/ERF_slow_rhs_post.cpp @@ -3,6 +3,10 @@ #include +#if defined(ERF_USE_NETCDF) +#include +#endif + using namespace amrex; /** diff --git a/Tests/CTestList.cmake b/Tests/CTestList.cmake index ac07cf03f..5a1851019 100644 --- a/Tests/CTestList.cmake +++ b/Tests/CTestList.cmake @@ -78,7 +78,7 @@ endfunction(add_test_0) #============================================================================= if(WIN32) #add_test_r(Bubble_DensityCurrent "Bubble/bubble.exe" "plt00010") -add_test_r(CouetteFlow "RegTests/CouetteFlow/*/erf_couette_flow.exe" "plt00050") +add_test_r(CouetteFlow "RegTests/Couette_Poiseuille/*/erf_couette_poiseuille.exe" "plt00050") add_test_r(DensityCurrent "RegTests/DensityCurrent/*/erf_density_current.exe" "plt00010") add_test_r(DensityCurrent_detJ2 "RegTests/DensityCurrent/*/erf_density_current.exe" "plt00010") add_test_r(DensityCurrent_detJ2_nosub "RegTests/DensityCurrent/*/erf_density_current.exe" "plt00020") @@ -89,7 +89,7 @@ add_test_r(IsentropicVortexAdvecting "RegTests/IsentropicVortex/*/erf_is add_test_r(IVA_NumDiff "RegTests/IsentropicVortex/*/erf_isentropic_vortex.exe" "plt00010") add_test_r(MovingTerrain_nosub "DevTests/MovingTerrain/*/erf_moving_terrain.exe" "plt00020") add_test_r(MovingTerrain_sub "DevTests/MovingTerrain/*/erf_moving_terrain.exe" "plt00010") -add_test_r(PoiseuilleFlow "RegTests/PoiseuilleFlow/*/erf_poiseuille_flow.exe" "plt00010") +add_test_r(PoiseuilleFlow "RegTests/Couette_Poiseuille/*/erf_couette_poiseuille.exe" "plt00010") add_test_r(RayleighDamping "RegTests/ScalarAdvDiff/*/erf_scalar_advdiff.exe" "plt00100") add_test_r(ScalarAdvectionUniformU "RegTests/ScalarAdvDiff/*/erf_scalar_advdiff.exe" "plt00020") add_test_r(ScalarAdvectionShearedU "RegTests/ScalarAdvDiff/*/erf_scalar_advdiff.exe" "plt00080") @@ -116,7 +116,7 @@ add_test_0(Deardorff_stationary "ABL/*/erf_abl.exe" "plt00010") else() #add_test_r(Bubble_DensityCurrent "Bubble/bubble" "plt00010") -add_test_r(CouetteFlow "RegTests/CouetteFlow/erf_couette_flow" "plt00050") +add_test_r(CouetteFlow "RegTests/Couette_Poiseuille/erf_couette_poiseuille" "plt00050") add_test_r(DensityCurrent "RegTests/DensityCurrent/erf_density_current" "plt00010") add_test_r(DensityCurrent_detJ2 "RegTests/DensityCurrent/erf_density_current" "plt00010") add_test_r(DensityCurrent_detJ2_nosub "RegTests/DensityCurrent/erf_density_current" "plt00020") @@ -127,7 +127,7 @@ add_test_r(IsentropicVortexAdvecting "RegTests/IsentropicVortex/erf_isen add_test_r(IVA_NumDiff "RegTests/IsentropicVortex/erf_isentropic_vortex" "plt00010") add_test_r(MovingTerrain_nosub "DevTests/MovingTerrain/erf_moving_terrain" "plt00020") add_test_r(MovingTerrain_sub "DevTests/MovingTerrain/erf_moving_terrain" "plt00010") -add_test_r(PoiseuilleFlow "RegTests/PoiseuilleFlow/erf_poiseuille_flow" "plt00010") +add_test_r(PoiseuilleFlow "RegTests/Couette_Poiseuille/erf_couette_poiseuille" "plt00010") add_test_r(RayleighDamping "RegTests/ScalarAdvDiff/erf_scalar_advdiff" "plt00100") add_test_r(ScalarAdvectionUniformU "RegTests/ScalarAdvDiff/erf_scalar_advdiff" "plt00020") add_test_r(ScalarAdvectionShearedU "RegTests/ScalarAdvDiff/erf_scalar_advdiff" "plt00080") diff --git a/Tests/test_files/CouetteFlow/CouetteFlow.i b/Tests/test_files/CouetteFlow/CouetteFlow.i index 5d22ff3d0..534472bf7 100644 --- a/Tests/test_files/CouetteFlow/CouetteFlow.i +++ b/Tests/test_files/CouetteFlow/CouetteFlow.i @@ -48,6 +48,8 @@ erf.molec_diff_type = "Constant" erf.dynamicViscosity = 0.1 # PROBLEM PARAMETERS +prob.prob_type = 1 + prob.rho_0 = 1.0 prob.T_0 = 300.0 # NOTE: this u_0 should match the zhi.velocity specified above diff --git a/Tests/test_files/PoiseuilleFlow/PoiseuilleFlow.i b/Tests/test_files/PoiseuilleFlow/PoiseuilleFlow.i index ffb9d33c8..cdeced1b2 100644 --- a/Tests/test_files/PoiseuilleFlow/PoiseuilleFlow.i +++ b/Tests/test_files/PoiseuilleFlow/PoiseuilleFlow.i @@ -53,6 +53,7 @@ erf.abl_driver_type = "PressureGradient" erf.abl_pressure_grad = -0.2 0. 0. # PROBLEM PARAMETERS +prob.prob_type = 10 + prob.rho_0 = 1.0 prob.T_0 = 300.0 -prob.prob_type = 10