Channelflow 2.0

Make test fails

Hi all,

I’m new to channelflow and I am using it for my Master’s Thesis.

I’ve been trying to install channelflow and have been encountering some difficulties as I can’t get all the subroutines to pass when make test is invoked.

I tried it both with -DUSE_MPI=off and -DUSE_MPI=on and both has around 93%~ test passes

I have attached the log below to avoid clutter.

The common failed subroutines are:

  1. time_integration
  2. io
    3.vector2field

Thank you!

CONFIGURE LOG WITHOUT MPI

– configuring channelflow version 2.0.2
– Using GNU compiler options
*-- *
– Starting system introspection
*-- Found FFTW *
– FFTW_LIBRARY=/usr/local/lib/libfftw3.so
– FFTW_OMP_LIBRARY=/usr/local/lib/libfftw3_omp.so
– FFTW_MPI_LIBRARY=/usr/local/lib/libfftw3_mpi.so
– Not using MPI
– NetCDF include dir: /usr/include
– HDF5: Using hdf5 compiler wrapper to determine CXX configuration
– Checking if hdf5 library functions in /home/chihin/anaconda3/lib are working correctly.
*-- *
*-- Include directories: *
– Git revision b1da5ba316f9b87333a1aa390d832cca842ad4b6
– Boost version: 1.65.1
– Found the following Boost libraries:
– python
– Building with Python interface.

  • ###############################################*

  • ########### Configuration summary ###########*

  • ###############################################*

  • Compiler: GNU 7.5.0*

  • Build type: release*

  • Install prefix: /home/chihin/usr*

  • Building shared library: yes*

  • Linking programs to: shared library*

  • Libraries*

  • MPI: disabled*

  • netcdf (default file format): enabled*

  • Parallel netcdf: disabled*

  • HDF5 C++ (legacy file format): enabled*

  • Channelflow components*

  • nsolver: enabled*

  • Python wrapper: enabled*

  • GTest unit testing: enabled*

– Configuring done
– Generating done
– Build files have been written to: /home/chihin/Documents/Repositories/channelflow/build

MAKE TEST LOG WITHOUT MPI

The following tests FAILED:
8 - io (Child aborted)
10 - vector2field (Child aborted)
53 - timeIntegration (Child aborted)
54 - pythonWrapperTest (Failed)
Errors while running CTest
Makefile:97: recipe for target ‘test’ failed
make: *** [test] Error 8

CONFIGURE LOG WITH MPI

– configuring channelflow version 2.0.2
– Using GNU compiler options

– Starting system introspection
– Found FFTW
– FFTW_LIBRARY=/usr/local/lib/libfftw3.so
– FFTW_OMP_LIBRARY=/usr/local/lib/libfftw3_omp.so
– FFTW_MPI_LIBRARY=/usr/local/lib/libfftw3_mpi.so
– MPI libs:
– FFTW_MPI library: /usr/local/lib/libfftw3_mpi.so
– NetCDF include dir: /usr/include
– HDF5: Using hdf5 compiler wrapper to determine CXX configuration
– Found HDF5: /home/chihin/anaconda3/lib/libhdf5_cpp.so;/home/chihin/anaconda3/lib/libhdf5.so;/usr/lib/x86_64-linux-gnu/librt.so;/usr/lib/x86_64-linux-gnu/libpthread.so;/home/chihin/anaconda3/lib/libz.so;/usr/lib/x86_64-linux-gnu/libdl.so;/usr/lib/x86_64-linux-gnu/libm.so (found version “1.10.4”) found components: CXX
– Checking if hdf5 library functions in /home/chihin/anaconda3/lib are working correctly.
– Looking for include file hdf5.h
– Looking for include file hdf5.h - found
– Looking for H5D_init in hdf5
– Looking for H5D_init in hdf5 - found
– Looking for H5Dopen2 in hdf5_hl
– Looking for H5Dopen2 in hdf5_hl - found
– Looking for H5Eprint2 in hdf5_cpp
– Looking for H5Eprint2 in hdf5_cpp - found

– Include directories:
– Git revision b1da5ba316f9b87333a1aa390d832cca842ad4b6

###############################################
########### Configuration summary ###########
###############################################
Compiler: GNU 7.5.0
Build type: Release
Install prefix: /usr/local
Building shared library: yes
Linking programs to: shared library

Libraries
MPI: enabled
netcdf (default file format): enabled
Parallel netcdf: disabled
HDF5 C++ (legacy file format): enabled

Channelflow components
nsolver: enabled
Python wrapper: disabled
GTest unit testing: enabled

– Configuring done
– Generating done
– Build files have been written to: /home/chihin/Documents/Repositories/channelflow/build

MAKE TEST WITH MPI
The following tests FAILED:
8 - io (Failed)
10 - vector2field (Failed)
53 - timeIntegration (Failed)
60 - mpi_io (Failed)
62 - mpi_vector2field (Failed)
105 - mpi_timeIntegration (Failed)
Errors while running CTest
Makefile:97: recipe for target ‘test’ failed
make: *** [test] Error 8

You could try running the tests manually and seeing what happens. There should be binaries for them in /build/tests/test* They tend to be pretty verbose.

It is a bit weird for the io test to fail - perhaps something fishy is going on when the tests are run.

Cool. I’ve found the error. I think there’s some overlapping of the package HDF5. I’ve installed HDF5 from the source code. I’ve also installed anaconda (a platform for python) which has also HDF5 itself.

I saw that HDF5 is required for legacy file formatting. I am thinking of disabling HDF5 actually I am not sure what do legacy file formats refer to. I’ll probably use matlab/paraview for post-processing which I saw that NetCDF supports. If thats that case I probably don’t need HDF5?

Warning! HDF5 library version mismatched error
The HDF5 header files used to compile this application do not match
the version used by the HDF5 library to which this application is linked.
Data corruption or segmentation faults may occur if the application continues.
This can happen when an application was compiled by one version of HDF5 but
linked with a different version of static or shared HDF5 library.
You should recompile the application or check your shared library related
settings such as ‘LD_LIBRARY_PATH’.
You can, at your own risk, disable this warning by setting the environment
variable ‘HDF5_DISABLE_VERSION_CHECK’ to a value of ‘1’.
Setting it to 2 or higher will suppress the warning messages totally.
Headers are 1.10.0, library is 1.10.4

edit: I used matlab to read NC files which worked

Hi Chihin,

good that you solved your issue.
Just a comment on the legacy format HDF. If you are new to Channelflow and directly start with version 2.0, you can happily disable HDF and only use NetCDF which is more performant.

HDF was the main format for Channelflow 1.5. Users that worked with that older version might want to read existing HDF-data.

Best,
Florian