LinuxInstall
m |
m |
||
Line 37: | Line 37: | ||
$sudo apt-get install liblapack-dev | $sudo apt-get install liblapack-dev | ||
− | Notice that | + | Notice that if you prefer, you can compile other BLAS implementation like ATLAS. |
=== Boost === | === Boost === |
Revision as of 09:40, 20 November 2014
Contents |
How to compile Kratos: Linux
In this section we are going to go through the process of compiling a basic version of Kratos Multiphysics under linux environments. Specifically, we explain how to compile in Ubuntu 14.04 LTS, with the latest checked libraries. A basic knowledge of Linux is assumed ( execute commands, create directories, etc...)
Subversion
- Objectives:
- Install subversion
- Get Kratos Multiphysics source code
The first thing you will need is the Kratos Multiphysics source code. To download the code you will have to use a subversion manager. You can install the default subversion by using this command:
$sudo apt-get install subversion
Once subversion is installed you can fetch the code by using this command:
$svn co https://svn.cimne.upc.edu/p/kratos/kratos
Dev Packages
- Objectives:
- Get Python3-dev
- Get Fortran compiler
- Get LIBBLAS and LIBLAPACK
You will need python dev files in order to compile kratos and some of its dependent libraries. Whether you wish to use python 3 ( recommended ) or python 2, you will need to install its dev files. This guide will show the process to install python 3.4 dev files, as is its recommended version.
$sudo apt-get install python3-dev
Additionally you will need a fortran compiler, which is not present in ubuntu 14.04 by default:
$sudo apt-get install gfortran
We will also need an implementation of blas and lapack. You can obtain an implementation by:
$sudo apt-get install libblas-dev $sudo apt-get install liblapack-dev
Notice that if you prefer, you can compile other BLAS implementation like ATLAS.
Boost
- Objectives:
- Compile boost libraries
The next step will consist in compile Boost. Kratos Multiphysics needs Boost libraries to support some of its functions. We recommend you to use version 1.57. You can download boost from its official website:
http://www.boost.org/users/download/
Navigate to the directory where you have extracted boost and execute this command:
$sh bootstrap.sh
Some additional files will be generated.
By default, boost will try to link with python 2.7. It is important to manually specify that we want to use python 3 by adding “using python : 3.4 : /usr ;” to the file project-config.jam. It will look like this:
# Boost.Build Configuration # Automatically generated by bootstrap.sh import option ; import feature ; # Compiler configuration. This definition will be used unless # you already have defined some toolsets in your user-config.jam # file. if ! gcc in [ feature.values <toolset> ] { using gcc ; } project : default-build <toolset>gcc ; # Python configuration using python : 3.4 : /usr ; # List of --with-<library> and --without-<library> # options. If left empty, all libraries will be built. # Options specified on the command line completely # override this variable. libraries = ; # These settings are equivalent to corresponding command-line # options. option.set prefix : /usr/local ; option.set exec-prefix : /usr/local ; option.set libdir : /usr/local/lib ; option.set includedir : /usr/local/include ; # Stop on first error option.set keep-going : false ;
After modifying it you will have to compile the required boost libraries using this command. Notice that this will only compile “serialization” and “python” libraries. If you need further libraries, you will need to explicitly tell boost to compile them.
$./b2 --with-python --with-serialization
CMake
- Objectives:
- Install CMake
Cmake is the tool used to compile kratos. To install it simply execute this command:
$sudo apt-get install cmake
Configure
- Objectives:
- Configure Kratos for the first time compilation
In order to compile kratos for the first time you will need to configure the project. First, navigate to your kratos/cmake_build folder and make a copy of the template file:
$cp example_configure.sh configure.sh
Then, open configure.sh with any text editor and modify the lines that tell cmake where some components are located. You will need to provide at least BOOST_ROOT, PYTHON_LIBRARY and PYTHON_INCLUDE_DIR. It is also recommended to change KRATOS_INSTALL_PREFIX
- Option
- BOOST_ROOT: Directory where you have compiled boost
- PYTHON_LIBRARY: Location of the python librarie used to compile boost
- PYTHON_INCLUDE_DIR: Location of the python headers
- KRATOS_INSTALL_PREFIX: Sets the install directory
For example, in ubuntu it will look something like:
-DBOOST_ROOT="~/compiled_libraries/boost_1_57_0" \ -DPYTHON_LIBRARY="/usr/lib/python3.4/config-3.4m-x86_64-linux-gnu/libpython3.4m.so" \ -DPYTHON_INCLUDE_DIR="/usr/include/python3.4"
It is also recomended that you specify the directory where kratos is goin to be installed. You can do that by changing the path in -DKRATOS_INSTALL_PREFIX. If the variable is not set, the installation will be done in the source directory.
-DKRATOS_INSTALL_PREFIX="/path/to/my/kratos/installation" \
Notice that you can also turn ON/OFF parts of the code according to your necessities:
-DSTRUCTURAL_APPLICATION=ON/OFF
|
Compile
- Objectives:
- Compile kratos.
If you followed all the steps correctly, compile kratos should be as easy as executing the configure script:
$sh configure.sh
Please, notice that kratos is big and the compilation process can easily take 1 or 2 hours, depending on which applications are being compiled. A typical compilation process with the default configuration takes approximately 45 minutes with a i7 / 8GB Ram computer.
Setting up your enviroment
- Objectives:
- Tell Linux how to execute kratos
Once Kratos ins compiled, you will have to tell the OS where to find the libraries. You can do that by executing these commands. Notice that you have to put the same path as in the step 5
$echo "export PYTHONPATH=/path/to/my/kratos/installation:$PYTHONPATH" >> $HOME/.bashrc $echo "export LD_LIBRARY_PATH=/path/to/my/kratos/installation/libs:$LD_LIBRARY_PATH" >> $HOME/.bashrc
Now each time you open a terminal these commands will be executed and the paths set automatically. If you don't want to reset your terminal the first time, just execute:
$source ~/.bashrc
Test
- Objectives:
- Tests kratos
To to tests if everythings has gone correctly, you can execute a simple python script containing this line:
form KratosMultiphysics import *
If everethung was ok you will see this message:
| / | ' / __| _` | __| _ \ __| . \ | ( | | ( |\__ \ _|\_\_| \__,_|\__|\___/ ____/ Multi-Physics 3.3.11016