OOF: Finite Element Analysis of Microstructures

Installing OOF2 Prerequsites

oof2 logo

These are the instructions for installing the supporting software for OOF2 version 2.2.3 or earlier. If you are installing the current version, please see here.

The hardest part of installing OOF2 can be installing the third party libraries that it uses. This page contains explicit instructions for installing the requisite libraries on several different operating systems.

The easiest way to install the libraries that OOF2 requires is to use a package manager, which will automatically configure, build, and install the libraries and all of the additional software that the libraries require. The tricky bit can be knowing which packages to request. This file gives explicit instructions for using package managers on OS X, NetBSD, and various flavors of Linux.

Because we don't have access to most of these systems, we can't guarantee that these instructions are up to date. We know that many are not up to date, but if you send us e-mail, we may be able to help anyway. If you can update or add to these instructions, please let us know.

NOTE: These instructions assume that you are a non-admin user, but have sudo privileges. If you are doing this from an admin or root account you may be able to omit the sudo from many of the commands listed here.

[Linux][OpenSUSE] [Ubuntu][Debian] [CentOS][Fedora]
[Macintosh OS X] [MacPorts] [Fink]
[NetBSD]


Linux

Ubuntu

First, install OOFCanvas and its dependencies. Make sure to use the --pythonAPI and --magick options. Doing that will install almost everything that OOF2 requires. In addition, you will need to install lapack:

      sudo apt-get install liblapack-dev
        
You can use apt or apt-get.

For Ubuntu 20.04 and later, the default version of Python is Python 3, but OOF2 (for now) requires Python 2. If you followed the instructions for OOFCanvas, you've already installed Python 2. Remember to use it when building OOF2, by typing python2 instead of python when running setup.py.

Debian

See Ubuntu. The same packages should work.

CentOS

NOTE These instructions have not been updated for OOF2 2.2.0. You will need to substitute the equivalent gtk3 packages for the gtk2 packages listed below. If you figure out which packages are needed, please let us know and we'll update the instructions.

Run these commands:

      yum install libgnomecanvas-devel
      yum install gtk2-devel pygtk2-devel python-devel
      yum install lapack-devel blas-devel
      yum install bzip2-devel ImageMagick-c++-devel
      yum install libtool
      yum install gcc-c++

Fedora

NOTE These instructions have not been updated for OOF2 2.2.0. You will need to substitute the equivalent gtk3 packages for the gtk2 packages listed below. If you figure out which packages are needed, please let us know and we'll update the instructions.

Run these commands:

      dnf install redhat-rpm-config
      dnf install libgnomecanvas-devel
      dnf install pygtk2-devel python-devel
      dnf install lapack-devel blas-devel
      dnf install ImageMagick-c++-devel
      dnf install gcc-c++
When setting LD_LIBRARY_PATH, as described in the OOF2 README file, you may have to include prefix/lib64 as well as prefix/lib, and when setting PYTHONPATH , you will need to use prefix/lib64/python2.7/site-packages (instead of the same path without the "64"). (Tested on Fedora 26.)


Macintosh OSX

Commonly used package managers on OS X are MacPorts, fink, and Homebrew. We have experience only with MacPorts. If you don't have a package manager installed already, it will be much easier to use MacPorts.

OOF2 can use either the native Mac graphics (Quartz) or the X11 graphics used by Linux. To use X11, you will need to install an X11 server, which Apple no longer supplies, but which can be downloaded from Mac OS Forge. It's easier to get X11 from MacPorts, if you're using MacPorts.

When the instructions below tell you to type a command, type it in a Terminal window. You can copy and paste the lines from this page.

Macintosh OS X with MacPorts

  1. Install MacPorts from http://www.macports.org/install.php, following their instructions. It's easiest to use the .pkg installer. If you get error messages when running "sudo port -v selfupdate", open a new Terminal window and try again.

  2. If you want to use native Quartz graphics, you will need to ensure that all the ports that you install also use quartz. Edit the file /opt/local/etc/macports/variants.conf and add the line

          -x11 +quartz
    
    at the bottom.

  3. If you want to use X11 graphics instead of Quartz, don't edit variants.conf. Instead, install the X11 server by typing

           sudo port install xorg-server
            

  4. If you want to install OOF2 and its prerequisites the easy way, type

          sudo port install oof2
    
    and MacPorts will do all the work. If it asks you if you want to install additional packages, say "yes".

    If you want more control, install the prerequisites by typing these commands. Some of them may take a while to run, depending on whether or not your computer already has some of the dependencies installed.

          sudo port install oofcanvas
          sudo port install openblas +native
          sudo port install py27-numpy +openblas
          sudo port select python python27 # Optional
    
    Most of the work will be done by installing oofcanvas. If you want to install oofcanvas by hand, see the the OOFCanvas manual.

    The port select python ... line is optional, if you don't use it, you will need to use python2.7 instead of python when installing OOF2.

Macintosh OS X with fink

We haven't used fink recently, and these instructions are certainly out of date.

  1. Install Xcode from Mac OS Forge.
  2. Install fink, by going to http://www.finkproject.org/download/srcdist.php and following the instructions there. If the bootstrap script asks you to choose a mode and you're on a 64-bit capable Mac, choose 64bit-only.

    If you already have fink installed in 32 bit mode, you don't need to reinstall everything just to change to 64 bit mode. You may need to force ImageMagick to build in 32 bit mode in step 5.

  3. Enable the "unstable" fink packages.

    (a) Run "sudo fink configure", and answer "y" when asked about the unstable tree.

    (b) Run these commands:

           sudo fink selfupdate
           sudo fink selfupdate-rsync
           sudo fink index -f
           sudo fink scanpackages 

  4. Use fink to install the libraries that ImageMagick will require by typing these commands:

           sudo fink install libjpeg
           sudo fink install lcms
           sudo fink install libpng14-shlibs 

  5. Build ImageMagick without OpenMP, which is incompatible with OOF2 on OS X. (NOTE! It may not be necessary to do this step. We haven't tried building OOF2 with fink using a recent version of either fink or OS X. You could try installing ImageMagick with fink by typing sudo fink install imagemagick7-dev and skipping this step. You'll know if it worked if you can successfully load and display an image in OOF2.)

    • Go to http://www.imagemagick.org. Click "Download". Choose a site to download it from. Download the file with the latest version number and the .bz2 suffix.

    • Uncompress and untar the package:

             tar -xjf ImageMagick-<version>.tar.bz2
      
      where <version> is 6.6.7-10 or something like that.

    • Run these commands:

              cd ImageMagick-<version>
              ./configure LDFLAGS=-L/sw/lib CPPFLAGS=-I/sw/include --disable-openmp

    • Check the output from the configure command. If it says that support for some image format that you need hasn't been included, you probably need to go back to step 4 and install more packages from fink. The "Packages" link on the fink website will let you search for the package name.

      (If the output indicates no support for formats for which you are sure the libraries have been installed, and if it's possible that you have a 32 bit version of fink, try reconfiguring ImageMagick with CPPFLAGS="-I/sw/include -m32" (including the quotation marks!) instead of CPPFLAGS=-I/sw/include. The OOF developers haven't tested this. Please let us know if it works or not.)

    • Build and install ImageMagick by running these commands:

              make
              sudo make install 

  6. Use fink to install the other packages that OOF2 requires by typing these commands, some of which may take a while to run:
           sudo fink install python 
           sudo fink install pygtk2-gtk-py27-dev
           sudo fink install libgnomecanvas2-dev
    

NetBSD

These instructions are old and have not been tested in a long time.

OOF2 version 2.0.5 and 2.1.1 or later will work on NetBSD. OOF2 version 2.1.0 does not work. These commands were sufficient to install OOF2 on a 32-bit version of NetBSD 5.1. Execute them from a root account.

    echo /usr/X11R7/lib >> /etc/ld.so.conf
    pkg_add pkg-config
    pkg_add py-gobject-shared
    pkg_add py26-gtk2
    pkg_add libgnomecanvas
    pkg_add ImageMagick
    pkg_add freetype2
    pkg_add fontconfig
      
The first line may not be necessary if you set LD_LIBRARY_PATH.

Installing the prerequisites will provide a program called "python2.6" in /usr/pkg/bin. You can use this to build oof2, but you'll have to invoke it explicitly:

  python2.6 setup.py build --skip-swig --library-dirs=/usr/pkg/lib install
You could also create an alias or symbolic link called "python" that points to /usr/pkg/bin/python2.6, and then you can follow the instructions in README.md without change.