4. Distribution Specific Information

This section lists all required system packages for compiling, building, and executing the SMR packages memcom, b2000pp, and simples under specific Linux distributions.

Please install cmake 3.22+ or download, compile, and install it yourself.

Note

Installing system packages requires root privileges.

4.1. Ubuntu 18+

Install an Ubuntu version 18+ “Desktop” distribution

Create a Python virtual environment (see create a Python3 virtual environment for Python3 or create a Python2 virtual environment) for Python2.

Install the required Python packages for Python (see Python3 and Python2).

Install the following system packages for building memcom, b2000pp, and simpls (if the system packages are already installed, apt either skips or updates them):

# Linear algebra. opt, and threading packages:

sudo apt-get install libnlopt-dev liblapack-dev libarpack2-dev \
libatlas-base-dev libscotch-dev libtbb-dev libssl-dev \
libmpfr-dev libnlopt-dev

# Compilers & tools:

sudo apt-get install python3-dev swig flex byacc bison gfortran m4 \
autoconf automake autotools-dev libtool \
openssh-server environment-modules tclsh wish libxpm-dev git git-gui

# MUMPS:

sudo apt-get install libmumps-seq-dev libmumps-dev libmumps-scotch-dev

Install the following Python3 packages:

# Install numpy and scipy with pip, because of sphinx.
pip3 install --upgrade --force-reinstall pybind11 numpy scipy \
   'matplotlib>=3.3' PyGObject pandas

As Ubuntu 20 does not support Python 2 anymore, more precisely the various Python2 packages required by baspl++, you have to add an Ubuntu 18 repository to file apt/sources.list. Add the following line to the file apt/sources.list or uncomment the respective line in the file apt/sources.list:

deb-src http://it.archive.ubuntu.com/ubuntu/ bionic-updates main restricted

Install the following system packages for building and running baspl++ and fscon (Python2 packages):

# System packages baspl++ (python 2 packages):

sudo apt-get install python2-dev libgtk2.0-dev libglu1-mesa-dev \
freeglut3-dev mesa-common-dev libgl2ps-dev

Install the following Python2 packages:

pip2 install PyOpenGL decorator Image

Create a virtual environment for building the SMR packages, see Python Virtual Environments. If you intend to build the baspl++ package, install a Python 2 virtual environment. If you intend to build the b2000++ packages, install a Python 3 virtual environment.

4.2. CentOS 8+ (RHEL 8+, Rocky, Alma)

Install a CentOS 8+ “Workstation” with “Gnome Applications” and “Development Tools”.

Create a Python virtual environment (see create a Python3 virtual environment for Python3 or create a Python2 virtual environment) for Python2 .

Install the required Python packages for Python (see Required packages for Python3 or Required packages for Python2).

Install the following packages (note that if the packages are already installed, dnf either skips or updates them):

# enable epel repository
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

dnf install dnf-plugins-core
dnf config-manager --set-enabled powertools

dnf install environment-modules lsb_release
dnf install python2-devel python3-devel swig python3-numpy \
python2-numpy python3-scipy python2-scipy libXmu-devel \
libX11-devel libXpm-devel gtk2-devel ncurses-devel
dnf install gcc-gfortran cmake
dnf install arpack-devel blas-devel scotch-devel lapack-devel MUMPS-devel
dnf install gl2ps-devel  pygtk2-devel mesa-libGLU-devel

If MPI MPICH versions of B2000++ and the fsi libraries are to be built, install

sudo dnf install mpich mpich-devel MUMPS-mpich MUMPS-mpich-devel

If MPI OpenMPI versions of B2000++ and the fsi libraries are to be built, install

sudo dnf install openmpi openmpi-devel MUMPS-openmpi MUMPS-openmpi-devel

The NLopt library does not seem to be available in CentOS 8 (NLopt is required for B2000++). Please download the NLopt package and compile and install (per default in /usr/local):

tar xf nlopt-2.6.2.tar.gz
cd nlopt-2.6.2
mkdir build; cd build; cmake .. ; make ; sudo make install

The LD_LIBRARY_PATH must be set explicitly (bash: in $HOME/.profile) if libraries in /usr/local are used (such as NLopt default installation):

export LD_LIBRARY_PATH=/usr/local/lib64:/usr/local/lib

Create a virtual environment for building the SMR packages, see Python Virtual Environments. If you intend to build the baspl++ package, install a Python 2 virtual environment. If you intend to build the b2000++ packages, install a Python 3 virtual environment.