Install Feel++ from Containers

Difficulty difficulty easy

The recommended way to start learning Feel++ consists in using container technologies. Containers provide an all-in one programming environment to start directly using Feel++ skipping the complex installation process. Feel++ is provided with two containers solutions currently:

Depending on your usage and your operating system, you might prefere using one of these previous solutions. The next sub-sections describe how to obtain Feel++ images to begin with Feel++ programming.

Feel++ images provide either a compiling environment with all dependencies, executables or both.
Before going further you might want to install one of the previous solution. install docker or install singularity.

1. Docker

Using Feel++ inside Docker is the recommended and fastest way to use Feel++. The Docker chapter is dedicated to Docker and Feel++ containers chapter is dedicated to Feel++ in Docker. We strongly encourage you to follow these steps if you begin with Feel++ in particular as an end-user. People who would like to develop with and in Feel++ should read through the remaining sections of this chapter.

To begin with Feel++ using docker, you need first to install docker to have a working docker environment on your machine following the official documentation with respect to your operating system. Then choose one of the Feel++ images available on the official repository dockerhub.

We provide currently four main images:

Table 1. Table of the current components of the FCS
Component Description Built From

feelpp-env

Execution and Programming environment

<OS>

feelpp-libs

Feel++ libraries and tools

feelpp-env

feelpp-base

Feel++ base applications

feelpp-libs

feelpp-toolboxes

Feel++ toolboxes

feelpp-toolboxes

Each image is available with several tags depending on the Feel++ version, but also other dependencies. (e.g toolbox images tag list ) In most case, you desire to use the latest tag.

1.1. Usage example

Via the commandline and using the Feel++ toolboxes. We get the image and create a new container.

docker pull feelpp/feelpp-toolboxes
docker run -it -v ${HOME}/feel:/feel feelpp/feelpp-toolboxes

The -it option is used to place yourself inside the container in an interactive mode. You can start using Feel++ commands directly. Note that the -v option is used to share a folder between the host and the container.

Each container can be seen as an instance for the choosen image. You can create as many instance as you desire!

It is also possible to execute a Feel++ application or a command embedded in the container from the outside. For example

docker run feelpp/feelpp-toolboxes echo "Hello World!"
To keep your data in the container, you can use docker [start|stop] -i <container name>.

2. Singularity

singularity is another container technology initially developed to work with HPC infrastructure and solve some security problems in multi-users environment. Latest Feel++ singularity images can be found on our data management server (recommended) in the Feel++ collection. Future public Feel++ images will also be available on the official singularity hub website. We provide currently the same main images as for docker, but the suffix naming might vary depending on the image version.

Singularity works in a similar way as for docker. For example, you can download one of the image available on girder under the collection feelppsingularity_imagescifeelpp_feelpp-toolboxes-latest.simg click on download button.

Once downloaded you can place yourself in the container in interactive as for docker using the commandline

singularity shell -B ${HOME}/feel:/feel feelpp_feelpp-toolboxes-latest.simg
You can retrieve an image from singularity hub directly singularity pull shub://feelpp/singularity:feelpp-toolboxes-latest instead of girder and as for docker. Be aware that current images are currently older than the ones on girder!