NuTo - yet another finite element library

License: BSL-1.0

Language: C++

Keywords: cpp, fem, finite-elements, python


What is it?

A finite element library.

How do I install it?

At your own peril.

First, you need some external dependencies

sudo apt-get install git swig3.0 cmake doxygen python-dev python-numpy \
libboost-all-dev libeigen3-dev libopenblas-dev libmetis-dev libmumps-seq-dev libann-dev libarpack2-dev libomp-dev

Then, you need to check out the source code

git clone git:// nuto

Create a build directory and switch to it

mkdir nuto/build && cd nuto/build

Run cmake

cmake ..

Once this ran without errors, you can issue make (-j4 for parallel building)

make -j4

If you want to use the python module, and run all the tests, you need to add the module path to your environment

export PYTHONPATH=<path/to/nuto/build>:$PYTHONPATH

In the end, run the test suite to see if all went well

make test

Can I see some code?

Sure: @ref ipythonexample

As long as the new README is not ready, you can continue reading the old one here. Most of it is very out of date (use git instead of svn, Mersenne is not needed anymore, Eigen3 instead of 2, etc.), so tread carefully:


NuTo is a project originally developed at the Institute of Structural Mechanics at the Bauhaus-University in Weimar, Germany. It is OpenSource and the license is attached in LICENSE.txt

Instruction for compilation

  1. checkout NuTo using

    svn co nuto

    or update using

    svn up
  2. checkout externals individually or from yesterday

    svn co svn+ssh://


cd metis
tar xzf metis-4.0.tar.gz
cd metis-4.0
patch -p1 -i ../metis-4.0-cmake.patch
patch -p1 -i ../metis-4.0-gcc44.patch (only required for gcc >= 4.4)
mkdir objdir
cd objdir
cmake -DCMAKE_INSTALL_PREFIX=/opt/nuto ..
make install (eventually as root)


cd mumps
tar xvfz MUMPS_4.8.4.tar.gz
cd MUMPS_4.8.4

patch -p1 < ../MUMPS_4.8.4-cmake.patch
mkdir objdir
cd objdir
cmake -DCMAKE_INSTALL_PREFIX=/opt/nuto ..

make install (eventually as root)

Mersenne Twister

cd mersenne
cd dSFMT-src-2.1
patch -p1 < ../dSFMT-src-2.1-cmake.patch
cmake -DCMAKE_INSTALL_PREFIX=/opt/nuto ..
make install (eventually as root)


cd eigen
tar xzf 2.0.10.tar.gz
cd eigen
mkdir objdir
cd objdir
cmake -DCMAKE_INSTALL_PREFIX=/opt/nuto ..
make install (eventually as root)


cd boost
tar xzf boost_1_41_0.tar.gz
cd boost_1_41_0
./ --prefix=/opt/nuto
./bjam --layout=system  --with-serialization
./bjam --layout=system  --with-serialization --prefix=/opt/nuto install (eventually as root)
  1. call cmake to build the Makefiles

    out-of-source build in build directory

    cmake mysourcedirectory -DNUTO_EXTERNAL_LIBRARIES_ROOT=/opt/nuto -DBOOST_ROOT=/opt/nuto

    or call cmake to generate an eclipse project

    cmake -G"Eclipse CDT4 - Unix Makefiles" -D CMAKE_BUILD_TYPE=Debug  -DNUTO_EXTERNAL_LIBRARIES_ROOT=/opt/nuto -DBOOST_ROOT=/opt/nuto ../nuto
  2. call the build process

  3. add module path to your environment

    export PYTHONPATH=/home/unger3/develop/nuto_build
  4. execute test files

    make test

    a single test file (e.g. Brick8N) file can be executed

    ctest -V -R Brick8N


  • BLAS
  • BOOST >= 1.36.0
  • SWIG >=1.3.40
  • CMAKE >= 2.6.0
  • Python >= 2.6
  • Eigen >= 2.0.6
  • Doxygen >= 1.5.8

Set Fortran-compiler with the envireonment variable FC or the cmake variable CMAKE_Fortran_COMPILER.

Compiling a debug version of python

./configure --without-pymalloc --enable-shared

uncomment in Objects/obmalloc.c:



make; make altinstall

Debugging an extension

set breakpoint for gdb with

br _PyImport_LoadDynamicModule

continue (c) until the corresponding module is loaded


update table of source files


set breakpoint in your source file continue debugging

Project Statistics

Sourcerank 6
Repository Size 17.9 MB
Stars 10
Forks 3
Watchers 9
Open issues 46
Dependencies 0
Contributors 3
Tags 8
Last updated
Last pushed

Top Contributors See all

Psirus Philip Huschke Thomas Titscher

Recent Tags See all

removal_of_old_laws February 23, 2017
github August 05, 2016
2016-04-07-BeforeDOFSeparation April 07, 2016
2016-04-07-BeforeDOFSeparation April 07, 2016
2015-06-22-InterpolationTypes June 22, 2015
2015-06-22-InterpolationTypes June 22, 2015
2015-06-22-NuToSVN June 22, 2015
2015-06-22-NuToSVN June 22, 2015

Something wrong with this page? Make a suggestion

Last synced: 2016-07-19 10:31:34 UTC

Login to resync this repository