OSX (el capitan)/Ubuntu (14.04): Windows (Visual Studio 2017):
- Qt >= 5.8 (https://www.qt.io, version 5.9.0 only for Windows build)
- OPTIONAL: Pardiso Solver (http://www.pardiso-project.org)
- OPTIONAL: Gurobi Solver (http://www.gurobi.com)
- Libigl https://github.com/libigl/libigl
- Eigen >= 3.2 (By Default GAUSS uses the libigl Eigen install)
- Spectra Eigenproblem Solver (https://spectralib.org)
- The Flexible Collision Library (https://github.com/flexible-collision-library/fcl)
- Eigen-Gurobi Interface (https://github.com/jrl-umi3218/eigen-gurobi/)
Clone this repository with
git clone --recursive https://github.com/dilevin/GAUSS.git
- Install Homebrew (https://brew.sh)
- At command line: chmod a+x ./InstallGAUSS_OSX.sh
- Run InstallGAUSS_OSX.sh which does the following:
- downloads and installs Qt 5.9 in ~/Qt
- installs CMake using homebrew (upgrades currently installed version)
- installs Eigen 3 using home brew (upgrades currently installed version)
- installs libigl in ./build/libigl
- installs Gauss in ./build
- This install procedure requires gcc and g++ version 5 or greater setup as the default c/c++ compilers
- At command prompt: chmod a+x ./InstallGAUSS_Ubuntu.sh
- Run InstallGAUSS_Ubuntu.sh which does the following
- downloads and installs Qt 5.9 in ~/Qt
- install libigl into ./build/libigl
- installs CMake using apt-get
- installs Eigen 3 using apt-get
- installs Gauss in ./build
These scripts are hand maintained to make GAUSS Easy to build on certain platforms. If they fail please resort to custom install using cmake below.
Ensure that Qt version >= 5.8 is installed. On Ubuntu 16.04 you may have to change the paths to be consistent in ccmake. Something like the following. /home//Qt/5.9.2/gcc_64/lib/cmake/
Download (and compile?) the igl library into the directory above ${GAUSS_DIR}
or choose a custom path in config.cmake
.
If you are on OSX and you wish to enable OpenMP, install llvm via homebrew and follow the instructions in config.cmake
Likewise, if you wish to use the pardiso solver, download the pardiso library from the website and set the path in config.cmake
. If you get errors referring to libgfortran, you may need to follow this guide to fix the library for your paths.
In the root of this repository do the following
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -C ../config.cmake ../
make
To see if it worked, run the tests and examples
./bin/Tests
./bin/Example1
./bin/Example2
./bin/Example3
./bin/Example4 # If OpenMP was enabled
To play examples in Gauss press 'p' once the Qt window appears.
GAUSS Includes a rudimentary MATLAB interface, tested using MATLAB 2015b and 2017a on OSX. To enable the MATLAB interface, build the project Gauss_MATLAB, then open MATLAB and issue the following commands:
addpath('{Gauss_Root_Dir}/src/MATLAB/')
addpath('{Gauss_Root_Dir}/build/lib/{Build_Mode_of_Gauss_MATLAB}/')
savepath
An example of using the MATLAB interface is given in {Gauss_Root_Dir}/src/Examples/example8.m
To build the MATLAB interface using Visual Studio, currnetly you have to manually modify a couple of linker inputs. After building the VS solution using CMake, open it in VS, and go to the linker input for the Gauss_MATLAB project. That is, Gauss_MATLAB (Solution Explorer) > Properties > Linker > Input > Additional Dependencies.
Change libmx.dll
to libmx.lib
, and remove the input libiomp5.dylib
. Now you should be able to build the MATLAB interface on Windows.
# setting libigl include path does not seem to work
# workaround: clone/link libigl in path where `dyld` looks for by default
# i.e. link libigl to `/usr/local/igl`
git clone --recursive libigl path/to/libigl
sudo mkdir /usr/local/igl
sudo ln -s path/to/libigl /usr/local/igl/libigl
# for macOS, there is trouble building GAUSS with OpenMP
# possibly because Apple's llvm does not ship with OpenMP
# or some kind of problem with versioning of llvm (4.0.1 -> 7.0.1)
# workaround: Try
# 1.
brew install llvm
brew install libomp
# 2. update `config.cmake` `LLVM_INCLUDE` cache to 7.0.1
# Using Pardiso
# 1. Register an academic licence
# 2. Download `libpardiso600-MACOS-X86-64.dylib` via link in email,
# put it under `/usr/local/lib/` and update `config.cmake` `PARDISO_LIB` to path of `dylib`
# 3. Put licence in `pardiso.lic` and place it in home directory `~/` in email
# 4. Use ccmake to do configuration