Skip to content

Need help on the compilation #1

@EarlFan

Description

@EarlFan

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions