PlasCom2  1.0
XPACC Multi-physics simluation application
Illinois Interface to *X*

IX Basics


This is the main documentation page for Illinois' IX Toolkit

IX is an interface layer that provides reusable software interfaces and utilities. IX provides software constructs that encapsulate several useful underlying facilities. A suite of utilities useful for developing serial and parallel applications in the Unix environment is included.

Interfaces to X are provided where X is one of:

  • Profiling - Instrumentation based profiling at the function level supporting parallel applications and using PAPI (when available).
  • MPI Wrapper - Object oriented, templated convenience classes for MPI parallel applications. Includes mechanisms for communicating complex, user-defined types with Pack/UnPack.
  • Command Line Handling - Convenience class for command line interfacing. Automatically generates usage and help messages.
  • Unix System Tools - Utilities that interact with the Unix system, including TCP Client/Server wrapper classes, filesystem inspection and navigation, runtime loading of dynamic objects, and a stream object for Unix file descriptors.
  • Application Templates - Uses much of the above functionality to provide a shell of a serial or MPI parallel application which can be populated for rapid application development of integratible applications with built-in user interfaces, testing, and profiling.

Featuring also:

  • Base CMake files
  • Base CTest files
  • Example/Model Documentation
  • Built-in support for unit testing
  • No TPL dependencies


IX uses the CMake build system. CMake is a system for configuration and building that generates platform indpendent build files (e.g. Makefiles) for software packages.

Get IX

Get IX from github:

git clone

Set Up Your Build Environment

Create a directory in which to build IX:

mkdir build_ix
cd build_ix

Tell CMake where you want to install IX:


If you have third party software tools installed in non-standard locations then you need to let CMake know where to find those packages:


Makefile Generation

Invoke cmake to generate your makefiles:

cmake ../IX


Build and install the IX package with:

make install