PeleLM icon indicating copy to clipboard operation
PeleLM copied to clipboard

Inflow, Outflow, NoSlipWallIsotherm

Open czc-zju opened this issue 2 years ago • 8 comments

peleLM.lo_bc = Inflow NoSlipWallIsotherm peleLM.hi_bc = Outflow NoSlipWallIsotherm the above is my boundary settings, when starting the computation, I always get the error:

image

czc-zju avatar Apr 21 '22 09:04 czc-zju

Can you build a re-run with DEBUG=TRUE (either at the make cmd line or in the GNUmakefile), or follow the info at the top of the Backtrace to fill out the backtrace.

drummerdoc avatar Apr 21 '22 15:04 drummerdoc

When I run PeleLM2d.gnu.DEBUG.MPI.ex inputs.2d, I also get the same error: Erroneous arithmetic operation Erroneous arithmetic operation See Backtrace.1 file for details See Backtrace.0 file for details Abort(8) on node 1 (rank 1 in comm 0): application called MPI_Abort(MPI_COMM_WORLD, 8) - process 1

czc-zju avatar Apr 22 '22 05:04 czc-zju

Is the Backtrace containing more information? Activating the Debug should enable narrowing down the problem.

esclapez avatar Apr 22 '22 07:04 esclapez

Backtrace: 0: ./PeleLM2d.gnu.DEBUG.ex(+0xea5c2e) [0x5608c6982c2e] amrex::BLBackTrace::print_backtrace_info(_IO_FILE*) at /home/ubuntu/PeleLM/Submodules/amrex/Src/Base/AMReX_BLBackTrace.cpp:175 1: ./PeleLM2d.gnu.DEBUG.ex(+0xea572e) [0x5608c698272e] amrex::BLBackTrace::handler(int) at /home/ubuntu/PeleLM/Submodules/amrex/Src/Base/AMReX_BLBackTrace.cpp:85 2: /lib/x86_64-linux-gnu/libc.so.6(+0x3ef10) [0x7f5db41eff10] 3: /lib/x86_64-linux-gnu/libm.so.6(logf32x+0x30) [0x7f5db49e7ad0] ?? ??:0 4: ./PeleLM2d.gnu.DEBUG.ex(+0x4c2f83) [0x5608c5f9ff83] PeleLM::calcDiffusivity(double)::{lambda(int, int, int)#2}::operator()(int, int, int) const at /home/ubuntu/PeleLM/Submodules/PelePhysics/Transport/Simple.H:292 (inlined by) getTransportCoeff(int, int, int, amrex::Array4 const&, amrex::Array4 const&, amrex::Array4 const&, amrex::Array4 const&, amrex::Array4 const&, pele::physics::transport::TransParm<pele::physics::eos::Fuego, pele::physics::transport::SimpleTransport> const*) at /home/ubuntu/PeleLM/Source/PeleLM_K.H:444 (inlined by) operator() at /home/ubuntu/PeleLM/Source/PeleLM.cpp:8001 5: ./PeleLM2d.gnu.DEBUG.ex(+0x4fbc7d) [0x5608c5fd8c7d] decltype ({parm#1}(0, 0, 0)) amrex::detail::call_f<PeleLM::calcDiffusivity(double)::{lambda(int, int, int)#2}>(PeleLM::calcDiffusivity(double)::{lambda(int, int, int)#2} const&, int, int, int) at /home/ubuntu/PeleLM/Submodules/amrex/Src/Base/AMReX_GpuLaunchFunctsC.H:30 6: ./PeleLM2d.gnu.DEBUG.ex(+0x4f76b8) [0x5608c5fd46b8] void amrex::ParallelFor<PeleLM::calcDiffusivity(double)::{lambda(int, int, int)#2}>(amrex::Box const&, PeleLM::calcDiffusivity(double)::{lambda(int, int, int)#2}&&) at /home/ubuntu/PeleLM/Submodules/amrex/Src/Base/AMReX_GpuLaunchFunctsC.H:118 (discriminator 2) 7: ./PeleLM2d.gnu.DEBUG.ex(+0x4c6dff) [0x5608c5fa3dff] PeleLM::calcDiffusivity(double) at /home/ubuntu/PeleLM/Source/PeleLM.cpp:7980 (discriminator 3) 8: ./PeleLM2d.gnu.DEBUG.ex(+0x43ad13) [0x5608c5f17d13] PeleLM::initData() at /home/ubuntu/PeleLM/Source/PeleLM.cpp:2103 9: ./PeleLM2d.gnu.DEBUG.ex(+0xfa0974) [0x5608c6a7d974] amrex::Amr::defBaseLevel(double, amrex::BoxArray const*, amrex::Vector<int, std::allocator > const*) at /home/ubuntu/PeleLM/Submodules/amrex/Src/Amr/AMReX_Amr.cpp:2506

_10: ./PeleLM2d.gnu.DEBUG.ex(+0xf9a36f) [0x5608c6a7736f] amrex::Amr::InitializeInit(double, double, amrex::BoxArray const, amrex::Vector<int, std::allocator > const) at /home/ubuntu/PeleLM/Submodules/amrex/Src/Amr/AMReX_Amr.cpp:1308 11: ./PeleLM2d.gnu.DEBUG.ex(+0xf9a288) [0x5608c6a77288] amrex::Amr::initialInit(double, double, amrex::BoxArray const*, amrex::Vector<int, std::allocator > const*) at /home/ubuntu/PeleLM/Submodules/amrex/Src/Amr/AMReX_Amr.cpp:1275 12: ./PeleLM2d.gnu.DEBUG.ex(+0xf99bc7) [0x5608c6a76bc7] amrex::Amr::init(double, double) at /home/ubuntu/PeleLM/Submodules/amrex/Src/Amr/AMReX_Amr.cpp:1144 13: ./PeleLM2d.gnu.DEBUG.ex(+0x621ab0) [0x5608c60feab0] main at /home/ubuntu/PeleLM/Submodules/IAMR/Source/main.cpp:96 14: /lib/x86_64-linux-gnu/libc.so.6(_libc_start_main+0xe7) [0x7f5db41d2c87] 15: ./PeleLM2d.gnu.DEBUG.ex(+0x1ad6a) [0x5608c5af7d6a] ?? ??:0**

czc-zju avatar Apr 22 '22 07:04 czc-zju

You can see here which line triggers the abort: PeleLM::calcDiffusivity(double)::{lambda(int, int, int)https://github.com/AMReX-Combustion/PeleLM/pull/2}::operator()(int, int, int) const at /home/ubuntu/PeleLM/Submodules/PelePhysics/Transport/Simple.H:292

which is:

logT[0] = std::log(Tloc);

Suggesting that the temperature is non-positive. This is called just after the state is initialized, so it seems as though your initial data is incorrectly setting a non-positive temperature. Can you guess maybe how that might have happened? The next step would be to find the cell where this is happening and look deeper into why the temperature has a bad value (perhaps uninitialized?).

drummerdoc avatar Apr 22 '22 13:04 drummerdoc

My case file is EB_FlamePastCylinder (PeleLM/Exec/RegTests/EB_FlamePastCylinder), and I change the boundary from Interior to NoSlipWallIsotherm, the others remain the same. I am asking for your help to diagnose the issue.  Thanks in advance for your time.

czc-zju avatar Apr 23 '22 14:04 czc-zju

By changing the transverse boundaries from Interior to NoSlipWallIsotherm, the temperature y-boundaries changed to Dirichlet and need to be specified. All Dirichlet boundaries are specified in the bcnormal function of pelelm_prob.H, and without changing the current implementation, the temperature in the y+ is unspecified. Two arguments of that function allow you to identify the boundary on which it is called: idir can be either 0, 1 or 2 for X, Y or Z, respectively; sgn indicates the boundary normal direction, +1 and -1 for the low and high boundary, respectively. Using these, you should be able to specify the temperature by filling s_ext[DEF_Temp] in the y-direction.

esclapez avatar Apr 25 '22 06:04 esclapez

YES, IT WORKS. Thanks a lot dear esclapez and drummerdoc for your reply. I have another question, can the boundary of EB be set to NoSlipWallIsotherm? Thanks again.

czc-zju avatar Apr 25 '22 08:04 czc-zju