CLAWPACK

Clawpack est une librairie de sous-programmes fortran permettant de résoudre les systèmes d'équations hyperboliques instationnaires relatifs aux lois de conservation en 1 et 2 dimensions, avec ou sans termes source. La méthode des volumes finis avec une limitation de flux est utilisé sur un maillage régulier. Elle a été développée par Randall J.LEVEQUE.

Une grande variété d'exemple présentant les différents problèmes pouvant être résolus est fourni dans la librairie.

Le but de la tâche a donc été d'installer la bibliothèque CLAWPAC, d'en étudier le contenu, de faire tourner quelques exemples et enfin de comprendre comment est structuré un exemple.


I INSTALLATION DE LA LIBRAIRIE :

Cette phase n'a posée aucun problème. Il a suffit de récupérer un fichier.TAR et de le décompresser pour avoir la librairie installée avec sa structure.

II CONTENU DE LA LIBRAIRIE :

La librairie contient les 3 répertoires suivants :

1) Contenu de doc :

La documentation présente la librairie, elle décrit la structure générale, les algorithmes de résolution utilisés. De plus des précisions sont apportées sur les conditions aux limites, les variables auxiliaires, les termes sources, ainsi que sur la méthode de limitation des flux. Ensuite, les méthodes employées dans différents exemples sont explicitées. Ceci concerne les exemples portant sur : les équations de Burgers, l'advection, l'acoustique et les équations d'Euler.

En premier lieu, une introduction décrit comment mettre en oeuvre la librairie.

Pour pouvoir imprimer la documentation dans le bon ordre il faut taper la ligne de commande

attention, il ne faut pas oublier de preciser le nom de l'imprimante.

2) Contenu de clawpack:

Ce répertoire contient tous les sous-programmes nécessaires à l'élaboration d'un programme de résolution des équations de conservation. Il contient 4 répertoires :

(cliquer ici pour avoir le détail du contenu du répertoire claw)

3) Contenu de applications :

Il propose des exemples montrant les possibilités de la librairie concernant les points suivants :

(cliquer ici pour avoir plus de détail concernants les exemples du répertoire applications)

III MISE EN OEUVRE DES EXMPLES :

Le premier exemple étudié a été celui proposé dans la documentation. Il se trouve dans le répertoire clawpack/1d/example et concerne les équations de Burgers en 1 dimension. Pour ce faire il a fallu tout d'abord affecté le programme compile de la propriété d'exécution afin de l'exécuter pour créer le programme de calcul a.out. Les données se touvant dans data , on tape la ligne a.out < data. le programme renvoie une série de fichier résultat fort.*. le fichier fort.x contient le maillage, fort.100 les valeurs initiales, et les autres les valeurs sauvées à différent pas de temps. En comparant les résultats obtenus avec ceux fournis ( test.* ), on vérifie bien que le programme ne contient aucune erreur.

Par contre la visualisation des résultats n'a pas été évidente car il est nécessaire d'avoir matlab ( cf manuel). Celui ci n'a été mis en service qu'au bout de la quatrième semaine, ensuite il a fallu mettre à jour une variable d'environnement pour que les procédures contenues dans le répertoire matlab soient reconnues. Enfin l'instruction plotq permet d'afficher un résultat sous la forme suivante :

Ensuite j'ai fait tourner quelques exemples proposés dans le répertoire application. Par exemple, celui concernant l'advection sur un maillage cylindrique se situant dans applications/advection/2d/curvilinear/cylinder. On applique la même démarche que précédement et l'on peut visualiser avec matlab les résultats comme celui ci :

Plusieurs exemples ont donc été testés et aucun n'a posé de problème au niveau du calcul en lui même. Par contre les problèmes sont venus du fait que la visualisation des résultats nécessite l'utilisation de matlab.


IV STRUCTURE DES EXMPLES :

Il est nécessaire de comprendre la structure des exemples proposés afin de pouvoir créer notre propre application (dans le futur plus ou moins proche).

La structure de l'exemple clawpack/1d/example est basé autour des 4 fichiers suivants :

driver.f est le fichier principal dans lequel est écrit le coeur du programme : déclaration des variables, sous-programmes utilisés (méthode de calcul utilisé, conditions aux limites, méthode d'affichage des résultats...).

ic.f contient les conditions initiales à cet exemple, ici sinusoidales. Il est appellé par driver.f .

compile est une suite d'instructions permettant de compiler tous les fichiers nécessaires et les liens pour créer le fichier exécutable a.out.

plotq.m est une instruction matlab pour la visualisation des fichiers résultats,elle fait appel aux sous-instructions se trouvant dans le répertoire matlab.

De plus un fichier de données pour cet exemple est fourni ( data ), on peut donc simplement se servir de ce fichier ou bien lancer la programme et renter les données les unes après les autres. Pour l'instant, je ne connais pas encore ce que signifie toutes les données.

Les autres exemples ont une structure similaire, leurs différences est donc dans le contenu de ces 4 fichiers.

V CONCLUSION :

La librairie Clawpack développée par R.J.LEVEQUE permet de résoudre beaucoup de problèmes concernant les lois de concervation 1 et 2D. Cependant, pour pouvoir créer ses propres applications, il faut avoir une grande maîtrise des différentes fonctions de la librairie. Heureusement, les applications les plus fréquentes sont proposées à titre d'exemple.

Par contre il est dommage qu'une librairie en libre service nécessite l'emploi de matlab pour visualiser les résultats.

La transformation des fichiers résultats pour les visualiser à l'aide d'un autre logiciel ou bien écrire sa propre application pourraient être de nouvelles tâches.


retour au menu du compte-rendu