Closed whedon closed 3 years ago
Hi @nickwimer, just wanted to check in on the status of your review. Thanks!
Hi @nickwimer, just wanted to check in on the status of your review. Thanks!
Hi @kyleniemeyer, sorry for the delay, had a few urgent fires pop up that I had to put out last week. I have cleared my day to focus on this.
@roshansamuel Twice in the paper, SARAS has been compared to TARANG with statements:
1) > "TARANG has been shown to scale up to 196608 cores (Chatterjee et al., 2018), and SARAS has been designed with the goal of achieving similar scaling performance."
and
2) > "To validate the accuracy of the finite difference scheme of SARAS, we compare the results of SARAS with those of a pseudo-spectral code TARANG, which has been benchmarked and scaled up to 196608 cores of Cray XC40, Shaheen II of KAUST (Chatterjee et al., 2018; Verma et al., 2013)."
Yet, I do not see any metrics of performance for SARAS presented in the paper. These statements (in particular, statement #2) imply that SARAS is also capable of such performance. A statement should be made in the paper making it clear that these goals of performance either have not been met, or remain untested.
@roshansamuel, I am having several compilation errors on MacOS Mojave, Version 10.14.6. @olgadoronina has helped provide some useful compile flags to assist, but there are several outstanding issues.
Is it your intention to support the use of SARAS on MacOS, or is this strictly for LINUX? If you intend to support MacOS, I think more documentation would be helpful to assist in the widespread use of SARAS. If you are targeting only LINUX systems, I can work on installing this on a different system.
Yet, I do not see any metrics of performance for SARAS presented in the paper. These statements (in particular, statement #2) imply that SARAS is also capable of such performance. A statement should be made in the paper making it clear that these goals of performance either have not been met, or remain untested.
Hi, @nickwimer, thank you for pointing this out. We haven't yet performed a scaling study of SARAS yet. We will add a line in the paper to clearly state this.
Since SARAS has a design similar to TARANG, and it requires lesser MPI communication than TARANG, we expect SARAS to scale as well as, if not better than TARANG. However, this is yet to be confirmed, and we will update the paper to clarify that.
@roshansamuel, I am having several compilation errors on MacOS Mojave, Version 10.14.6. @olgadoronina has helped provide some useful compile flags to assist, but there are several outstanding issues.
Is it your intention to support the use of SARAS on MacOS, or is this strictly for LINUX? If you intend to support MacOS, I think more documentation would be helpful to assist in the widespread use of SARAS. If you are targeting only LINUX systems, I can work on installing this on a different system.
Hi @nickwimer, we developed and tested SARAS on Linux with gcc. However, we have installed SARAS on a Mac system (Mojave) as well at some point. We had used gcc and not clang for this. Can you kindly give more details on the compilation errors you faced? We are working on a fresh install of SARAS on a Mac machine so that we can update the installation instructions accordingly.
Hi @nickwimer, we have updated the README with clearer instructions to install SARAS on both Linux and MacOS. The steps worked with both homebrew-gcc as well as clang on MacOS. We have also added the line "We are planning to conduct a scaling analysis of SARAS and compare its performance with TARANG in the near future." in the paper (Summary, Para 3, Line 3) to clarify that the scaling is yet to be studied.
Kindly let me know if the new installation instructions help to avoid the compilation errors you had faced. Thanks!
@whedon generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
@roshansamuel Thank you for updating the README with instructions for MacOS. I will work on getting SARAS installed today/tomorrow and I will let you know if I run into any more issues.
@roshansamuel Still running into compile issues. Below is the current error message:
-- The parent directory is /Users/nwimer/Documents/Reviews/saras -- Install folder is /Users/nwimer/Documents/Reviews/saras/compile -- All headers are in /Users/nwimer/Documents/Reviews/saras/lib -- Compiler flag for OpenMP is -Xclang -fopenmp -Wno-unused-command-line-argument -- PLANAR flag not set. Compiling for default 3D run -- Compiling Saras for 3D simulations -- Compiling Saras to solve with double precision calculations -- Configuring done -- Generating done -- Build files have been written to: /Users/nwimer/Documents/Reviews/saras/compile/build [ 2%] [ 9%] [ 12%] [ 14%] [ 31%] [ 39%] Built target initial Built target field [ 41%] Built target reader Built target tseries [ 43%] Built target poisson [ 48%] Built target parser Built target writer [ 51%] Built target grid [ 73%] [ 82%] Built target parallel Built target probes Built target boundary Built target force Linking CXX executable ../../../../saras Undefined symbols for architecture x86_64: "_kmpc_for_staticfini", referenced from: .omp_outlined. in hydrod2.cc.o .omp_outlined..1 in hydrod2.cc.o .omp_outlined..3 in hydrod2.cc.o .omp_outlined..4 in hydrod2.cc.o .omp_outlined. in hydrod3.cc.o .omp_outlined..1 in hydrod3.cc.o .omp_outlined..3 in hydrod3.cc.o ... "kmpc_for_static_init4", referenced from: .omp_outlined. in hydrod2.cc.o .omp_outlined..1 in hydrod2.cc.o .omp_outlined..3 in hydrod2.cc.o .omp_outlined..4 in hydrod2.cc.o .omp_outlined. in hydrod3.cc.o .omp_outlined..1 in hydrod3.cc.o .omp_outlined..3 in hydro_d3.cc.o ... "_kmpc_fork_call", referenced from: hydro_d2::solveVx() in hydro_d2.cc.o hydro_d2::solveVz() in hydro_d2.cc.o hydro_d3::solveVx() in hydro_d3.cc.o hydro_d3::solveVy() in hydro_d3.cc.o hydro_d3::solveVz() in hydro_d3.cc.o scalar_d2::solveVx() in scalar_d2.cc.o scalar_d2::solveVz() in scalard2.cc.o ... "kmpc_global_thread_num", referenced from: hydro_d2::solveVx() in hydrod2.cc.o .omp_outlined. in hydrod2.cc.o .omp_outlined..1 in hydro_d2.cc.o hydro_d2::solveVz() in hydrod2.cc.o .omp_outlined..3 in hydrod2.cc.o .omp_outlined..4 in hydro_d2.cc.o hydro_d3::solveVx() in hydro_d3.cc.o ... "___kmpc_push_num_threads", referenced from: hydro_d2::solveVx() in hydro_d2.cc.o hydro_d2::solveVz() in hydro_d2.cc.o hydro_d3::solveVx() in hydro_d3.cc.o hydro_d3::solveVy() in hydro_d3.cc.o hydro_d3::solveVz() in hydro_d3.cc.o scalar_d2::solveVx() in scalar_d2.cc.o scalar_d2::solveVz() in scalar_d2.cc.o ... ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation) make[2]: [../../saras] Error 1 make[1]: [src/solvers/CMakeFiles/saras.dir/all] Error 2 make: *** [all] Error 2
Hi @roshansamuel, thank you for updating the installation instructions. I was able to install all the packages with just a few changes:
blitz++
% make -j4 install
Making install in bin
make[2]: Nothing to be done for `install-exec-am'.
make[2]: Nothing to be done for `install-data-am'.
Making install in blitz
Making install in generate
/Library/Developer/CommandLineTools/usr/bin/make generate-headers
python genstencils.py ../../blitz/array/stencil-classes.cc
File "genstencils.py", line 9
print "Generating file %s"%sys.argv[1]
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print("Generating file %s"%sys.argv[1])?
make[3]: *** [../../blitz/array/stencil-classes.cc] Error 1
make[2]: *** [all-local] Error 2
make[1]: *** [install-recursive] Error 1
make: *** [install-recursive] Error 1
Fix: activate conda environment with python2
MPICH (./configure --prefix=$HOME/local
)
configure: error: The Fortran compiler gfortran will not compile files that call the same routine with arguments of different types.
Fix: export FFLAGS="-w -fallow-argument-mismatch -O2"
hdf5 installation
cache_api.c:261:16: error: implicit declaration of function ‘resize_configs_are_equal’ is invalid in C99 [-Werror,-Wimplicit-function-declaration] if ( ! resize_configs_are_equal(&default_auto_size_ctl
Fix: `export CFLAGS=-Wno-error=implicit-function-declaration`
I was able to compile SARAS without errors using compileSaras.sh script, but it seems that compiler flag for OpenMP wasn't set up and test run fails. See output for compileSaras.sh below. Could you help me fix it?
% bash compileSaras.sh -- The parent directory is /Users/odoronin/saras-master -- Install folder is /Users/odoronin/saras-master/compile -- All headers are in /Users/odoronin/saras-master/lib -- Try OpenMP C flag = [-fopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [/openmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [-Qopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [-openmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [ ] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [-xopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [+Oopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [-qsmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [-mp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [-fopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [/openmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [-Qopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [-openmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [ ] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [-xopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [+Oopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [-qsmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [-mp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Could NOT find OpenMP (missing: OpenMP_C_FLAGS OpenMP_CXX_FLAGS) -- Compiler flag for OpenMP is -- PLANAR flag not set. Compiling for default 3D run -- Compiling Saras for 3D simulations -- Compiling Saras to solve with double precision calculations -- Configuring done -- Generating done -- Build files have been written to: /Users/odoronin/saras-master/compile/build [ 4%] [ 7%] [ 9%] [ 12%] [ 14%] [ 19%] Built target grid [ 31%] Built target parallel Built target tseries Built target reader [ 58%] [ 60%] Built target parser Built target writer Built target field Built target initial [ 63%] Built target boundary [ 75%] [ 82%] Built target probes Built target force Built target poisson Linking CXX executable ../../../../saras [100%] Built target saras
Hi @olgadoronina, thank you very much for suggesting the fixes for installing different libraries. I will add them to the installation instructions.
According to the output you have posted, the executable seems to have been built. You can execute it with mpirun and it will run, although it will not use OpenMP as it seems to not have detected it. Is libomp-dev
installed on your system? I didn't include installation of OpenMP libraries in the instructions since the solver still ran on different machines without them.
In order to check if the solver is really compiling right, can you please run testSaras.sh
script inside the tests/
folder? Please let me know if that test fails.
Hi @nickwimer. From the error message, it looks like the issue is with OpenMP. When I tested the installation on 2 machines, (Ubuntu and Mac), I had skipped installation of OpenMP since the solver still ran on those systems without it. Can you please let me know if OpenMP is installed on your system? I will update the installation instructions to include OpenMP libraries in the meantime.
Hi @roshansamuel, yes, the executable was built, but the test failed. See the output below. It seems like it can't run without OpenMP. I have libomp installed through homebrew, I'm not sure why find_package (OpenMP)
doesn't return anything. Do I need to install something else?
% bash testSaras.sh -- The C compiler identification is Clang 12.0.0 -- The CXX compiler identification is Clang 12.0.0 -- Check for working C compiler: /Users/odoronin/local/bin/mpicc -- Check for working C compiler: /Users/odoronin/local/bin/mpicc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working CXX compiler: /Users/odoronin/local/bin/mpicxx -- Check for working CXX compiler: /Users/odoronin/local/bin/mpicxx -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- The parent directory is /Users/odoronin/saras-master -- Install folder is /Users/odoronin/saras-master/tests -- All headers are in /Users/odoronin/saras-master/lib -- Try OpenMP C flag = [-fopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [/openmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [-Qopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [-openmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [ ] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [-xopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [+Oopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [-qsmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP C flag = [-mp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [-fopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [/openmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [-Qopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [-openmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [ ] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [-xopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [+Oopenmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [-qsmp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Try OpenMP CXX flag = [-mp] -- Performing Test OpenMP_FLAG_DETECTED -- Performing Test OpenMP_FLAG_DETECTED - Failed -- Could NOT find OpenMP (missing: OpenMP_C_FLAGS OpenMP_CXX_FLAGS) -- Compiler flag for OpenMP is -- Compiling Saras for 2D simulations -- Compiling Saras to solve with double precision calculations -- Configuring done -- Generating done -- Build files have been written to: /Users/odoronin/saras-master/tests/build Scanning dependencies of target field Scanning dependencies of target grid Scanning dependencies of target poisson Scanning dependencies of target parallel Scanning dependencies of target parser Scanning dependencies of target probes Scanning dependencies of target reader Scanning dependencies of target tseries [ 7%] [ 7%] [ 7%] [ 12%] [ 12%] [ 14%] [ 17%] [ 19%] Building CXX object lib/io/CMakeFiles/parser.dir/parser.cc.o Building CXX object lib/io/CMakeFiles/probes.dir/probes.cc.o Building CXX object lib/grid/CMakeFiles/grid.dir/grid.cc.o Building CXX object lib/parallel/CMakeFiles/parallel.dir/parallel.cc.o Building CXX object lib/io/CMakeFiles/reader.dir/reader.cc.o Building CXX object lib/io/CMakeFiles/tseries.dir/tseries.cc.o Building CXX object lib/poisson/CMakeFiles/poisson.dir/poisson.cc.o Building CXX object lib/field/CMakeFiles/field.dir/field.cc.o In file included from /Users/odoronin/saras-master/lib/io/tseries.cc:44: /Users/odoronin/saras-master/lib/io/tseries.h:64:13: warning: private field 'yLow' is not used [-Wunused-private-field] int yLow, yTop; ^ /Users/odoronin/saras-master/lib/io/tseries.h:64:19: warning: private field 'yTop' is not used [-Wunused-private-field] int yLow, yTop; ^ [ 21%] Building CXX object lib/parallel/CMakeFiles/parallel.dir/mpidata.cc.o Linking CXX static library libreader.a [ 21%] Built target reader [ 24%] Building CXX object lib/field/CMakeFiles/field.dir/sfield.cc.o Linking CXX static library libprobes.a [ 24%] Built target probes [ 26%] Building CXX object lib/field/CMakeFiles/field.dir/vfield.cc.o 2 warnings generated. Linking CXX static library libtseries.a [ 26%] Built target tseries [ 29%] Building CXX object lib/poisson/CMakeFiles/poisson.dir/poisson_d2.cc.o Linking CXX static library libparser.a [ 29%] Built target parser [ 31%] Building CXX object lib/field/CMakeFiles/field.dir/plainsf.cc.o Scanning dependencies of target writer [ 34%] Building CXX object lib/io/CMakeFiles/writer.dir/writer.cc.o Linking CXX static library libparallel.a Linking CXX static library libgrid.a [ 34%] Built target parallel [ 36%] Building CXX object lib/field/CMakeFiles/field.dir/plainvf.cc.o [ 36%] Built target grid [ 39%] Building CXX object lib/poisson/CMakeFiles/poisson.dir/poisson_d3.cc.o [ 41%] Building CXX object lib/field/CMakeFiles/field.dir/derivative.cc.o In file included from /Users/odoronin/saras-master/lib/field/plainvf.cc:43: /Users/odoronin/saras-master/lib/field/plainvf.h:51:21: warning: private field 'gridData' is not used [-Wunused-private-field] const grid &gridData; ^ Linking CXX static library libwriter.a [ 41%] Built target writer Scanning dependencies of target boundary [ 43%] Scanning dependencies of target initial Building CXX object lib/boundary/CMakeFiles/boundary.dir/boundary.cc.o [ 46%] Building CXX object lib/initial/CMakeFiles/initial.dir/initial.cc.o Scanning dependencies of target force [ 48%] Building CXX object lib/force/CMakeFiles/force.dir/force.cc.o [ 51%] [ 53%] Building CXX object lib/initial/CMakeFiles/initial.dir/taylorGreen.cc.o Building CXX object lib/boundary/CMakeFiles/boundary.dir/dirichletCC.cc.o 1 warning generated. [ 56%] Building CXX object lib/force/CMakeFiles/force.dir/coriolisForce.cc.o [ 58%] Building CXX object lib/initial/CMakeFiles/initial.dir/channelSine.cc.o [ 60%] Building CXX object lib/force/CMakeFiles/force.dir/buoyantForce.cc.o [ 63%] Building CXX object lib/boundary/CMakeFiles/boundary.dir/dirichletFC.cc.o [ 65%] Building CXX object lib/initial/CMakeFiles/initial.dir/channelRand.cc.o [ 68%] Building CXX object lib/force/CMakeFiles/force.dir/rotatingConv.cc.o Linking CXX static library libfield.a [ 68%] Built target field [ 70%] Building CXX object lib/boundary/CMakeFiles/boundary.dir/periodicCC.cc.o Linking CXX static library libpoisson.a [ 70%] Built target poisson [ 73%] Building CXX object lib/force/CMakeFiles/force.dir/randomForcing.cc.o [ 75%] Building CXX object lib/boundary/CMakeFiles/boundary.dir/periodicFC.cc.o [ 78%] Building CXX object lib/boundary/CMakeFiles/boundary.dir/neumannCC.cc.o [ 80%] Building CXX object lib/boundary/CMakeFiles/boundary.dir/neumannFC.cc.o Linking CXX static library libinitial.a [ 80%] Built target initial [ 82%] Building CXX object lib/boundary/CMakeFiles/boundary.dir/hotPlateCC.cc.o In file included from /Users/odoronin/saras-master/lib/boundary/neumannCC.cc:43: /Users/odoronin/saras-master/lib/boundary/boundary.h:183:20: warning: private field 'fieldValue' is not used [-Wunused-private-field] const real fieldValue; ^ In file included from /Users/odoronin/saras-master/lib/boundary/neumannFC.cc:43: /Users/odoronin/saras-master/lib/boundary/boundary.h:200:20: warning: private field 'fieldValue' is not used [-Wunused-private-field] const real fieldValue; ^ Linking CXX static library libforce.a [ 82%] Built target force 1 warning generated. 1 warning generated. Linking CXX static library libboundary.a [ 82%] Built target boundary Scanning dependencies of target saras [ 85%] [ 87%] [ 90%] [ 92%] [ 95%] [ 97%] [100%] Building CXX object src/solvers/CMakeFiles/saras.dir/hydro/hydro.cc.o Building CXX object src/solvers/CMakeFiles/saras.dir/main.cc.o Building CXX object src/solvers/CMakeFiles/saras.dir/hydro/hydro_d2.cc.o Building CXX object src/solvers/CMakeFiles/saras.dir/hydro/hydro_d3.cc.o Building CXX object src/solvers/CMakeFiles/saras.dir/scalar/scalar.cc.o Building CXX object src/solvers/CMakeFiles/saras.dir/scalar/scalar_d2.cc.o Building CXX object src/solvers/CMakeFiles/saras.dir/scalar/scalar_d3.cc.o Linking CXX executable ../../../../saras [100%] Built target saras Fatal error in MPI_Init: Other MPI error, error stack: MPIR_Init_thread(498)..............: MPID_Init(187).....................: channel initialization failed MPIDI_CH3_Init(89).................: MPID_nem_init(320).................: MPID_nem_tcp_init(171).............: MPID_nem_tcp_get_business_card(418): MPID_nem_tcp_init(377).............: gethostbyname failed, odoronin-35746s (errno 1) Fatal error in MPI_Init: Other MPI error, error stack: MPIR_Init_thread(498)..............: MPID_Init(187).....................: channel initialization failed MPIDI_CH3_Init(89).................: MPID_nem_init(320).................: MPID_nem_tcp_init(171).............: MPID_nem_tcp_get_business_card(418): MPID_nem_tcp_init(377).............: gethostbyname failed, odoronin-35746s (errno 1) Fatal error in MPI_Init: Other MPI error, error stack: MPIR_Init_thread(498)..............: MPID_Init(187).....................: channel initialization failed MPIDI_CH3_Init(89).................: MPID_nem_init(320).................: MPID_nem_tcp_init(171).............: MPID_nem_tcp_get_business_card(418): MPID_nem_tcp_init(377).............: gethostbyname failed, odoronin-35746s (errno 1) Fatal error in MPI_Init: Other MPI error, error stack: MPIR_Init_thread(498)..............: MPID_Init(187).....................: channel initialization failed MPIDI_CH3_Init(89).................: MPID_nem_init(320).................: MPID_nem_tcp_init(171).............: MPID_nem_tcp_get_business_card(418): MPID_nem_tcp_init(377).............: gethostbyname failed, odoronin-35746s (errno 1)
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES = PID 22525 RUNNING AT odoronin-35746s = EXIT CODE: 1 = CLEANING UP REMAINING PROCESSES = YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
Hi @olgadoronina , @nickwimer, I have updated the solver and the README. I have added the fixes suggested by @olgadoronina for installation of some of the dependencies. Please let me know if the solver is now installing and running correctly.
Thanks!
Thanks for the updates @roshansamuel!
@olgadoronina @nickwimer when you have a moment, can you check on these changes, and see if they satisfy the issues? And, update the reviewer checklist items above if appropriate.
Hi @roshansamuel, thank you for your updates, I was able to compile solver by following you installation instructions, but when I run the testSaras.sh, I get the following output:
-- The parent directory is /Users/odoronin/saras-master
-- Install folder is /Users/odoronin/saras-master/tests
-- All headers are in /Users/odoronin/saras-master/lib
-- Compiling Saras for 2D simulations
-- Compiling Saras to solve with double precision calculations
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/odoronin/saras-master/tests/build
[ 4%] [ 4%] [ 7%] [ 21%] [ 24%] [ 26%] Built target tseries
[ 31%] Built target probes
Built target parser
[ 39%] Built target field
Built target grid
Built target reader
Built target parallel
Built target poisson
[ 41%] [ 60%] [ 73%] [ 82%] Built target writer
Built target boundary
Built target force
Built target initial
[100%] Built target saras
Fatal error in MPI_Init: Other MPI error, error stack:
MPIR_Init_thread(498)..............:
MPID_Init(187).....................: channel initialization failed
MPIDI_CH3_Init(89).................:
MPID_nem_init(320).................:
MPID_nem_tcp_init(171).............:
MPID_nem_tcp_get_business_card(418):
MPID_nem_tcp_init(377).............: gethostbyname failed, odoronin-35746s (errno 1)
Fatal error in MPI_Init: Other MPI error, error stack:
MPIR_Init_thread(498)..............:
MPID_Init(187).....................: channel initialization failed
MPIDI_CH3_Init(89).................:
MPID_nem_init(320).................:
MPID_nem_tcp_init(171).............:
MPID_nem_tcp_get_business_card(418):
MPID_nem_tcp_init(377).............: gethostbyname failed, odoronin-35746s (errno 1)
Fatal error in MPI_Init: Other MPI error, error stack:
MPIR_Init_thread(498)..............:
MPID_Init(187).....................: channel initialization failed
MPIDI_CH3_Init(89).................:
MPID_nem_init(320).................:
MPID_nem_tcp_init(171).............:
MPID_nem_tcp_get_business_card(418):
MPID_nem_tcp_init(377).............: gethostbyname failed, odoronin-35746s (errno 1)
Fatal error in MPI_Init: Other MPI error, error stack:
MPIR_Init_thread(498)..............:
MPID_Init(187).....................: channel initialization failed
MPIDI_CH3_Init(89).................:
MPID_nem_init(320).................:
MPID_nem_tcp_init(171).............:
MPID_nem_tcp_get_business_card(418):
MPID_nem_tcp_init(377).............: gethostbyname failed, odoronin-35746s (errno 1)
===================================================================================
= BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
= PID 75888 RUNNING AT odoronin-35746s
= EXIT CODE: 1
= CLEANING UP REMAINING PROCESSES
= YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
validate_ldc.py:86: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.
yamlData = yl.load(yamlFile)
Could not open file output/Soln_0030.0000.h5
If I run compileSaras.sh with TEST_RUN="TEST_RUN"
I get the following errors:
% bash compileSaras.sh
-- The C compiler identification is Clang 12.0.0
-- The CXX compiler identification is Clang 12.0.0
-- Check for working C compiler: /Users/odoronin/local/bin/mpicc
-- Check for working C compiler: /Users/odoronin/local/bin/mpicc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /Users/odoronin/local/bin/mpicxx
-- Check for working CXX compiler: /Users/odoronin/local/bin/mpicxx -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- The parent directory is /Users/odoronin/saras-master
-- Install folder is /Users/odoronin/saras-master/compile
-- All headers are in /Users/odoronin/saras-master/lib
-- PLANAR flag not set. Compiling for default 3D run
-- Compiling Saras for 3D simulations
-- Compiling Saras for running unit tests
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/odoronin/saras-master/compile/build
Scanning dependencies of target poisson
Scanning dependencies of target parser
Scanning dependencies of target field
Scanning dependencies of target grid
Scanning dependencies of target parallel
Scanning dependencies of target reader
Scanning dependencies of target probes
Scanning dependencies of target tseries
Scanning dependencies of target initial
Scanning dependencies of target writer
Scanning dependencies of target boundary
Scanning dependencies of target force
[ 2%] [ 4%] [ 6%] [ 11%] [ 11%] [ 13%] [ 15%] [ 18%] [ 20%] [ 25%] [ 25%] [ 27%] [ 29%] [ 31%] Building CXX object lib/io/CMakeFiles/parser.dir/parser.cc.o
Building CXX object lib/grid/CMakeFiles/grid.dir/grid.cc.o
Building CXX object lib/parallel/CMakeFiles/parallel.dir/parallel.cc.o
[ 34%] [ 36%] Building CXX object lib/io/CMakeFiles/reader.dir/reader.cc.o
Building CXX object lib/parallel/CMakeFiles/parallel.dir/mpidata.cc.o
Building CXX object lib/io/CMakeFiles/probes.dir/probes.cc.o
Building CXX object lib/io/CMakeFiles/writer.dir/writer.cc.o
Building CXX object lib/io/CMakeFiles/tseries.dir/tseries.cc.o
Building CXX object lib/poisson/CMakeFiles/poisson.dir/poisson.cc.o
Building CXX object lib/poisson/CMakeFiles/poisson.dir/poisson_d2.cc.o
Building CXX object lib/initial/CMakeFiles/initial.dir/initial.cc.o
Building CXX object lib/field/CMakeFiles/field.dir/field.cc.o
Building CXX object lib/poisson/CMakeFiles/poisson.dir/poisson_d3.cc.o
Building CXX object lib/initial/CMakeFiles/initial.dir/taylorGreen.cc.o
Building CXX object lib/boundary/CMakeFiles/boundary.dir/boundary.cc.o
Building CXX object lib/force/CMakeFiles/force.dir/force.cc.o
[ 38%] Building CXX object lib/boundary/CMakeFiles/boundary.dir/dirichletCC.cc.o
[ 40%] [ 43%] Building CXX object lib/force/CMakeFiles/force.dir/coriolisForce.cc.o
Building CXX object lib/field/CMakeFiles/field.dir/sfield.cc.o
[ 45%] Building CXX object lib/boundary/CMakeFiles/boundary.dir/dirichletFC.cc.o
Linking CXX static library libparallel.a
[ 45%] Built target parallel
Linking CXX static library libreader.a
[ 47%] Building CXX object lib/initial/CMakeFiles/initial.dir/channelSine.cc.o
[ 50%] [ 50%] Building CXX object lib/force/CMakeFiles/force.dir/buoyantForce.cc.o
Built target reader
[ 52%] Building CXX object lib/field/CMakeFiles/field.dir/vfield.cc.o
Linking CXX static library libprobes.a
[ 52%] Built target probes
[ 54%] Building CXX object lib/boundary/CMakeFiles/boundary.dir/periodicCC.cc.o
Linking CXX static library libwriter.a
[ 54%] Linking CXX static library libtseries.a
Built target writer
[ 56%] Building CXX object lib/force/CMakeFiles/force.dir/rotatingConv.cc.o
[ 56%] Built target tseries
[ 59%] Building CXX object lib/field/CMakeFiles/field.dir/plainsf.cc.o
Linking CXX static library libparser.a
[ 59%] Built target parser
[ 61%] Building CXX object lib/force/CMakeFiles/force.dir/randomForcing.cc.o
[ 63%] Building CXX object lib/initial/CMakeFiles/initial.dir/channelRand.cc.o
[ 65%] Building CXX object lib/boundary/CMakeFiles/boundary.dir/periodicFC.cc.o
[ 68%] Building CXX object lib/field/CMakeFiles/field.dir/plainvf.cc.o
Linking CXX static library libgrid.a
[ 68%] Built target grid
[ 70%] Building CXX object lib/boundary/CMakeFiles/boundary.dir/neumannCC.cc.o
[ 72%] Building CXX object lib/field/CMakeFiles/field.dir/derivative.cc.o
[ 75%] Building CXX object lib/boundary/CMakeFiles/boundary.dir/neumannFC.cc.o
[ 77%] Building CXX object lib/boundary/CMakeFiles/boundary.dir/hotPlateCC.cc.o
Linking CXX static library libinitial.a
[ 77%] Built target initial
In file included from /Users/odoronin/saras-master/lib/boundary/neumannCC.cc:43:
/Users/odoronin/saras-master/lib/boundary/boundary.h:183:20: warning: private field 'fieldValue' is not used [-Wunused-private-field]
const real fieldValue;
^
In file included from /Users/odoronin/saras-master/lib/boundary/neumannFC.cc:43:
/Users/odoronin/saras-master/lib/boundary/boundary.h:200:20: warning: private field 'fieldValue' is not used [-Wunused-private-field]
const real fieldValue;
^
In file included from /Users/odoronin/saras-master/lib/field/plainvf.cc:43:
/Users/odoronin/saras-master/lib/field/plainvf.h:51:21: warning: private field 'gridData' is not used [-Wunused-private-field]
const grid &gridData;
^
Linking CXX static library libforce.a
[ 77%] Built target force
1 warning generated.
1 warning generated.
Linking CXX static library libpoisson.a
[ 77%] Built target poisson
1 warning generated.
Linking CXX static library libfield.a
Linking CXX static library libboundary.a
[ 77%] Built target field
Scanning dependencies of target saras_test
[ 77%] Built target boundary
[ 79%] [ 81%] [ 84%] [ 86%] [ 88%] [ 90%] [ 93%] [ 95%] Building CXX object src/tests/CMakeFiles/saras_test.dir/main.cc.o
Building CXX object src/tests/CMakeFiles/saras_test.dir/global/unittest.cc.o
[ 97%] Building CXX object src/tests/CMakeFiles/saras_test.dir/__/solvers/hydro/hydro.cc.o
[100%] Building CXX object src/tests/CMakeFiles/saras_test.dir/__/solvers/hydro/hydro_d2.cc.o
Building CXX object src/tests/CMakeFiles/saras_test.dir/units/field_test.cc.o
Building CXX object src/tests/CMakeFiles/saras_test.dir/__/solvers/hydro/hydro_d3.cc.o
Building CXX object src/tests/CMakeFiles/saras_test.dir/units/differ_test.cc.o
Building CXX object src/tests/CMakeFiles/saras_test.dir/units/nlin_test.cc.o
Building CXX object src/tests/CMakeFiles/saras_test.dir/units/poisson_test.cc.o
Building CXX object src/tests/CMakeFiles/saras_test.dir/units/hydro_test.cc.o
In file included from /Users/odoronin/saras-master/src/tests/global/unittest.cc:43:
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:29: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:29: error: use of undeclared identifier 'real'
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:54: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:80: error: unknown type name 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:53:18: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance);
^
In file included from /Users/odoronin/saras-master/src/tests/units/poisson_test.cc:44:
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:29: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
In file included from /Users/odoronin/saras-master/src/tests/main.cc:43:
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:29: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:53:38: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance);
^
In file included from /Users/odoronin/saras-master/src/tests/units/nlin_test.cc:44:
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:29: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:29: error: use of undeclared identifier 'real'
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:29: error: use of undeclared identifier 'real'
In file included from /Users/odoronin/saras-master/src/tests/units/differ_test.cc:44:
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:29: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.cc:45:29: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol) {
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:29: error: use of undeclared identifier 'real'
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:54: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:29: error: use of undeclared identifier 'real'
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:54: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.cc:45:29: error: use of undeclared identifier 'real'
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:80: error: unknown type name 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:80: error: unknown type name 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:54: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:53:18: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:54: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.cc:45:54: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol) {
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:53:18: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:53:38: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance);
^
In file included from /Users/odoronin/saras-master/src/tests/units/field_test.cc:44:
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:29: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:80: error: unknown type name 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:80: error: unknown type name 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.cc:45:80: error: unknown type name 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol) {
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:53:38: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:53:18: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:53:18: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance);
^
/Users/odoronin/saras-master/src/tests/global/unittest.cc:47:5: error: unknown type name 'real'
real errorVal;
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:29: error: use of undeclared identifier 'real'
/Users/odoronin/saras-master/src/tests/global/unittest.h:53:38: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:53:38: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance);
^
/Users/odoronin/saras-master/src/tests/global/unittest.cc:81:18: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance) {
^
/Users/odoronin/saras-master/src/tests/global/unittest.cc:81:38: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance) {
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:54: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:80: error: unknown type name 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
In file included from /Users/odoronin/saras-master/src/tests/units/hydro_test.cc:44:
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:29: error: use of undeclared identifier 'real'
/Users/odoronin/saras-master/src/tests/global/unittest.h:53:18:void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^error
: unknown type name 'real'
void printResult(real computedValue, real errorTolerance);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:53:38: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:29: error: use of undeclared identifier 'real'
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:54: error: use of undeclared identifier 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:51:80: error: unknown type name 'real'
void testError(blitz::Array<real, 3> A, blitz::Array<real, 3> B, int errorMom, real errorTol);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:53:18: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance);
^
/Users/odoronin/saras-master/src/tests/global/unittest.h:53:38: error: unknown type name 'real'
void printResult(real computedValue, real errorTolerance);
^
13 errors generated.
make[2]: *** [src/tests/CMakeFiles/saras_test.dir/global/unittest.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
6 errors generated.
make[2]: *** [src/tests/CMakeFiles/saras_test.dir/main.cc.o] Error 1
/Users/odoronin/saras-master/src/tests/units/differ_test.cc:54:12: error: no matching constructor for initialization of 'sfield'
sfield F(gridData, "F", true, true, true);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/odoronin/saras-master/lib/field/sfield.h:69:9: note: candidate constructor not viable: requires 2 arguments, but 5 were provided
sfield(const grid &gridData, std::string fieldName);
^
/Users/odoronin/saras-master/lib/field/sfield.h:54:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 5 were provided
class sfield {
^
/Users/odoronin/saras-master/src/tests/units/differ_test.cc:55:12: error: no matching constructor for initialization of 'sfield'
sfield dF(gridData, "dF", true, true, true);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/odoronin/saras-master/lib/field/sfield.h:69:9: note: candidate constructor not viable: requires 2 arguments, but 5 were provided
sfield(const grid &gridData, std::string fieldName);
^
/Users/odoronin/saras-master/lib/field/sfield.h:54:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 5 were provided
class sfield {
^
/Users/odoronin/saras-master/src/tests/units/nlin_test.cc:75:22: error: non-const lvalue reference to type 'plainvf' cannot bind to a value of unrelated type 'vfield'
V.computeNLin(V, H_calculat);
^~~~~~~~~~
/Users/odoronin/saras-master/lib/field/vfield.h:78:52: note: passing argument to parameter 'H' here
void computeNLin(const vfield &V, plainvf &H);
^
/Users/odoronin/saras-master/src/tests/units/nlin_test.cc:77:31: error: no member named 'F' in 'blitz::Array<float, 3>'
testError(H_analytic.Vx.F.F, H_calculat.Vx.F.F, 1, errorTolerance);
~~~~~~~~~~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/nlin_test.cc:77:50: error: no member named 'F' in 'blitz::Array<float, 3>'
testError(H_analytic.Vx.F.F, H_calculat.Vx.F.F, 1, errorTolerance);
~~~~~~~~~~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/nlin_test.cc:83:23: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int i=V.Vx.F.F.lbound(0); i <= V.Vx.F.F.ubound(0); i++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/nlin_test.cc:83:48: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int i=V.Vx.F.F.lbound(0); i <= V.Vx.F.F.ubound(0); i++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/nlin_test.cc:84:27: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int j=V.Vx.F.F.lbound(1); j <= V.Vx.F.F.ubound(1); j++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/nlin_test.cc:84:52: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int j=V.Vx.F.F.lbound(1); j <= V.Vx.F.F.ubound(1); j++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/field_test.cc:55:12: error: no matching constructor for initialization of 'sfield'
/Users/odoronin/saras-master/src/tests/units/nlin_test.cc sfield div(gridData, "DIV", true, true, true);:
85: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~31
: error: no member /Users/odoronin/saras-master/lib/field/sfield.hnamed: 69'F':9 :in 'blitz::Array<float, 3>'note:
candidate constructor not viable: requires 2 arguments, but 5 were provided
sfield(const grid &gridData, std::string fieldName); for (int k=V.Vx.F.F.lbound(2); k <= V.Vx.F.F.ubound(2); k++) {
^
~~~~~~ ^
/Users/odoronin/saras-master/lib/field/sfield.h:54:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 5 were provided
class sfield {
^
/Users/odoronin/saras-master/src/tests/units/nlin_test.cc:85:56: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int k=V.Vx.F.F.lbound(2); k <= V.Vx.F.F.ubound(2); k++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/nlin_test.cc:86:24: error: no member named 'F' in 'blitz::Array<float, 3>'
V.Vx.F.F(i, j, k) = sin(2.0*M_PI*mesh.xColloc(i)/mesh.xLen)*
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/field_test.cc:81:23: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int i=V.Vx.F.F.lbound(0); i <= V.Vx.F.F.ubound(0); i++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/field_test.cc:81:48: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int i=V.Vx.F.F.lbound(0); i <= V.Vx.F.F.ubound(0); i++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/field_test.cc:82:27: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int j=V.Vx.F.F.lbound(1); j <= V.Vx.F.F.ubound(1); j++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/field_test.cc:82:52: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int j=V.Vx.F.F.lbound(1); j <= V.Vx.F.F.ubound(1); j++) {
/Users/odoronin/saras-master/src/tests/units/nlin_test.cc ~~~~~~ ^:
90:24: error: no member named 'F' in 'blitz::Array<float, 3>'
H.Vx.F.F(i, j, k) = M_PI*sin(4.0*M_PI*mesh.xColloc(i)/mesh.xLen)*
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/field_test.cc:83:31: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int k=V.Vx.F.F.lbound(2); k <= V.Vx.F.F.ubound(2); k++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/field_test.cc:83:56: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int k=V.Vx.F.F.lbound(2); k <= V.Vx.F.F.ubound(2); k++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/field_test.cc:84:24: error: no member named 'F' in 'blitz::Array<float, 3>'
V.Vx.F.F(i, j, k) = sin(2.0*M_PI*mesh.xColloc(i)/mesh.xLen)*
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/nlin_test.cc:109:23: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int i=V.Vy.F.F.lbound(0); i <= V.Vy.F.F.ubound(0); i++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/nlin_test.cc:109:48: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int i=V.Vy.F.F.lbound(0); i <= V.Vy.F.F.ubound(0); i++) {
~~~~~~ ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
/Users/odoronin/saras-master/src/tests/units/field_test.cc:102:23: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int i=V.Vy.F.F.lbound(0); i <= V.Vy.F.F.ubound(0); i++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/field_test.cc:102:48: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int i=V.Vy.F.F.lbound(0); i <= V.Vy.F.F.ubound(0); i++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/field_test.cc:103:27: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int j=V.Vy.F.F.lbound(1); j <= V.Vy.F.F.ubound(1); j++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/field_test.cc:103:52: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int j=V.Vy.F.F.lbound(1); j <= V.Vy.F.F.ubound(1); j++) {
~~~~~~ ^
/Users/odoronin/saras-master/src/tests/units/field_test.cc:104:31: error: no member named 'F' in 'blitz::Array<float, 3>'
for (int k=V.Vy.F.F.lbound(2); k <= V.Vy.F.F.ubound(2); k++) {
~~~~~~ ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
20 errors generated.
/Users/odoronin/saras-master/src/tests/units/poisson_test.cc:59:12: error: no matching constructor for initialization of 'sfield'
sfield rho(gridData, "rho", true, true, true);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/odoronin/saras-master/lib/field/sfield.h:69:9: note: candidate constructor not viable: requires 2 arguments, but 5 were provided
sfield(const grid &gridData, std::string fieldName);
^
/Users/odoronin/saras-master/lib/field/sfield.h:54:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 5 were provided
class sfield {
^
/Users/odoronin/saras-master/src/tests/units/poisson_test.cc:60:12: error: no matching constructor for initialization of 'sfield'
sfield P_analytic(gridData, "P_anl", true, true, true);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/odoronin/saras-master/lib/field/sfield.h:69:9: note: candidate constructor not viable: requires 2 arguments, but 5 were provided
sfield(const grid &gridData, std::string fieldName);
^
/Users/odoronin/saras-master/lib/field/sfield.h:54:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 5 were provided
class sfield {
^
/Users/odoronin/saras-master/src/tests/units/poisson_test.cc:61:12: error: no matching constructor for initialization of 'sfield'
sfield P_calculat(gridData, "P_cal", true, true, true);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Users/odoronin/saras-master/lib/field/sfield.h:69:9: note: candidate constructor not viable: requires 2 arguments, but 5 were provided
sfield(const grid &gridData, std::string fieldName);
^
/Users/odoronin/saras-master/lib/field/sfield.h:54:7: note: candidate constructor (the implicit copy constructor) not viable: requires 1 argument, but 5 were provided
class sfield {
^
make[2]: *** [src/tests/CMakeFiles/saras_test.dir/units/nlin_test.cc.o] Error 1
make[2]: *** [src/tests/CMakeFiles/saras_test.dir/units/field_test.cc.o] Error 1
8 errors generated.
make[2]: *** [src/tests/CMakeFiles/saras_test.dir/units/differ_test.cc.o] Error 1
9 errors generated.
make[2]: *** [src/tests/CMakeFiles/saras_test.dir/units/poisson_test.cc.o] Error 1
6 errors generated.
make[2]: *** [src/tests/CMakeFiles/saras_test.dir/units/hydro_test.cc.o] Error 1
make[1]: *** [src/tests/CMakeFiles/saras_test.dir/all] Error 2
make: *** [all] Error 2
Hi @olgadoronina, the error you are getting is most likely due to MPI failing to initialize at MPI_Init()
. I suspect that not just SARAS, but any MPI code might give the same error. Can you please confirm if a simple MPI example code runs on your system? If you are running MacOS, this link might help.
The second set of errors is from enabling the TEST_RUN flag in the build script. Kindly disable the flag as it was used only during an early stage of development and is no longer in use. We will remove the flag to avoid confusion in the future. To test SARAS, please run testSaras.sh
script in the tests/
folder. You can also test the multi-grid solver by running testPoisson.sh
script inside the same folder.
Hi @roshansamuel I have had no more success with installing SARAS on MacOS. I have also attempted install on Eagle supercomputer and again, it failed.
Finally, I switched to NERSC Cori machine and everything installed correctly as described in your documentation. I have tried running the testSaras.sh
script and it appears to run correctly, however when I try to run validate_ldc.py
, the error is: "Could not open file output/Soln_0030.0000.h5"
testPoisson.sh
runs without any errors.
I should also note that scipy
is needed to run validate_ldc.py
though it is not listed in the README.
Hi @nickwimer the error in opening Soln_0030.0000.h5
was due to a bug in validate_ldc.py
and it has been corrected. The README has also been updated as you suggested. We thank you for inputs.
It would be very helpful if you can post the error you faced when installing on Eagle supercomputer and MacOS. The error in MPI_Init()
in MacOS can be resolved using the suggestion in this link. We have tried to address as many installation issues as possible, and would like to eliminate any outstanding issues.
Hi @nickwimer @olgadoronina , were you able to complete the tests of the code?
Hi @roshansamuel, I was going to go through the installation process again with updated instructions, but it seems like http://turbulencehub.org/ to download libraries is not available.
Hi @olgadoronina, SARAS is now compatible with the latest versions of all the dependent libraries. You do not have to install the libraries from turbulencehub now. The README has been updated to reflect this. All the download links now point to the latest tarballs of each library. Ideally, it is best to use the libraries supplied by the package manager of your OS (for CMake, MPICH, HDF5 etc.).
The Blitz and yaml-cpp libraries can now be downloaded from their respective Git repositories. The installation instructions have been updated for this as well.
The process of building SARAS has also been updated. You can make a build directory and run CMake from within it now. The compileScript, which seemed to be a source of confusion, has been removed. Hope this makes the installation of SARAS more aligned with that of other standard packages.
Hi @olgadoronina, do you have the bandwidth to check the updated installation process? Thanks for hanging in there.
Hi @kyleniemeyer, can something be done to finish the review? We have installed and run SARAS on various workstations and clusters without encountering hiccups.
Blitz++ and yaml-cpp are the only dependencies that actually require manual installation to run SARAS. The other libraries (CMake, MPICH, and HDF5) are very commonly available in most software repositories and don't usually require to be built manually from source.
Previously there was a restriction on version compatibility of yaml-cpp. We subsequently addressed this issue and made SARAS compatible with the latest libraries.
Two publications of results using SARAS are out, and a third one is in preparation. We are unable to cite SARAS appropriately in all these works. It has now been 1.5 years since the submission of our software to JoSS. We understand that the pandemic has placed significant impediments in the review process. However, we would be highly obliged if this review can be completed after so long a time period.
@roshansamuel yes, I think we can move forward with this—thanks for your patience! I'm going to take a final look at your paper.
In the meantime, can you please archive the software repo (e.g., on Zenodo or Figshare) and provide the DOI here?
@kyleniemeyer thank you very much.
A tagged release of SARAS has been archived on Zenodo and its DOI is https://doi.org/10.5281/zenodo.5205320
@whedon set archive as 10.5281/zenodo.5205320
I'm sorry human, I don't understand that. You can see what commands I support by typing:
@whedon commands
@whedon set 10.5281/zenodo.5205320 as archive
OK. 10.5281/zenodo.5205320 is the archive.
@whedon generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Hi @roshansamuel, just a few comments about the article:
{Re}
)@whedon generate pdf
:point_right::page_facing_up: Download article proof :page_facing_up: View article proof on GitHub :page_facing_up: :point_left:
Hi @kyleniemeyer, thank you for the corrections. We have updated the paper as you said.
great! this all looks good to me now.
@whedon accept
To recommend a paper to be accepted use @whedon recommend-accept
@whedon recommend-accept
Attempting dry run of processing paper acceptance...
Reference check summary (note 'MISSING' DOIs are suggestions that need verification):
OK DOIs
- 10.1017/S0305004100023197 is OK
- 10.1063/1.1761178 is OK
- 10.1016/j.jpdc.2017.10.014 is OK
- 10.1098/rspa.1937.0036 is OK
- 10.1063/1.1761178 is OK
- 10.1137/1.9780898719505 is OK
- 10.1016/0021-9991(82)90058-4 is OK
- 10.1016/0017-9310(72)90054-3 is OK
- 10.1098/rspa.1991.0076 is OK
- 10.1007/BF01448839 is OK
- 10.1007/978-3-642-84108-8 is OK
- 10.1007/978-3-642-56026-2 is OK
- 10.1007/3-540-49372-7_24 is OK
- 10.1088/1742-6596/899/2/022017 is OK
- 10.1007/s12043-013-0594-4 is OK
- 10.1017/9781316810019 is OK
- 10.1007/s42979-020-00184-1 is OK
- 10.1063/1.168744 is OK
- 10.1016/S0021-9991(03)00298-5 is OK
- 10.2514/6.2013-287 is OK
- 10.1016/S0010-4655(02)00334-X is OK
MISSING DOIs
- None
INVALID DOIs
- None
:wave: @openjournals/joss-eics, this paper is ready to be accepted and published.
Check final proof :point_right: https://github.com/openjournals/joss-papers/pull/2515
If the paper PDF and Crossref deposit XML look good in https://github.com/openjournals/joss-papers/pull/2515, then you can now move forward with accepting the submission by compiling again with the flag deposit=true
e.g.
@whedon accept deposit=true
@whedon accept deposit=true
Doing it live! Attempting automated processing of paper acceptance...
🐦🐦🐦 👉 Tweet for this paper 👈 🐦🐦🐦
🚨🚨🚨 THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! 🚨🚨🚨
Here's what you must now do:
Party like you just published a paper! 🎉🌈🦄💃👻🤘
Any issues? Notify your editorial technical team...
Congratulations @roshansamuel on your article's publication in JOSS! Thanks for your patience through this long review process.
Many thanks to @dlagrava, @olgadoronina, and @nickwimer for reviewing this submission.
Submitting author: @roshansamuel (Roshan Samuel) Repository: https://github.com/roshansamuel/saras Version: v1.0 Editor: @kyleniemeyer Reviewers: @dlagrava, @olgadoronina, @nickwimer Archive: 10.5281/zenodo.5205320
Status
Status badge code:
Reviewers and authors:
Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) by leaving comments in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)
Reviewer instructions & questions
@harpolea & @dlagrava, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:
The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @kyleniemeyer know.
✨ Please try and complete your review in the next two weeks ✨
Review checklist for @dlagrava
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
Review checklist for @olgadoronina
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper
Review checklist for @nickwimer
Conflict of interest
Code of Conduct
General checks
Functionality
Documentation
Software paper