OOF: Finite Element Analysis of Microstructures

Installing OOF2 Prerequsites

oof2 logo

These are the instructions for installing the supporting software for OOF2 version 2.3.0 or later. If you are installing an earlier 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 macOS and various flavors of Linux.

Only operating systems that we have access to are listed here. If you are using a system not listed here, if you send us e-mail we may be able to help. 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] [Ubuntu] [Debian] [Arch]
[Macintosh OS X] [MacPorts]



First, install OOFCanvas and its dependencies. When building oofcanvas, be sure to set PYTHON_API to Python3 and OOFCANVAS_USE_IMAGEMAGICK to ON. The oofcanvas prerequisites include almost all of the oof2 prerequisites. After installing oofcanvas you will only need to install lapack:

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


See Ubuntu. The same packages should work.


You can install OOF2 and all its prerequisites via AUR. (This package is not maintained by NIST.)


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 commonly used in 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.


  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. You can choose to skip this step, but then you'll have to add +quartz -x11 to the end of all port install commands below.

  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. Optionally install the optimized version of the BLAS libraries for your computer architecture by typing

                  sudo port install openblas +native 

  5. OOF2 itself can be installed via MacPorts, but if the version there is not up to date with the version here, for some reason, you might want to install OOF2 yourself. You can check the version available on MacPorts by typing

                  port list oof2 
    If it is up to date, or if you are happy with an old version, you can install OOF2 and all its prerequisites by simply typing
                  sudo port install oof2 
    If it asks you if you want to install additional packages, say "yes".

    Even if you don't want to use MacPorts to install OOF2, you might want to use it to install OOFCanvas. Check to see if the version of OOFCanvas on MacPorts is sufficient for the version of OOF2 that you are going to install. The required versions of all of the dependencies are given in the OOF2 README file. You can discover the version of OOFCanvas provided by MacPorts by typing

                  port list oofcanvas 
    If the version is ok, install OOFCanvas and its prerequisites by running
                  sudo port install oofcanvas 
    If the version is not ok, follow the OOFCanvas installation instructions in the OOFCanvas manual. All of the remaining OOF2 dependencies will be installed when you install OOFCanvas.

  6. Finally, to make OOF2 look nice, you can install a set of icons for Gtk. The simplest thing is to run

                  sudo port install adwaita-icon-theme


First install OOFCanvas and its dependencies into an Anaconda environment, which we'll assume is called OOF2, following these instructions for the prerequisites.

The only remaining OOF2 prerequisites are the linear algebra packages, which can be installed with

          conda activate OOF2
          conda install -c conda-forge blas lapack