Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Need help on the compilation #1

Open
EarlFan opened this issue May 13, 2024 · 0 comments
Open

Need help on the compilation #1

EarlFan opened this issue May 13, 2024 · 0 comments

Comments

@EarlFan
Copy link

EarlFan commented May 13, 2024

Hi !

I am going to work on some two-phase compressible flow solver on the AMReX and find this repo matches my need. However, I cannot compile the code following the instructions. I will grateful if you could help me with this issue!

Following these instructions, I successfully build the IRL libray

git clone https://github.com/nataraj2/MultiphaseSolverAMReX.git
cd MultiphaseSolverAMReX
sh install.sh

Then following this instruction

vi amrex/Tools/GNUMake/Make.local

I revise Make.local as

# origin setups
# IRLDIR=/Users/natarajan/Desktop/Research/MultiphaseAMR/MultiphaseSolverAMR/GitHub/GitHub_AfterPush/MultiphaseSolverAMReX/interfacereconstructionlibrary
# CXX := /opt/local/bin/mpicxx
# CC  := /opt/local/bin/mpicc
# FC  := /opt/local/bin/mpif90
# F90 := /opt/local/bin/mpif90

# revised setups on my pc
IRLDIR=/home/fane/open_code_tests/MultiphaseSolverAMReX/interfacereconstructionlibrary
CXX := /usr/bin/mpicxx
CC  := /usr/bin/mpicc
FC  := /usr/bin/mpif90
F90 := /usr/bin/mpif90

After that, I try to running the case of Zalesak's disk.

cd amrex/Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Exec/Zalesak_Elvira
make -j

However, the make command reports the following errors:

(base) fane@MS-PC:~/open_code_tests/MultiphaseSolverAMReX/amrex/Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Exec/Zalesak_Elvira$ make
Loading ../../../../../Tools/GNUMake/comps/gnu.mak...
Loading ../../../../../Tools/GNUMake/sites/Make.unknown...
Loading ../../../../../Tools/GNUMake/Make.local...
 ../../../../../Src/Base/Make.package  ../../../../../Src/Boundary/Make.package  ../../../../../Src/AmrCore/Make.package  ../../../../../Src/F_Interfaces/Base/Make.package  ../../../../../Src/F_Interfaces/AmrCore/Make.package  ../../../../../Src/LinearSolvers/MLMG/Make.package  ../../../../../Src/F_Interfaces/LinearSolvers/Make.package
-pthread -I/usr/lib/x86_64-linux-gnu/openmpi/lib -L/usr/lib/x86_64-linux-gnu/openmpi/lib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lmpi_cxx -lmpi -L/opt/local/lib -L/home/fane/open_code_tests/MultiphaseSolverAMReX/interfacereconstructionlibrary/install/lib -L/home/fane/open_code_tests/MultiphaseSolverAMReX/interfacereconstructionlibrary/install/absl/lib  -lirl_c -lirl -lirl_fortran -labsl_all -framework CoreFoundation
Generating AMReX_Config.H ...
Generating AMReX_Version.H ...
Building f90/F90 dependency File ...
../../../../../Tools/F_scripts/dep.py  --prefix tmp_build_dir/o/3d.gnu.MPI.EXE \
            --temp_dir tmp_build_dir/f/3d.gnu.MPI.EXE \
            --cpp "cpp -E -traditional-cpp -P" \
            --defines "-DBL_LANG_FORT -DAMREX_LANG_FORT  -DBL_USE_MPI -DAMREX_USE_MPI -DBL_SPACEDIM=3 -DAMREX_SPACEDIM=3 -DBL_FORT_USE_UNDERSCORE -DAMREX_FORT_USE_UNDERSCORE -DBL_Linux -DAMREX_Linux -DNDEBUG -DOMPI_SKIP_MPICXX -DBL_USE_F_INTERFACES -Itmp_build_dir/s/3d.gnu.MPI.EXE -I. -I. -I../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Exec/Zalesak_Elvira -I../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source -I../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d -I../../../../../Src/Base -I../../../../../Src/Base/Parser -I../../../../../Src/Boundary -I../../../../../Src/AmrCore -I../../../../../Src/F_Interfaces/Base -I../../../../../Src/F_Interfaces/AmrCore -I../../../../../Src/LinearSolvers/MLMG -I../../../../../Src/F_Interfaces/LinearSolvers " \
            --f90_preprocess "cat  " fileio.f90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/Adv_3d.f90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/slope_3d.f90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/compute_flux_3d.f90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/compute_semilagrangian_flux.f90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/compgeom_lookup.f90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/mod_reconstruct.f90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/plic_mod.f90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/dump_ensight_str.f90 ../../../../../Src/Base/AMReX_constants_mod.f90 face_velocity_3d.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/fmain.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/my_amr_mod.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/initdata.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/tagging_mod.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/plotfile_mod.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/averagedown_mod.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/evolve_mod.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/compute_dt_mod.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/fillpatch_mod.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/face_velocity_multifab.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/mod_compute_cell_value.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/mod_compute_correction_step.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/mod_compute_interp_pressure.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/mod_compute_interp_rho.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/mod_compute_multiphase_variables.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/amr_data_mod.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/bc_mod.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/rhs_helmholtz.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/solve_helmholtz.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/my_AMReX_FILCC_3D.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/my_AMReX_filcc_mod.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/mod_compute_vortmag.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/restart_mod.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/grid_mod.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/mod_compute_plic_half.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/precision.F90 ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/string.F90 ../../../../../Src/Base/AMReX_FILCC_3D.F90 ../../../../../Src/Base/AMReX_BLutil_F.F90 ../../../../../Src/Base/AMReX_BLProfiler_F.F90 ../../../../../Src/Base/AMReX_filcc_mod.F90 ../../../../../Src/Base/AMReX_omp_mod.F90 ../../../../../Src/Base/AMReX_acc_mod.F90 ../../../../../Src/Base/AMReX_fort_mod.F90 ../../../../../Src/Base/AMReX_error_mod.F90 ../../../../../Src/Base/AMReX_parmparse_mod.F90 ../../../../../Src/Base/AMReX_string_mod.F90 ../../../../../Src/Base/AMReX_bc_types_mod.F90 ../../../../../Src/Base/AMReX_io_mod.F90 ../../../../../Src/Base/AMReX_ParallelDescriptor_F.F90 ../../../../../Src/Base/AMReX_mempool_mod.F90 ../../../../../Src/Boundary/AMReX_LO_UTIL.F90 ../../../../../Src/Boundary/AMReX_lo_bctypes_mod.F90 ../../../../../Src/AmrCore/AMReX_FillPatchUtil_3d.F90 ../../../../../Src/F_Interfaces/Base/AMReX_init_mod.F90 ../../../../../Src/F_Interfaces/Base/AMReX_parallel_mod.F90 ../../../../../Src/F_Interfaces/Base/AMReX_base_mod.F90 ../../../../../Src/F_Interfaces/Base/AMReX_box_mod.F90 ../../../../../Src/F_Interfaces/Base/AMReX_boxarray_mod.F90 ../../../../../Src/F_Interfaces/Base/AMReX_distromap_mod.F90 ../../../../../Src/F_Interfaces/Base/AMReX_geometry_mod.F90 ../../../../../Src/F_Interfaces/Base/AMReX_multifab_mod.F90 ../../../../../Src/F_Interfaces/Base/AMReX_plotfile_mod.F90 ../../../../../Src/F_Interfaces/Base/AMReX_multifabutil_mod.F90 ../../../../../Src/F_Interfaces/Base/AMReX_physbc_mod.F90 ../../../../../Src/F_Interfaces/Base/AMReX_fab_mod.F90 ../../../../../Src/F_Interfaces/Base/AMReX_fi_mpi_mod.F90 ../../../../../Src/F_Interfaces/Base/AMReX_mpi_reduce_int.F90 ../../../../../Src/F_Interfaces/Base/AMReX_mpi_reduce_real.F90 ../../../../../Src/F_Interfaces/AmrCore/AMReX_amr_mod.F90 ../../../../../Src/F_Interfaces/AmrCore/AMReX_amrcore_mod.F90 ../../../../../Src/F_Interfaces/AmrCore/AMReX_tagbox_mod.F90 ../../../../../Src/F_Interfaces/AmrCore/AMReX_fillpatch_mod.F90 ../../../../../Src/F_Interfaces/AmrCore/AMReX_fluxregister_mod.F90 ../../../../../Src/F_Interfaces/AmrCore/AMReX_flash_fluxregister_mod.F90 ../../../../../Src/F_Interfaces/AmrCore/AMReX_interpolater_mod.F90 ../../../../../Src/LinearSolvers/MLMG/AMReX_MLLinOp_nd.F90 ../../../../../Src/F_Interfaces/LinearSolvers/AMReX_linear_solver_mod.F90 ../../../../../Src/F_Interfaces/LinearSolvers/AMReX_linop_mod.F90 ../../../../../Src/F_Interfaces/LinearSolvers/AMReX_poisson_mod.F90 ../../../../../Src/F_Interfaces/LinearSolvers/AMReX_abeclaplacian_mod.F90 ../../../../../Src/F_Interfaces/LinearSolvers/AMReX_multigrid_mod.F90 tmp_build_dir/s/3d.gnu.MPI.EXE/AMReX_Config.H tmp_build_dir/s/3d.gnu.MPI.EXE/AMReX_Version.H > tmp_build_dir/d/3d.gnu.MPI.EXE/f90.depends
warning: module irl_fortran_interface required by ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/Adv_3d.f90 not found
warning: module irl_fortran_interface required by ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/compute_flux_3d.f90 not found
warning: module irl_fortran_interface required by ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/plic_mod.f90 not found
warning: module irl_fortran_interface required by ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/evolve_mod.F90 not found
warning: module irl_fortran_interface required by ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/amr_data_mod.F90 not found
warning: module irl_fortran_interface required by ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/grid_mod.F90 not found
warning: module irl_fortran_interface required by ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/mod_compute_plic_half.F90 not found
Loading ../../../../../Tools/GNUMake/comps/gnu.mak...
Loading ../../../../../Tools/GNUMake/sites/Make.unknown...
Loading ../../../../../Tools/GNUMake/Make.local...
 ../../../../../Src/Base/Make.package  ../../../../../Src/Boundary/Make.package  ../../../../../Src/AmrCore/Make.package  ../../../../../Src/F_Interfaces/Base/Make.package  ../../../../../Src/F_Interfaces/AmrCore/Make.package  ../../../../../Src/LinearSolvers/MLMG/Make.package  ../../../../../Src/F_Interfaces/LinearSolvers/Make.package
tmp_build_dir/d/3d.gnu.MPI.EXE/f90.depends:3: module irl_fortran_interface required by ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/Adv_3d.f90 not found
tmp_build_dir/d/3d.gnu.MPI.EXE/f90.depends:11: module irl_fortran_interface required by ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/compute_flux_3d.f90 not found
tmp_build_dir/d/3d.gnu.MPI.EXE/f90.depends:28: module irl_fortran_interface required by ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d/plic_mod.f90 not found
tmp_build_dir/d/3d.gnu.MPI.EXE/f90.depends:78: module irl_fortran_interface required by ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/evolve_mod.F90 not found
tmp_build_dir/d/3d.gnu.MPI.EXE/f90.depends:143: module irl_fortran_interface required by ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/amr_data_mod.F90 not found
tmp_build_dir/d/3d.gnu.MPI.EXE/f90.depends:180: module irl_fortran_interface required by ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/grid_mod.F90 not found
tmp_build_dir/d/3d.gnu.MPI.EXE/f90.depends:188: module irl_fortran_interface required by ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/mod_compute_plic_half.F90 not found
-pthread -I/usr/lib/x86_64-linux-gnu/openmpi/lib -L/usr/lib/x86_64-linux-gnu/openmpi/lib -lmpi_usempif08 -lmpi_usempi_ignore_tkr -lmpi_mpifh -lmpi -lmpi_cxx -lmpi -L/opt/local/lib -L/home/fane/open_code_tests/MultiphaseSolverAMReX/interfacereconstructionlibrary/install/lib -L/home/fane/open_code_tests/MultiphaseSolverAMReX/interfacereconstructionlibrary/install/absl/lib  -lirl_c -lirl -lirl_fortran -labsl_all -framework CoreFoundation
Compiling Restart.cpp ...
ccache /usr/bin/mpicxx -MMD -MP  -Werror=return-type -g -O3  -pthread  -lstdc++ -std=c++14 -I/home/fane/open_code_tests/MultiphaseSolverAMReX/interfacereconstructionlibrary/install/absl/lib -I/home/fane/open_code_tests/MultiphaseSolverAMReX/interfacereconstructionlibrary/external/abseil-cpp -I/home/fane/open_code_tests/MultiphaseSolverAMReX/interfacereconstructionlibrary -I/home/fane/open_code_tests/MultiphaseSolverAMReX/interfacereconstructionlibrary/include    -DBL_USE_MPI -DAMREX_USE_MPI -DBL_SPACEDIM=3 -DAMREX_SPACEDIM=3 -DBL_FORT_USE_UNDERSCORE -DAMREX_FORT_USE_UNDERSCORE -DBL_Linux -DAMREX_Linux -DNDEBUG -DOMPI_SKIP_MPICXX -DBL_USE_F_INTERFACES -Itmp_build_dir/s/3d.gnu.MPI.EXE -I. -I. -I../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Exec/Zalesak_Elvira -I../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source -I../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Src_3d -I../../../../../Src/Base -I../../../../../Src/Base/Parser -I../../../../../Src/Boundary -I../../../../../Src/AmrCore -I../../../../../Src/F_Interfaces/Base -I../../../../../Src/F_Interfaces/AmrCore -I../../../../../Src/LinearSolvers/MLMG -I../../../../../Src/F_Interfaces/LinearSolvers  -c ../../../../../Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Source/Restart.cpp -o tmp_build_dir/o/3d.gnu.MPI.EXE/Restart.o
make: ccache: Command not found
make: *** [../../../../../Tools/GNUMake/Make.rules:257: tmp_build_dir/o/3d.gnu.MPI.EXE/Restart.o] Error 127

It seems that module irl_fortran_interface cannot be found by the compiler. I found the irl_fortran_interface.mod file in the path /home/fane/open_code_tests/MultiphaseSolverAMReX/interfacereconstructionlibrary/install/include/irl_fortran, where the file tree under the install folder is

(base) fane@MS-PC:~/open_code_tests/MultiphaseSolverAMReX/interfacereconstructionlibrary/install$ tree -L 2
.
├── absl
│   └── lib
├── include
│   ├── irl
│   └── irl_fortran
└── lib
    ├── libirl.a
    ├── libirl_c.a
    └── libirl_fortran.a

To help the compiler to find the irl_fortran_interface.mod, I revise the Make.local as

# original
gfortran_lib = -I$(IRLDIR)/install
# revised
gfortran_lib = -I$(IRLDIR)/install/include/irl_fortran

# original
CXXFLAGS += -lstdc++ -std=c++14 -I$(IRLDIR)/install/absl/lib -I$(IRLDIR)/external/abseil-cpp -I$(IRLDIR) -I$(IRLDIR)/include 
# revised
CXXFLAGS += -lstdc++ -std=c++14 -I$(IRLDIR)/install/absl/lib -I$(IRLDIR)/external/abseil-cpp -I$(IRLDIR) -I$(IRLDIR)/install/include/irl_fortran

But, still, it's not working.

I am appreciated for any help! Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant