User Tools

Site Tools


Channelflow installation

If you are content to use channelflow's predefined command-line utilities (for time-integration, computation of equilibria and periodic orbits, etc.), you can download precompiled binary packages and install them using your Linux distribution's package manager.

If you want to write your own channelflow programs or tinker with the channelflow source code, you should download channelflow source via subversion (preferable) or as a numbered development package.

from the subversion server

Installing from the subversion source gives you access to the latest code and simplifies the process of merging your modifications to the source code with modifications to the official distribution.

  cd ~
  svn co
  cd channelflow
  mkdir build
  cd build
  cmake -DCMAKE_INSTALL_PREFIX=~/channelflow ~/channelflow/trunk
  make test
  make install

from a tarball

Installing from a tarball is good if you're content with stable releases and infrequent updates of channelflow. The following will download, compile, and install channelflow-1.5.0, using an out-of-source build directory ~/channelflow/build, and installing executables, libraries, and header files into ~/channelflow/bin, ~/channelflow/lib, ~/channelflow/include.

  mkdir ~/channelflow
  cd ~/channelflow
  tar xvfpz channeflow-1.5.0.tar.gz
  mkdir build
  cd build
  cmake -DCMAKE_INSTALL_PREFIX=~/channelflow ../channelflow-1.5.0
  make test
  make install

Of course if you're installing a different version of channelflow, change the version numbers to suit. If that doesn't work, read on. The most common problem with channelflow installation is that the compiler can't find required header files or libraries (such as FFTW3), because they're either not installed or installed in unusual locations. Fixes for these issues are discussed in the prerequisites and the configuration_options sections.


To install and use channelflow, you need

  1. a computer, preferably running some form of Unix
  2. a C++ compiler (e.g. g++)
  3. the standard C++ library
  4. the standard C math library
  5. the cmake build system
  6. the Unix “make” utility
  7. the FFTW Fourier transform package (development version)
  8. the Eigen linear algebra package
  9. the HDF5 high-density datafile package(development version)

FFTW is an elegant and efficient self-optimizing Fourier transform library. FFTW is required for channelflow.

Eigen is a C++ pure-template linear algebra library. Most channelflow code does not rely on Eigen. The core fluid simulation algorithms of Channelflow do not require Eigen, however, a few high-level algorithms do (such as computing equilibria and periodic orbits). If you are just interested in time integration, you could strip out the the channelflow code that relies on it.

HDF5 provides flexible, efficient, cross-platform, and standardized data files that can be read by matlab, tecplot, etc. HDF5 is not required, but it is highly recommended. If you do not install HDF5, you can use a channelflow-specific binary files and transfer data to other tools with ASCII files.

You will need to install the required tools and libraries if they are not already installed.


FIXME Incomplete instructions

On MS-Windows, you will probably need to install the CygWin Linux emulation environment.

Mac OS X

Installing channelflow on Mac OS X, by Eric Jelli, Dept. Physics, U. Marburg.

docs/install.txt · Last modified: 2016/08/04 10:38 by gibson