1. What is a Toolbox

Feel++ comes with toolboxes. What are they ?

Definition: A Feel++ Toolbox

For a given set of partial differential equations for a given physics (e.g. computational fluid dynamics) or set of physics (e.g. fluid structure interaction), a Feel++ toolbox provides:

  • the configuration the set of equations through one or several (.json) files and (.cfg) files

  • one or more solution strategies to solve the set of equations

Using the JSON and CFG, it is possible to configure and run models by defining the relevant physical quantities—such as material properties, loads, constraints, sources, and fluxes. The data analysis can be also described in these files.

In order to run a simulation with a toolbox, an exectuable is required. It is generally associated to one or several CFG files. The toolbox setup is applied through several options which are prefixed by a name associated to the toolbox. In the following table, we have listed for each toolbox the name of executable and the prefix used in CFG files :

Toolbox Executable Prefix

Heat Transfer

feelpp_toolbox_heat

heat

Computational Fluid Dynamics

feelpp_toolbox_fluid

fluid

Computational Solid Mechanics

feelpp_toolbox_solid

solid

Fluid Structure Interaction in 3d

feelpp_toolbox_thermoelectric

thermo-electric

Heat Fluid

feelpp_toolbox_heatfluid

heat-fluid

Fluid Structure Interaction in 2d

feelpp_toolbox_fsi_2d

fsi

Fluid Structure Interaction in 3d

feelpp_toolbox_fsi_3d

fsi

1. Run an application

In this section, we describe the several possibilities to perform a simulation using a toolbox executable and a CFG file. In the following examples, we have used the executable of fluid mechanics toolbox called feelpp_toolbox_fluid.

From an executable, a cfg file must be given in the command line thanks to the config-file option :

mpirun -np 4 feelpp_toolbox_fluid --config-file myfile.cfg

Another way is to use the case option, where case represents a folder containing a cfg, json files and eventually a geometry or mesh file.

mpirun -np 4 feelpp_toolbox_fluid --case mydir

If the folder contains only one cfg, the programme use this one. Else it’s possible to specify the cfg file to choose by adding case.config-file option

mpirun -np 4 feelpp_toolbox_fluid --case mydir --case.config-file myfile.cfg
Case config file option
--case.config-file myfile.cfg

The case option can also define a folder which represents a remote data in a github repository.

mpirun -np 4 feelpp_toolbox_fluid --case "github:{path:toolboxes/fluid/TurekHron}" --case.config-file cfd2.cfg
Case option
--case "github:{path:toolboxes/fluid/TurekHron}"
Case config file option
--case.config-file cfd2.cfg

The remote data from github can be configured by several parameters :

Option Default value Description

owner

feelpp

the github organization

repo

feelpp

the github repository in organization

branch

<default in github>

the branch in the git repository

path

<root of repository>

the path in the git repository

token

<no default value>

an authentication token

mpirun -np 4 feelpp_toolbox_fluid --case "github:{owner:feelpp,repo:feelpp,branch:develop,path:toolboxes/fluid/TurekHron,token:xxxxx}" --case.config-file cfd2.cfg
Case option
--case "github:{owner:feelpp,repo:feelpp,branch:develop,path:toolboxes/fluid/TurekHron,token:xxxxx}"
Case config file option
--case.config-file cfd2.cfg