nataraj2 / multiphasesolveramrex Goto Github PK
View Code? Open in Web Editor NEWAn all-Mach, discretely conservative, geometric volume-of-fluid multiphase flow solver for liquid-gas flows
An all-Mach, discretely conservative, geometric volume-of-fluid multiphase flow solver for liquid-gas flows
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!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.