Installation

In this section the following tasks are described:

  • Installing required libraries
  • Building magnum.fd from source
  • Testing the magnum.fd installation

Required libraries

Required runtime libraries:

Library Should work with version Recommended version Remarks URL Ubuntu/Debian package
Python developer package 2.4 2.6,2.7,3.2 Python 3.x works http://www.python.org python-dev
FFTW 3.0.0 3.3.2+ Get the highest version http://www.fftw.org libfftw3-dev
CUDA (if GPU is enabled) CUDA 3 highest Tested with CUDA 4 http://www.nvidia.com (n/a)
Numpy (optional) 1.3.0 1.3.0+ Needed to convert scalar/vector field objects to numpy arrays http://www.numpy.org python-numpy
Python Imaging Library (optional) any recent any recent Needed for the ImageShapeCreator class (optional) http://www.pythonware.com/products/pil/ python-imaging
Sundials CVode (optional) sundials-2.5.0 cvode-2.7.0 cvode-2.7.0 Needed for using implicit CVode evolver (optional) http://computation.llnl.gov/casc/sundials (n/a)

Ubuntu/Debian apt-get command:

sudo apt-get install python-dev python-numpy python-imaging libfftw3-dev

Additional software that is required to build magnum.fd from source:

Software “should work” Recommended Remarks URL Ubuntu/Debian package
g++ build chain any newest   http://gcc.gnu.org g++
cmake 2.8.8 2.8.8+ Build system http://www.cmake.org cmake
swig 1.3 2.0.1+ Python wrapper generator http://www.swig.org swig1.3, swig2.0
Sphinx any recent 0.6.6+ Python documentation generator http://sphinx.pocoo.org python-sphinx
bzr any recent any recent Bazaar version control system http://bazaar-vcs.org/ bzr

Ubuntu/Debian apt-get command:

sudo apt-get install g++ cmake python-sphinx bzr
sudo apt-get install swig2.0
sudo apt-get install swig1.3 # if swig2.0 is not available

Building magnum.fd from source

Clone the git repository

git clone https://github.com/micromagnetics/magnum.fd.git

Now the magnum.fd source code is located in the “magnum.fd” subdirectory. To build magnum.fd, enter:

cd magnum.fd                    # enter magnum.fd base directory
cd src/build                    # enter build directory
cmake ..                        # to compile for CPU
make                            # start the build process
sudo make install               # installs magnum.fd as python package

You can use the following parameters to customize your installation:

cmake .. [parameters]
-DENABLE_CUDA_32=on  # to compile for cuda 32 bit
-DENABLE_CUDA_64=on  # to compile for cuda 64 bit
-DUSE_PYTHON2=on     # force compile for python2
-DUSE_PYTHON3=on     # force compile for python3
-DUSE_CVODE=on       # compile with CVode

If you don’t want to install magnum.fd, then set PYTHONPATH to <micromagnum-basedir>/src

To check the installation, start the Python interactive shell by entering “python” and type “import magnum”. If everything went ok, you should see no errors like this:

Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
[GCC 4.5.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import magnum
[   INFO] - magnum.fd 0.0.1
[   INFO] - Copyright (C) 2012-2014 by the MicroMagnum team.
[   INFO] - Copyright (C) 2014 by the magnum.fd team.
[   INFO] - This program comes with ABSOLUTELY NO WARRANTY.
[   INFO] - This is free software, and you are welcome to redistribute it
[   INFO] - under certain conditions; see the file COPYING in the distribution package.
>>>

You can then enter the examples directory in the magnum.fd base directory and try out the examples, like:

cd examples/sp4
./sp4 -l0           # add -g0 to run on GPU
                    #(this works only when GPU support was enabled at compile time)

Building with CVode evolver

If you want to use magnum.fd with the implicit CVode evolver you can get it on the sundials download page. http://computation.llnl.gov/casc/sundials/download/download.html

Or get the package directly:

wget http://computation.llnl.gov/casc/sundials/download/code/cvode-2.7.0.tar.gz
tar -xvf cvode-2.7.0.tar.gz

To build and install you can use:

cd cvode-2.7.0          # change to the source directory
./configure --with-pic  # the PIC option is important to use it with magnum.fd.
make                    # build
sudo make install       # and install cvode

Now you can build magnum.fd and activate CVode with the toggle:

cmake .. -DUSE_CVODE=on   # to enable CVode

If you do not have the permission to install globally, use these Cmake parameters:

cmake .. -DUSE_CVODE=on -DCMAKE_INCLUDE_PATH=/INSTALLPATH/include -DCMAKE_LIBRARY_PATH=/INSTALLPATH/lib

FFTW download and building

If you want a custom build of FFTW.

FFTW download, version 3.2.2 at http://www.fftw.org/fftw-3.3.2.tar.gz, see http://www.fftw.org for newer versions such as the latest alpha version.

Suggested configure parameters:

./configure --with-pic --prefix=/home/gselke/fftw --enable-openmp --enable-sse2