Programmation
Cette page regroupe tous les sous-projets reliés à la programmation, que ce soit des modifications majeures sur les programmes de calcul ou de post-traitement ou de nouveaux développements.
Programme d'optimisation
Afin de faciliter l'optimisation d'un paramètre (eta, phi, debal, xsi, etc.) pour minimiser
l'énergie d'un cristal, j'ai créé un programme d'optimisation en Perl. Il fonctionne par un simple
algorithme de Divide And Conquer. On lui donne trois points initialement, deux points qui definissent
l'intervale de départ, et un point intermédiaire. Le programme va calculer deux autres points
intermédiaires. À partir de ces 5 points, il trouve le minmum, et il refait la même opération en
prenant, comme nouvel intervale, les points de chaque côté du point minimum. Cet algorithme est simple
et permet de converger avec une précision arbitraire.
Projet terminé : 17 décembre 2004
Conversion de chi au Fortran 90
J'ai converti le programme chi5.f en Fortran 90. Il est maintenant disponible sur CVS. Il fonctionne de la même manière que chi5.f.
Projet terminé : 17 décembre 2004Passage au XML
Dans le but de faciliter l'évolution du programme de post-traitement et des programmes de calculs, j'ai modifié ces programmes pour utiliser des fichiers de données au format XML plutôt que les anciens point.dat. Ceci permettra d'ajouter beaucoup plus facilement des colonnes de donnnées dans la base de données.
Projet terminéUtilisation de routines de quadpack
Avec Charles, on a testé des routines d'intégration du quadpack, (Netlib) pour fonctions oscillantes. J'ai modifié focknn.f90 pour utiliser ces routines d'intégration plutôt que la méthode de Simpson. Ces routines permettent d'obtenir une bien meilleur précision (10e-12) et requierent un temps de calcul environ 5 fois moins élevé que la méthode de Simpson.
Projet terminé
Programme wigner permettant d'afficher la densité en temps réel
J'ai utilisé le code OpenGL créé par l'ami de Charles (Pierre-Olivier) et je l'ai modifié légèrement pour le faire compiler et fonctionner correctement sur Linux. Il peut maintenant être roulé sur cote6.
Projet terminéFusion des codes de wigner1.f90, scawigner.f90 et realtime wigner
Afin d'éviter d'avoir plusieurs fois le même code dans trois programmes différents, j'ai divisé le programme wigner1.f90 en plusieurs sous-routines faisant chacune une partie complète du calcul. J'ai aussi créé différentes structures de données, rendant le code plus flexible, car celles-ci évitent d'avoir à passer 50 paramètres à une fonction. La définition de ces structures, de même que des sous-routines de calcul, est située dans le fichier wignerUtils.f90 du projet wigner (CVS). Ce fichier est utilisé par wigner1.f90, scawigner.f90 et le wigner pour l'affichage de la densité en temps réel (realtime wigner).
Projet terminéGeneration de pages web automatiquement par le programme de postTraitement
J'ai ajouté, au programme de postTraitement, un module permettant de générer facilement des pages web à partir des données présentes sur la base de données. Un exemple de page web générée par le programme en date du 18 octobre 2004 est présenté ici. Le programme effectue une recherche dans la base de données et, avec les points correspondant aux critères de recherche, permet de :
- Trier les points selon l'un des champs
- Générer une page principale contenant des liens vers les informations de ces points et vers les relations de dispersions de ces points s'il y en a dans la base de données
- Générer une page pour chaque point comprenant :
- Un tableau d'informations sommaires
- Un lien vers le point.xml, rog.dat et histo.dat
- Des liens de navigation entre les pages
- Un graphique de la densité d'orbite
- Un graphique de l'historique de calcul du point
- Un graphique de la densité d'états (DOS)
- Un graphique de la densité d'états intégrée
- Un lien vers les relations de dispersions s'il y en a sur la base
- Générer une page de relation de dispersion pour chaque point comprenant :
- Des informations sommaires sur le point
- Un graphique de chacun des relations de dispersions disponibles pour ce point
- Ajouter, sur la page principale générée par le programme, des graphiques avec les données des points sélectionnés. (fait le 18 octobre 2004).
- Créer une table seedNames dans la base de données, afin de pouvoir proposer une liste de seeds à l'usager sur l'interface web. Modifications du programme de postTraitement pour utiliser cette table (fait le 19 octobre 2004)
- Faire une interface web permettant de faire générer ces pages par l'intermédiaire d'un site web plutôt que par l'intermédiaire du programme en ligne de commande.
NOTE : Cette étape demande plus de travail que je ne le pensait. Elle est "on hold" pour l'instant.
Projet en cours
Génération de graphiques 3D
J'ai rajouté une option, dans le programme de postTraitement, pour créer des graphiques 3D. Ceci permet par exemple d'avoir l'énergie d'un cristal en fonction de deux paramètres.
Projet terminé