Ada : FreeFem++

Description

FreeFem++ est un logiciel libre permettant de résoudre numériquement des équations différentielles par éléments finis. Il possède son propre langage de script, inspiré du C++, pour décrire le type de problème différentiel, les équations aux dérivées partielles et les conditions initiales et aux limites. Il peut ainsi résoudre des problèmes dits multi-physiques, présentant des non-linéarités, en bi- comme en tri-dimensionnel, sur des maillages pouvant aller jusqu'aux millions voir milliards de nœuds.

Version installée

  • FreeFem++ 3.43-1

Utilisation

FreeFem++ est accessible grâce à la commande module (nous vous recommandons de lire la documentation relative à ''module'' pour de plus amples détails) :

  module load freefem++

Script de lancement

L'exemple suivant illustre le lancement de la version multitâche de FreeFem++ :

FreeFem.ll
# @ job_name = FreeFem++
# @ output   = $(job_name).$(jobid)
# @ error    = $(job_name).$(jobid)
# @ job_type = serial
# @ parallel_threads = 4
# @ wall_clock_limit = 1:30:00
# @ queue
 
# Pour avoir l'affichage des commandes exécutées
set -x
 
# Chargement de FreeFem++
module load freefem++
 
# Copie des fichiers d'entrée vers le TMPDIR
cp ./exemple.edp $TMPDIR
 
# Changement du répertoire courant vers le TMPDIR
cd $TMPDIR
 
# Exécution
FreeFem++-nw ./exemple.edp
 
# Copie des éventuels fichiers de sortie vers le dossier de soumission
# cp ./resultat.res $LOADL_STEP_INITDIR

L'exemple suivant illustre le lancement de la version MPI de FreeFem++ :

FreeFem_MPI.ll
# @ job_name = FreeFem++
# @ output   = $(job_name).$(jobid)
# @ error    = $(job_name).$(jobid)
# @ job_type = parallel
# @ total_tasks = 16
# @ wall_clock_limit = 1:30:00
# @ queue
 
# Pour avoir l'affichage des commandes exécutées
set -x
 
# Chargement de FreeFem++
module load freefem++
 
# Copie des fichiers d'entrée vers le TMPDIR
cp ./exemple.edp $TMPDIR
 
# Changement du répertoire courant vers le TMPDIR
cd $TMPDIR
 
# Exécution
poe FreeFem++-mpi -nw exemple.edp
 
# Copie des éventuels fichiers de sortie vers le dossier de soumission
# cp ./resultat.res $LOADL_STEP_INITDIR

N'hésitez pas à vous référer à nos conseils plus généraux sur la soumission en queue sur Ada d'un travail multitâche ou parallélisé avec MPI.

Documentation