An open API service indexing awesome lists of open source software.

https://github.com/feelpp/docker

:whale: Docker 4 Feel++
https://github.com/feelpp/docker

docker feelpp paraview

Last synced: about 1 month ago
JSON representation

:whale: Docker 4 Feel++

Awesome Lists containing this project

README

          

# Docker 4 Feel++

[![Feel++ Env](https://github.com/feelpp/docker/actions/workflows/feelpp-env.yml/badge.svg)](https://github.com/feelpp/docker/actions/workflows/feelpp-env.yml)

## What can you generate with this repository ?

Using docker and docker-compose, you will currently generate the following images:
- feelpp/feelpp-env:latest

## In-situ visulization with ParaView

### In a nutshell

```
# This setup is valid if you are launching ParaView
# and docker on the same computer.
# You must ensure that your ParaView version matches the one used in docker
# (It should be the latest available)

# Download Feel++ docker image
shell> docker pull feelpp/develop
```

From here, you have 2 ways to proceed:

* Directly use the network of the host:

```
# Launch a pvserver
shell> pvserver
# Launch ParaView, connect to the pvserver and enable Catalyst in the interface
shell> paraview

# Run the feelpp image
shell> docker run -ti --net=host feelpp/develop

# Run the application
dockershell> mpirun -np 2 feelpp_qs_laplacian_2d --config-file src/feelpp/quickstart/laplacian/qs_laplacian_2d.cfg --exporter.format vtk --exporter.vtk.insitu.enable 1
```

* Use the port export feature from docker (safer regarding to security):

```
# Run feelpp image
shell> docker run -ti -P 11111:11111 feelpp/develop

# Launch tmux to multiplex terminals
dockershell> tmux
# Launch a pvserver in the first terminal
dockershell1> pvserver

# Launch ParaView and connect to the pvserver
shell> paraview

dockershell2> mpirun -np 2 feelpp_qs_laplacian_2d --config-file src/feelpp/quickstart/laplacian/qs_laplacian_2d.cfg --exporter.format vtk --exporter.vtk.insitu.enable 1
```

### Full description
The dev-env image builds the latest stable version of ParaView with Catalyst enabled for In-Situ visualization.
The develop image uses the dev-env base image and enables In-Situ visualization.

To use In-Situ visulization with a Feel++ application that you build in a container based on the develop image, you first have to configure the container to export ports.
The first time you launch the container with `docker run`, you must use the `-p` option to redirect a container port to the host machine. The option syntax is as follows in the simple case: `-p hostPost:containerPort`. In this case, you will redirect the `containerPort` port to the `hostPort` port.
We advise you to use a pvserver to use In-Situ. The default port pvserver uses is 11111, thus to export this port when running the container, you can do:
```
docker run -ti -p 11111:11111 feelpp/develop
```

*Useful tip*: the feelpp/dev-env image packages the `tmux`and `screen` terminal multiplexers, so you can launch several virtual terminals inside the container.

Once you have launcher the container with the exported port, you can launch a pvserver inside the connect and setup your ParaView to use Catalyst and connect to the pvserver, by specifying the host and hostPort.
You can then launch sample Feel++ apps and use In-Situ visualization. For example:
```
mpirun -np 2 feelpp_qs_laplacian_2d --config-file src/feelpp/quickstart/laplacian/qs_laplacian_2d.cfg --exporter.format vtk --exporter.vtk.insitu.enable 1
```

If you encounter problems regarding infiniband on supercomputers, you can add the following option to mpirun to use tcp: ` -mca btl tcp,self`

For more information about In-Situ visualization in Feel++, please refer to [https://github.com/feelpp/feelpp/wiki/In-Situ-Visualization](https://github.com/feelpp/feelpp/wiki/In-Situ-Visualization)