Build fails at incflo_compute_advection_term.cpp(227)
markstock opened this issue · 7 comments
I'm using the superbuild method to build incflo in 2D with CUDA but no MPI (Fedora 31, GCC 9.3.1, CUDA 11.2). The build dies in the same spot as if I had pre-built AMReX (22.06) and AMReX-Hydro (latest) and used the CMake build, here:
[ 86%] Building CUDA object CMakeFiles/incflo.dir/src/derive/incflo_error.cpp.o
/home/mstock/opt/incflo/src/convection/incflo_compute_advection_term.cpp(227): error: no instance of overloaded function "FillPatchTwoLevels" matches the argument list
argument types are: (amrex::Array<amrex::MultiFab *, 2UL>, amrex::IntVect, amrex::Real, {...}, {...}, {...}, {...}, int, int, int, amrex::Geometry, amrex::Geometry, amrex::Array<amrex::PhysBCFunct<amrex::GpuBndryFuncFab<IncfloVelFill>>, 2UL>, amrex::Array<int, 2UL>, amrex::Array<amrex::PhysBCFunct<amrex::GpuBndryFuncFab<IncfloVelFill>>, 2UL>, amrex::Array<int, 2UL>, amrex::IntVect, amrex::Interpolater *, const amrex::Array<amrex::Vector<amrex::BCRec, std::allocator<amrex::BCRec>>, 2UL>, amrex::Array<int, 2UL>)
Hi Mark, I'm looking into this now.
I was able to successfully compile on one of our machines. Next, I am going to try to get an environment setup with the same gcc and cuda versions to see if I can recreate the same error.
I think it's because an old version of incflo is used.
Or it's because amrex is too old for the latest inclfo. Anyway, there was a recent change in incflo that required a change in amrex.
That's very likely it. [edit] That fix was put in just after 22.06 was released. I'll pull the latest AMReX and try again...
Pulling the latest AMReX and pointing AMREX_HOME
to it unfortunately generates a different error earlier in the build process. I'll open another issue related to that.
I'm also installing CUDA 11.7, which can build with the GCC 11 compilers. I'll if that changes anything, also.