physique

Logiciels (logiciels libres en majorité) ou ressources (liées aux logiciels) utiles aux chercheurs et enseignants en physique et dans les domaines voisins, comme l'optique, l'électronique, l'astronomie / l'astrophysique, ...
Fiche logiciel validé
  • Création ou MAJ importante : 12/09/13
  • Correction mineure : 19/02/14
Mots-clés

KiCad : CAO électronique pour circuits imprimés

Description
Fonctionnalités générales

KiCad est un logiciel de conception CAO pour circuits imprimés (PCB) qui intègre :

  • gestionnaire de projet ;
  • saisie schématique et création de composants ;
  • placement-routage (layout) jusqu'à 16 couches et création d'empreintes ;
  • visionneur-éditeur de fichiers gerber ;
  • calculatrice spéciale.

Cet article utilise des termes de jargon professionnel. Pour une introduction au sujet, lire par exemple ceci au sujet de la conception de circuits intégrés.

Gestionnaire de projet

Le gestionnaire de projet (GP) donne une vision générale du projet. Il montre l'arborescence du projet (dossiers/fichiers) et permet de naviguer au sein de cette arborescence. Le GP qui est également responsable de la gestion des fichiers grâce aux fonctions classiques ouvrir/renommer/effacer et aussi une fonction d'archivage (fichier zip). Enfin, il donne accès aux différents composants de la suite cités ci-dessous.

Saisie de schématique avec Eeschema

La partie "saisie de schématique" du logiciel offre plusieurs fonctionnalités :

  • saisie hiérarchique ;
  • bus ;
  • numérotation des composants automatique et hiérarchique ;
  • génération de la liste des composants (BOM, Bill Of Materials) en prenant en compte les champs ajoutés par l'utilisateur aux composants ;
  • labels locaux, hiérarchiques ou globaux ;
  • importation d'images bitmap.

La génération de la netlist dans plusieurs formats (natif, orcadPCB2, cadStar et Spice) se fait directement depuis Eeschema. Le résultat d'une saisie schématique est plutôt propre et l'impression se fait aisément puisque le paramétrage de la feuille impose le choix d'un format de papier et inclut en conséquence le cartouche.

Routage avec Pcbnew

Routeur manuel qui offre de nombreuses options aisément utilisables :

  • Vérificateur de règles de conception (DRC, design rule check) en temps réel : lorsque l'utilisateur trace une piste, le logiciel regarde en temps réel si cette dernière est cohérente avec les règles préalablement définies (en particulier largeur de pistes et distances aux autre éléments).
  • Affichage sélectif des lignes de connexion (ratsnest, pour une définition en anglais, voir ici) : on peut choisir le niveau de ratsnest que l'on souhaite afficher. Il est donc possible de les cacher, les afficher, les afficher pour un ou plusieurs composants. Il est aussi possible de n'afficher que le ratsnest de la piste en cours de traçage.
  • Choix du niveau de détails affichés : plan en mode contour ou plein, piste en mode contour ou plein, via en mode contour ou plein, pads en mode contour ou plein. Toutes ces options sont indépendantes les unes des autres.
  • routage automatique : peut se faire depuis KiCad directement (interne) ou depuis un outil externe à KiCad, ce dernier générant alors un fichier compatible avec Spectra.
Interopérabilité
  • Tous les fichiers produits et utilisés par KiCad sont des fichiers ASCII, la documentation fournit la spécification détaillée des différents formats.
  • Génération de netlist dans plusieurs formats (natif, orcadPCB2, cadStar et Spice).
Contexte d'utilisation dans mon laboratoire/service

L'auteur (au laboratoire Subatech) utilise ce logiciel pour la conception de toutes ses cartes. Jusqu'à présent, il a conçu 3 cartes 4 couches :

  • une carte d'alimentation pour un ASIC ;
  • une carte numérique ;
  • une carte d'interface vide/Xénon liquide avec via (connections) non débouchant.

Les cartes ont été produites et testées avec succès.

Il a également conçu une carte analogique 6 couches, produite, reçue, câblée et testée avec succès.

Au CINaM, ont été réalisé à peu prés 6 ou 7 circuits imprimés dans le domaine professionnel. Il s'agit de petites carte de quelques centimètres carrés avec peu de composants. Le but principal, dans chacun des cas, étant de réaliser un circuit imprimé qui fasse l'interface entre des appareils de mesure (via des prises BNC) et la prise de contact (au moyen de pointes de touches directement soudé sur le CI) sur des échantillons de nos chercheurs afin d'en faire les caractérisations électriques.

Dans le domaine personnel, un des relecteurs a réalisé quelques (environ 4 ou 5) petites cartes également telles que : interface série, carte d'alimentation simple, capteurs divers, ...

Limitations, difficultés, fonctionnalités importantes non couvertes

Pas de routage de lignes différentielles.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

De nombreuses distributions offrent KiCad dans leurs dépôts (par exemple Debian, Fedora, Ubuntu (voir aussi instructions pour installation sur Ubuntu)).

Plates-formes

GNU/Linux, Windows, Mac OS X

Logiciels connexes
Autres logiciels aux fonctionnalités équivalentes
  • gEDA, gratuit, sous licence libre (GPL) : c'est un logiciel qui semble lui aussi très performant. Pas d'argument en sa faveur, ni en sa défaveur puisque je ne l'ai pas testé.
  • Eagle, payant, sous licence propriétaire.
Environnement de développement
Type de structure associée au développement

Communauté de développeurs très active et internationale.

Eléments de pérennité
  • Ce projet, initié par Jean-Pierre Charras, chercheur a Grenoble au GIPSA-LAB et enseignant en électronique à l'IUT de Saint Martin d'Hères est maintenant mature et soutenu par une communauté de développeurs extrêmement active et d'utilisateurs de nombreux pays : http://iut-tice.ujf-grenoble.fr/kicad/

  • Cette communauté comprend trois développeurs principaux ainsi qu'une douzaine de contributeurs réguliers.

Références d'utilisateurs institutionnels
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur

Sur la page de documentation, on trouve des didacticiels d'assez bonne qualité, les documents de référence pour les deux composants principaux de la suite, à savoir Eeschema et Pcbnew.

Divers (astuces, actualités, sécurité)

Pour l'installation, il est possible de prendre la version des dépôts de sa distribution ou de télécharger une version binaire sur le site de KiCad.

Une troisième possibilité consiste à télécharger la version dans des dépôts Launchpad. Cette version se divise en deux sous branches : testing et stable. La branche stable peut à tout moment être intégrée à une distribution stable du logiciel. La version testing, quant à elle, intègre les dernières mises à jour, ce qui rend de fait cette distribution un peu plus instable. On active l'une des deux sous-branches à la pré-compilation (cmake).

Il existe aussi un dépôt Launchpad pour les bibliothèques KiCad : https://code.launchpad.net/~kicad-lib-committers/k...

A noter qu'il existe dans KiCad des fonctionnalités de scripts en python.

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 06/06/13
  • Correction mineure : 24/06/13
  • Auteur de la fiche : Eric Hivon (IAP)
  • Responsable thématique : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))

HEALPix : analyse de données, simulation et visualisation sur la sphère

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, Windows, MacOS X
  • Version actuelle : 3.11 - avril 2013
  • Licence(s) : GPL - GPLv2
  • Etat : diffusé, stable
  • Support : maintenu, développement en cours
  • Concepteur(s) : Eric Hivon; Martin Reinecke; Krzysztof M. Gorski; Anthony J. Banday; Benjamin D. Wandelt; Emmanuel Joliet; William O'Mullane; Cyrille Rosset; Andrea Zonca
  • Contact concepteur(s) : hivon at iap.fr
  • Laboratoire(s), service(s)... : APC, IAP, IRAP, Labo à l'étranger, MPA (Garching, Allemagne), Caltech (Pasadena, CA,Etats-Unis), TAC (Copenhague, Danemark), ESAC (Madrid, Espagne), JPL (Pasadena, CA, Etats-Unis), ESO (Garching, Allemagne)

 

Fonctionnalités générales du logiciel

Le logiciel HEALPix met en œuvre la pixellisation de la sphère HEALPix (Hierarchical Equal Area iso-Latitude Pixelation ou pixellisation hiérarchique iso-latitude de surface égale). Initialement développés pour la simulation et l'analyse des observations du satellite européen Planck (dédié à l'étude du fond diffus cosmologique (ou CMB) dont les résultats ont été livrés en mars 2013), cette pixellisation et ce logiciel, sont devenus un standard dans l'analyse et la simulation de données sur la sphère, y compris le satellite WMAP de la NASA pour l'observation du CMB, et l'observatoire Pierre Auger (dédié à l'étude des rayons cosmiques de très haute énergie), et sont utilisés pour d'autres études astrophysiques et géologiques.

Spécificités de la pixellisation

A une résolution donnée, tous les pixels HEALPix ont la même surface, même si leur forme diffère légèrement. Le caractère hiérarchique de la pixellisation permet de passer à la résolution supérieure en divisant chaque pixel en 4 sous-pixels de même surface. Cette propriété permet d'effectuer efficacement et rapidement les opérations de dégradation ou d'amélioration en résolution.

L'arrangement en cercles de latitude constante des pixels permet un calcul extrêmement efficace des harmoniques sphériques réduisant le nombre d’opérations nécessaires pour une synthèse ou une analyse d'une carte de Npix pixels jusqu'au multipôle Lmax de Npix Lmax2 à Npix½ Lmax2.

Fonctionnalités du logiciel

Le logiciel HEALPix permet la représentation de données sur la sphère, et d'effectuer des analyses ou simulations de ces cartes en harmoniques sphériques (scalaires ou spinnées) ainsi que différents types d'analyses statistiques et de manipulations. Les entrées et sorties des données se font par des fichiers FITS. Sont par exemple possibles :

  • la génération de cartes aléatoires (gaussiennes ou pas) à partir d'un spectre de puissance angulaire,
  • le calcul du spectre de puissance angulaire (ou fonction de corrélation angulaire) d'une carte,
  • le filtrage spectral arbitraire d'une carte sur la sphère,
  • la pixellisation de la sphere et la manipulation des pixels jusqu'à des tailles de pixels de 0.4 milliarcsecond (ce qui équivaudrait à 3.5 1018 pixels sur la sphere),
  • l'application d'un filtre médian sur une carte,
  • l'identification des extrema locaux d'une carte,
  • la recherche de tous les pixels dans une région donnée (disque, triangle, polygone, ...),
  • la manipulation de masques binaires afin d'identifier les 'trous' pour les boucher, ou d'apodiser les masques,
  • la visualisation des cartes HEALPix, que ce soit sur tout le ciel (projections de Mollweide et orthographique) ou une partie du ciel (projections gnomonique et cartesienne),
  • la sortie des cartes produites au format Google Map/Google Sky et DomeMaster.

Les opérations les plus coûteuses (en particulier le calcul des Harmoniques Sphériques) ont été particulièrement optimisées et sont parallelisées pour les architectures à mémoire partagée (grace à OpenMP).

Contenu du logiciel

Le logiciel est disponible sous forme de codes sources en C, C++, Fortran90, IDL/GDL, java et python. Dans chacun de ces languages sont disponibles

  • une librairie d'outils (subroutines, fonctions, procédures, modules, classes, ... suivant les langages) couvrant l'ensemble des fonctionnalités décrites ci-dessus, ainsi que certaines tâches ancillaires (eg, lecture de fichiers de parametres),
  • un jeu d'applications "prêtes à servir" basées sur cette librairie et mettant chacune en oeuvre une des fonctionnalités majeures d'HEALPix (génération ou analyse de cartes, filtrages, changements de résolution, visualisation, ...). Ces applications ont généralement pour interface un dialogue interactif ou un simple fichier ASCII de parametres. Les codes sources de ces applications peuvent servir de point de départ aux développements spécifiques des utilisateurs,
  • une documentation en PDF et/ou HTML décrivant en détail l'interface de programmation, le fonctionnement et les limitations de chaque outil et de chaque application.

Enfin des outils (script interactif et Makefile) sont fournis pour prendre en charge et faciliter la compilation et l'installation d'une ou plusieurs des différentes librairies et applications, pour différentes combinaisons de materiels informatiques, systemes d'exploitations, compilateurs, ...

Developpements exterieurs

Deux types de développements exterieurs (définis comme ne faisant pas (encore) partie du logiciel HEALPix officiel décrit ci-dessus) peuvent etre distingués:

  • additions de nouvelles fonctionnalités: par exemple de nombreux outils d'analyses basés sur les fonctionnelles de Minkowski, les ondelettes (iSAP, MRS, S2LET, SphereLab) ou l'identification de structure (DisPerSE) developpés par d'autres équipes de recherche peuvent être appliqués à des données pixellisées avec HEALPix,
  • des traductions ou re-implementations d'une partie des fonctionnalités existantes: par exemple en Matlab/Octave (Mealpix) et Yorick (YHeal), voir liste (presque) complète.
Contexte d’utilisation du logiciel

Logiciel utilisé pour l'analyse des données du satellite Planck.

Format supporté par l'outil de visualisation Aladin pour la représentation de données astronomiques étendues sur le ciel.

Publications liées au logiciel

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 03/06/13
  • Correction mineure : 03/06/13
  • Auteur de la fiche : Anne Sentenac (Institut Fresnel)
  • Responsable thématique : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))
Mots-clés

opticsbenchui : instrumentation sous Linux pour piloter et automatiser des expériences d'optique

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like
  • Version actuelle : 0.10 - 24/07/2012
  • Licence(s) : GPL
  • Etat : diffusé en beta
  • Support : maintenu, développement en cours
  • Concepteur(s) : Ce logiciel a été sous-traité à un prestataire externe au CNRS.
  • Contact concepteur(s) : Voir l'auteur de la présente fiche
  • Laboratoire(s), service(s)... : Institut Fresnel, Prestataire externe

 

Une fiche logiciel décrit plus en détail ce développement, consultez la pour plus d’informations : opticsbenchui
Fonctionnalités générales du logiciel

opticsbenchui permet de piloter et automatiser facilement des expériences d'optique utilisant du matériel commercial (périphériques de PC). L'application se présente sous une forme graphique (sous la forme de code source en C++, compilable sous Linux). Le matériel compatible avec cette application recouvre les quatre catégories principales suivantes:

  • Caméras ayant une connexion de type FireWire (compatible protocole IIDC), de type Ethernet (compatible protocole GiGeVision), de type CameraLink (de la marque Andor).
  • Actuateurs de la marque PI, Standa, NewPort, NewFocus, Micos, aux protocoles de communication RS232, USB, Ethernet.
  • Cartes d'acquisition de type compteurs, DAC et ADC.
  • Modulateurs spatiaux de lumière (SLM).

Chaque matériel peut être contrôlé individuellement à travers sa fenêtre de configuration spécifique (gestion des caméras, compteurs, moteurs), ce qui permet de faire les ajustements (individuels) manuels nécessaires aux expériences.
La phase d'automatisation (implémentation des 'scans') s'effectue dans le panneau d'acquisition dans laquelle l'utilisateur inscrit une succession de lignes de commandes simples adressées aux différents périphériques. Des combinaisons de commandes peuvent être implémentées en boucles. Les commandes possibles incluent des mouvements (moteurs), des prises d'instantanés (images caméra, masques SLM), des comptages de photons, des traitements de données intermédiaires (images de phase, d'amplitude, moyennes).

Le format de sauvegarde des données est le format open source HDF5, un format très répandu dans les milieux scientifiques. C'est un format compatible avec les plate-formes Windows/Linux. En particulier, les fichiers HDF5 sont directement exploitables par les logiciels commerciaux Matlab et Labview.

Contexte d’utilisation du logiciel

Le logiciel opticsbenchui dédié aux expériences sur banc optique sert à effectuer des scans de mesure d'un ensemble d'instruments hétérogènes. Le scan correspond généralement au mouvement d'un instrument de type moteur, tandis que la mesure correspond à la réponse d'un instrument de type senseur (caméra, photodiode, etc...). L'architecture du logiciel prend en compte l'existence de fonctionnalités à caractère indépendant et collaboratif (multithread). Chaque instrument doit pouvoir être manipulé de manière indépendante pour les besoins de l'expérimentateur. Mais il doit être également possible de coordonner les uns avec les autres dans une séquence donnée pour réaliser n'importe quel type de scan (phase d'automatisation).
Nous utilisons opticsbenchui sur deux expériences de banc optique comprenant des caméras (Kappa, PhotonFocus, Andor), un compteur de photons (carte NI PCI-6110), un SLM Holoeye, 3 moteurs piezo (PI E725), 2 moteurs à pas linéaires et rotateur (Standa uSMC2), 2 moteurs à pas linéaires (NewStep NewPort NSC200), un DAC-PCI Advantech pilotant un modulateur de phase.

L'application évolue dynamiquement en fonction des nouveaux besoins du laboratoire, en particulier lorsque nous faisons l'acquisition de nouveau matériel. L'avantage de opticsbenchui est que chaque nouvelle intégration est faite de la manière la plus large possible et donne lieu, à la création d'une nouvelle famille d'instruments.

Ce logiciel est recommandé pour les laboratoires d'optique qui cherchent une alternative à Labview sous Linux, et/ou qui manquent de compétences en programmation et automatisation d'expériences sur banc optique.

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 29/04/13
  • Correction mineure : 29/04/13
  • Auteur de la fiche : Jérôme Lelong (LJK)
  • Responsable thématique : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))
Mots-clés

PNL : bibliothèque numérique pour le calcul scientifique en C

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, Windows, MacOS X
  • Version actuelle : 1.6.0 - 22 mars 2013
  • Licence(s) : LGPL
  • Etat : diffusé, stable
  • Support : maintenu, développement en cours
  • Concepteur(s) : Jérôme Lelong
  • Contact concepteur(s) : jerome.lelong@imag.fr
  • Laboratoire(s), service(s)... : INRIA Paris-Rocquencourt, LJK

 

Fonctionnalités générales du logiciel

Description

PNL est une bibliothèque C pour le calcul scientifique développée dans le même état d'esprit que des bibliothèques comme la GSL. PNL propose une grande variété de fonctionnalités mathématiques (plus de 600 fonctions au total) sur les thématiques suivantes

  • Nombres complexes (pour ceux ne disposant pas de l'extension C99)
  • Distribution de lois de probabilité
  • Transformée de Fourier rapide
  • Transformée de Laplace inverse
  • Algèbre linéaire pour les matrices pleines, tridiagonales et de type bande
  • Recherche de zéros multidimensionnels
  • Polynômes multivariés (régression, évaluation, dérivation)
  • Intégration numérique
  • Générateur de nombres aléatoires et Quasi Monte Carlo
  • Fonctions spéciales
  • Manipulations de tableaux multidimensionnels

Pour une description complète des fonctionnalités de la bibliothèque, nous renvoyons à sa documentation.

PNL est distribuée sous la licence LGPL, ce qui donne une grande liberté quant à la réutilisation et à la modification de son code ce qui n'est pas le cas de solutions comme Numerical Recipes par exemple.

Spécificités

PNL est conçue selon un schéma orienté objet inspiré de celui proposé par la bibliothèque Glib. L'ensemble des structures implémentées dans la bibliothèque dérive donc d'un même objet père. Cette organisation permet de proposer des structures de listes et de tableaux pouvant contenir des éléments de types différents comme cela existe dans numpy par exemple.

PNL est une bibliothèque thread-safe qui a été conçue pour être utilisée dans un environnement de programmation parallèle. A ce titre, elle propose un binding MPI permettant de manipuler via MPI les différents objets de la bibliothèque de manière transparente. Cette fonctionnalité est probablement ce qui différencie le plus PNL d'une bibliothèque comme la GSL, Numerical Recipes ou encore ROOT (pour sa partie mathématique uniquement). Si l'on fait abstraction des licences sous lesquelles ces bibliothèques sont distribuées, elles peuvent dans de nombreuses situations d'utilisation classiques (algèbre linéaire, intégration numérique, recherche de zéros, FFT, fonctions spéciales, ...) se substituer. D'autres thématiques semblent plus spécifiquement prises en charge par PNL comme l'inversion de transformée de Laplace, la régression polynomiale multi-variée.

La manipulation de matrices et de vecteurs est souvent un point délicat dans les codes C : PNL offre des fonctionnalités permettant de les manipuler dans une logique plus proche de celle de Matlab/Octave ou Numpy : mapping terme à terme, extraction de blocs à partir d'expressions booléennes, vues, tris, re-dimensionnement, ...

Pour de nombreuses fonctionnalités, PNL se base sur des bibliothèques Fortran du domaine public disponibles sur http://www.netlib.org comme AMOS, CEPHES, FFTPACK, MINPACK, QUADPACK ou BLAS et LAPACK.

La bibliothèque est accompagnée d'une documentation, rédigée en LaTeX et disponible aux formats PDF et HTML, décrivant l'ensemble des fonctionnalités de la bibliothèque. Ce manuel détaille également les conventions utilisées durant le développement de la bibliothèque.

Installation

Les différentes versions stables ou de développement de la bibliothèque sont disponibles sur gforge.

La compilation de la bibliothèque utilise CMake qui permet de compiler la bibliothèque sur les plateformes suivantes

  • GNU/Linux avec gcc et llvm
  • Mac OS X avec gcc et llvm
  • Windows avec mingw32 et Visual C++

PNL s'appuie sur les bibliothèques BLAS et LAPACK pour la partie algèbre linéaire. Si ces deux bibliothèques sont présentes sur la machine, elles seront utilisées par PNL (la détection s'effectue au moment de la compilation), sinon une version intégrée à la bibliothèque de BLAS et LAPACK sera utilisée.

Historique du projet

Le développement de la bibliothèque a démarré en 2007 sous la direction de Jérôme Lelong avec des contributions de Céline Labart, Ismail Laachir et David Pommier.

Pour un historique des différentes versions de la version actuelle, voir le site http://pnl.gforge.inria.fr

Contexte d’utilisation du logiciel

PNL est aujourd'hui utilisée comme brique de base pour le développement du logiciel PREMIA qui est un logiciel d'évaluation et de couverture de produits financiers développé conjointement par l'INRIA Paris Rocquencourt et l'Ecole des Ponts Paristech et soutenu par un consortium d'institutions financières.

Parallèlement à cette utilisation dans le contexte de PREMIA, la bibliothèque PNL a également été utilisée pour le développement de plusieurs méthodes numériques publiées dans des articles de recherche.

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 23/04/13
  • Correction mineure : 19/11/14
  • Auteur de la fiche : Olivier Cots (IRIT (Institut de Recherche en Informatique de Toulouse))
  • Responsable thématique : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))

Hampath : résolution de problèmes de contrôle optimal via les méthodes indirectes et homotopiques

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, MacOS X
  • Version actuelle : Juillet 2014
  • Licence(s) : Eclipse Public Licence
  • Etat : diffusé, stable, utilisé en interne, en développement
  • Support : maintenu, développement en cours
  • Concepteur(s) : Olivier Cots, INP-ENSEEIHT & IRIT
  • Contact concepteur(s) : olivier.cots@enseeiht.fr
  • Laboratoire(s), service(s)... : IMB, INRIA Sophia, Institut Maths Bourgogne, IRIT

 

Fonctionnalités générales du logiciel

Hampath est un logiciel open-source, destiné à la résolution de problèmes de contrôle optimal, dans un cadre académique ou industriel. Il est facile d'utilisation dans le sens où l'interface est en Matlab et performant puisque les calculs se font en Fortran. Il permet de résoudre des problèmes de contrôle optimal lisses, ou de type Bang-Bang ou encore Bang-Singulier, sans contrainte sur l'état, grâce à des méthodes indirectes telles que le tir simple, multiple ou encore par continuation différentielle. Ce principe de continuation est spécifique à Hampath et permet d'étudier les solutions en fonction de paramètres du problème, qu'ils soient physiques ou introduits comme pénalisation. Les calculs laissés à l'utilisateur sont réduits au strict minimum puisque par exemple, le calcul des équations sur le vecteur adjoint est automatisé.

Contexte d’utilisation du logiciel

Ce logiciel est utilisé principalement à l'IRIT, Toulouse, à l'Université de Bourgogne, Dijon, à l'INRIA, Sophia Antipolis, ou encore à l'Université de Hawaii, Etats-Unis :

  • pour le calcul d'orbites optimales de satellite sur des transferts autour de la Terre, Terre-Lune, ...
  • pour l'étude de système contrôlé en mécanique quantique, intervenant en imagerie médicale par exemple.
  • pour l'étude de système hamiltonien. Par exemple, on peut étudier le flot géodésique de la métrique canonique sur l'ellipsoïde.
  • ...
Publications liées au logiciel

Les publications référencées sont accessibles aux adresses http://cots.perso.enseeiht.fr et http://hampath.org :

  • Olivier Cots, Contrôle optimal géométrique : méthodes homotopiques et applications, Thèse de Doctorat (2012).
  • J. Caillau, O. Cots and J.Gergaud, Differential pathfollowing for regular optimal control problems, Optimization Methods and Software, 27, no. 2 (2012), 177-196.
  • On recommande la lecture du manuel simple d'utilisation accessible à l'adresse http://hampath.org/downloads.html.
Fiche logiciel à valider
  • Création ou MAJ importante : 18/04/13
  • Correction mineure : 23/08/13
Mots-clés
Pour aller plus loin
  • Fiches logiciel PLUME connexes : Cygwin
Fiche en recherche de relecteurs
Cette fiche est en recherche de relecteurs. Si vous êtes intéressé(e)s, contactez-nous !

crosstool-NG : compilation croisée sur un PC/Mac de développement

Ce logiciel est en cours d'évaluation par la communauté PLUME. Si vous utilisez ce logiciel en production dans notre communauté, merci de déposer un commentaire.
  • Site web
  • Système : UNIX-like
  • Téléchargement
  • Version évaluée : 1.18.0
  • Langue(s) de l'interface :
  • Licence : GPL, LGPL
    • Le fichier de licence (nommé COPYING) est fourni avec le paquetage du projet.
    • La documentation de crosstool-NG est en Creative Commons v2.5.
    • Les patchs fournis avec crosstool-NG sont sous la même licence que le projet auquel ils s'appliquent. Par exemple, la licence du noyau Linux s'applique aux patchs sur le noyau fournis avec crosstool-NG.
    • Le reste des fichiers qui composent crosstool-NG sont sous licence GPLv2.
Description
Fonctionnalités générales

Le projet crosstool-NG permet de mettre en place facilement une chaîne de compilation croisée sur un PC de développement (PC hôte). Une chaîne de compilation croisée permet de compiler du code source développé en C, C++, Fortran et/ou Java, à partir d’une machine hôte (majoritairement x86 ou x86_64) à destination d’une machine cible d’architecture différente (typiquement une carte électronique embarquée d'architecture Alpha, ARM, MIPS, PowerPC, Sparc...). La majeure partie des projets sur l'embarqué utilise ce procédé car la machine hôte est beaucoup plus puissante que la machine cible. Le temps de compilation et de développement s’en trouve considérablement réduit.

Autres fonctionnalités
  • Au delà du compilateur croisé obtenu par défaut (compilateur C: GCC), la chaîne de compilation croisée obtenue offre tous les outils nécessaires au développeur : addr2line, ar, objcopy, readelf, etc...

  • Avant de lancer la conception de la chaîne proprement dite, toutes les options comme par exemple l'obtention du langage C++, Fortran ou Java dans la chaîne, sont paramétrables par un menu intuitif du même type que celui du noyau Linux (menu de type ncurses).

Interopérabilité

crosstool-NG entre dans le cadre de la conception d'un système embarqué. Il est très répandu dans la conception de systèmes d'exploitation GNU/Linux embarqués. Quand bien même la carte embarquée (cible) est de même architecture que le PC de développement (hôte), il convient d'installer une chaîne de compilation croisée car celle-ci est le garant de la pérennité des bibliothèques utilisées pour la compilation et souvent un levier d'accélération notable. En effet, elle permet de mettre à "l'abri" les bibliothèques et exécutables des mises à jours du système d'exploitation du PC hôte.
Il est possible de vérifier que l'exécutable obtenu est bien pour l'architecture cible en utilisant la commande Unix :
file <nom_d_exécutable>.
Par exemple, après cross-compilation pour architecture ARM du code source binaire du nom helloworld, la commande file helloworld nous renvoie :

helloworld: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), not stripped

Entre deux binaires compilés à partir de sources identiques, avec des options identiques, l'un sur le système cible et l'autre par crosstool-NG, il n'y a aucune différence de fonctionnement.

Contexte d'utilisation dans mon laboratoire/service

Le Laboratoire de Physique de la Matière Condensée utilise une carte électronique embarquée pour piloter à distance un oscilloscope numérique sur une expérience scientifique de type RMN (Résonance Magnétique Nucléaire). Le chargeur de démarrage, le noyau Linux et l'ensemble du système de fichiers de la carte électronique ont été complètement ré-installés et personnalisés pour l'expérience scientifique. Le module Linux GPIB a été cross-compilé avec succès grâce à crosstool-NG. Le module GPIB fonctionne parfaitement sur la carte électronique embarquée.

Limitations, difficultés, fonctionnalités importantes non couvertes
  • Fonctionne nativement sur plate-formes GNU/Linux (peut fonctionner sous Mac et Windows avec Cygwin),
  • Toutes les architectures cibles ne sont pas couvertes,
  • Connexion réseau indispensable afin de télécharger les différents composants (pensez à paramétrer le proxy dans les variables d'environnement de votre PC) lors du lancement de la conception de la chaîne de compilation croisée,
  • PC hôte assez récent pour limiter le temps de conception de la chaîne (il faut compter 40 à 60 minutes avec une machine bien équipée !).
Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

La plupart des revendeurs de cartes électroniques embarquées fournissent un CD/DVD contenant une chaîne de compilation croisée prête à l'emploi. Il suffit alors de lancer le script shell (ou python) pour l'installer dans son PC hôte.

Plates-formes

Voir rubrique Divers ci-dessous pour une description succincte du processus d'installation typique.

Logiciels connexes
Autres logiciels aux fonctionnalités équivalentes

Au-delà de l'obtention d'une chaîne de compilation croisée, les solutions équivalentes suivantes permettent de créer une distribution Linux embarquée :

  • Buildroot (sous licence GPLv2) : conçoit une distribution clé en main basée sur la bibliothèque uClibc (6 fois plus légère et donc plus adaptée pour l'embarqué que la bibliothèque traditionnelle Glibc utilisée par GNU/Linux).
  • OpenWRT (sous licence GPLv2) : projet essentiellement orienté pour les routeurs à base de puce Broadcom, la distribution est basée sur Buildroot (la chaîne de compilation est conçue avec la bibliothèque uClibc).
  • PTXdist (sous licence GPLv2) : conçoit également une distribution clé en main, le projet fournit en téléchargement quelques chaînes de compilation prêtes à l'emploi.
  • LTIB (sous licence GPLv2) : projet soutenu par l'entreprise américaine Freescale spécialisée dans la conception de cartes électroniques embarquées, la chaîne de compilation croisée peut être sous bibliothèque uClibc ou bibliothèque Glibc.
  • OpenEmbedded (sous licence GPLv2) : c'est le mastodonte ! Ce projet peut concevoir un système embarqué pourvu d'un environnement graphique allégé (avec la bibliothèque Qt 4) jusqu'à une distribution GNU/Linux embarquée minimaliste faisant moins d'1 Mo. La chaîne de compilation est quant à elle basée sur la bibliothèque Glibc.
  • Sourcery CodeBench Lite Edition (sous licence GPLv2) : anciennement Code Sourcery, depuis le rachat de Code Sourcery par l'entreprise Mentor Graphics. Sur le site Internet de ce dernier, il est proposé de télécharger des chaînes de compilation croisée toutes faites pour les architectures ARM, ColdFire, Intel, MIPS, PowerPC et SuperH. Avant de télécharger la chaîne voulue, il faut s'enregistrer sur la même page web que donne le lien du projet. L'installation est ensuite aisée car elle consiste à lancer un script d'installation. Sourcery CodeBench Lite Edition est accessible gratuitement jusqu'à maintenant. Mais nous n'avons aucune garantie de pérennité quant à sa gratuité contrairement aux autres projets cités précédemment.
Environnement de développement
Type de structure associée au développement

Le créateur du projet était un américain nommé Dan Kegel. Le nom du projet initial était crosstool. Le projet est abandonné par son auteur depuis décembre 2006. La dernière version (0.43) de crosstool est toujours téléchargeable à l'adresse http://kegel.com/crosstool/. Le projet est ensuite repris par un français nommé Yann Morin. Avril 2007, la première version du nouveau projet crosstool voit le jour. Le projet est d'ailleurs renommé crosstool-NG (l'acronyme ng pour Next Generation). Depuis, Mr Morin est très actif (une nouvelle version majeure tous les 3 à 4 mois) et rassemble de plus en plus de contributeurs français et étrangers autour de crosstool-NG.

Eléments de pérennité

crosstool-NG est très utilisé comme base de construction d'une distribution GNU/Linux embarquée clé en main.

Références d'utilisateurs institutionnels

L'entreprise bien connue ELDK base la conception de leurs chaînes de compilation croisée librement téléchargeables sous crosstool et crosstool-NG (http://ftp.denx.de/pub/eldk/).

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

Il n'y a pas à proprement parler de forum de discussion ni de support. Néanmoins, l'auteur du projet est joignable par e-mail, par Internet Relay Chat, IRC (il donne même ses horaires probables de présence).

Documentation utilisateur

L'ensemble de la documentation est accessible dans le tarball compressé de la version de crosstool-NG que l'on télécharge depuis le site officiel du projet. Elle est rassemblée dans le répertoire "docs". Elle est claire et en anglais.

Divers (astuces, actualités, sécurité)

La chaîne de compilation croisée s'obtient en plusieurs étapes :

  1. Il convient au préalable d'obtenir le binaire "ct-ng" par compilation classique (./configure, make, make install) des sources à partir du répertoire crosstool-ng-x.xx.x (où x désigne le numéro de version de crosstool-NG). Ce binaire va permettre de paramétrer le type de chaîne que vous désirez concevoir et installer. En effet, il est impossible techniquement de créer une chaîne de compilation croisée pour toutes les architectures existantes (il est possible d'en installer plusieurs pour chaque architecture : ARM ou MIPS ou SH4 etc...).
  2. L'étape suivante est de paramétrer notre future chaîne de compilation grâce au binaire "ct-ng" (quelle architecture ?, quels outils de débogage ? etc...) en lançant la commande "ct-ng menuconfig" (menu type ncurses).
  3. Une fois le paramétrage fait, nous lançons la conception de la chaîne de compilation par la commande "ct-ng build".
  4. Une fois compilée et installée, la chaîne de compilation croisée se résume à un ensemble de binaires comme, par exemple, pour l'architecture ARM :
    arm-unknown-linux-gnueabi-gcc
    arm-unknown-linux-gnueabi-g++
    arm-unknown-linux-gnueabi-gfortran
    etc...

Remarques :
La commande "ct-ng --help" : donne l'ensemble des options du binaire,
La commande "ct-ng list-samples" : donne l'ensemble des configurations prédéfinies pour toutes les architectures supportées,
La commande "ct-ng <nom de l'architecture cible>" (exemple: arm-unknown-linux-gnueabi) : prédéfinie automatiquement la configuration désirée. Un simple "ct-ng build" et vous voilà avec une chaîne de compilation croisée capable de compiler du code source (C, C++,etc...) pour ARM.

Contributions

Pour contribuer au projet, l'auteur propose de prendre contact par courriel.

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 04/04/13
  • Correction mineure : 08/11/13
  • Auteur de la fiche : Cyril Bordreuil (Laboratoire de Mécanique et Génie Civil - Université Montpellier 2)
  • Responsable thématique : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))
Mots-clés

erCv : analyse d'images lors d'un procédé de soudage

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like, MacOS X
  • Version actuelle : 1.3.0 - 8/11/2013
  • Licence(s) : CeCILL
  • Etat : en développement
  • Support : maintenu, développement en cours
  • Concepteur(s) : Edward Romero, Cyril Bordreuil
  • Contact concepteur(s) : cyril.bordreuil@univ-montp2.fr
  • Laboratoire(s), service(s)... : Univ Montpellier 2

 

Une fiche logiciel décrit plus en détail ce développement, consultez la pour plus d’informations : erCv
Fonctionnalités générales du logiciel

Le logiciel permet le traitement et l'analyse d'images lors d'un procédé de soudage. Le procédé de soudage à l'arc induisant de fortes perturbations, des algorithmes couplant traitement d'images basique, géométrie algorithmique et analyse de graphes ont dû être mis en œuvre. La bibliothèque est développée en C++ pour les applications nécessitant un traitement rapide et quelques fonctionnalités ont été portées dans python.
La bibliothèque peut intéresser toute personne cherchant des algorithmes pour détecter des contours entre phase liquide et phase solide dans un environnement perturbé ou non.

Autres fonctionnalités

Les algorithmes prennent en compte la possibilité d'une nuisance optique au niveau des images et l'ensemble des algorithmes introduisent différents paramètres permettant de gérer les perturbations optiques induite par l'arc.
Outre l'entrée-sortie en forme de tableaux numbpy, le logiciel fournit / contient certaines interfaces graphiques pour des analyses.

Originalité

Aucun logiciel libre n'offre la possibilité d'analyser les interfaces solides liquides dans différentes configurations. Si OpenCv propose l'ensemble des fonctionnalités nécessaire au traitement d'images, erCv ajoute la robustesse d'une bibliothèque d'algorithme de graphe et de géométrie (CGAL). En particulier, la fermeture des contours s'appuie sur une méthode de Alpha shape combinée à la recherche de grand cycle dans un graphe. L'ensemble est programmé en C++, ce qui laisse la possibilité d'un traitement en temps réel.

Contexte d’utilisation du logiciel

Au niveau du laboratoire, erCv est utilisé pour la détection d'interface liquide solide au cours du soudage à l'arc. L'évolution des contours permet d'analyser l'équilibre entre les phénomènes mis en jeu (tension superficielle, pression électromagnétique, ...) au cours du procédé.
Une description d'erCv appliquée à un soudage MIG est faite dans la publication mentionnée plus loin (2013). L'interface python est constamment enrichi pour s'adapter aux problématiques des doctorants.

Publications liées au logiciel

Image Processing and geometrical analysis for profile detection during P-Gas Metal Arc Welding E. Romero, J. Chapuis, C. Bordreuil, F. Soulié, G. Fras, Journal of Engineering Manufacture, 2013

Fiche logiciel validé
  • Création ou MAJ importante : 04/03/13
  • Correction mineure : 04/03/13
  • Rédacteur de la fiche : Pierre-Antoine Delsart - LPSC (CNRS, Université Joseph Fourrier)
  • Relecteur(s) : John Idarraga (LAL)
    Benoit Clément (LPSC)
    Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))
  • Contributions importantes : Cette fiche avait été initiée par Christian Helft comme RT, puis reprise comme tel par Dirk Hoffmann qui avait fait un travail de relecteur jusqu'à ce moment-là.
  • Responsable thématique : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))
Mots-clés

ROOT : framework d'analyse de données scientifiques

Description
Fonctionnalités générales

ROOT est une bibliothèque C++ destinée à l'analyse de larges volumes de données numériques. Écrit par et pour les physiciens des particules, ROOT est utilisé dans le cadre des principales expériences de physique des hautes énergies (LHC, Tevatron, SLAC...) depuis l'ère de HERA, par exemple par l'expérience H1 officiellement depuis 2000. ROOT est aussi utilisé par certaines communautés en biotechnologie et économie.

En résumé, ROOT sert

  • au stockage efficace de volumes importants de données numériques sous forme de ntuples ou d'objets structurés.
  • d'outil d'analyse de ces données. Pour les analyses simples, des fonctionnalités de visualisation interactive sont fournies. Une très riche API C++ est disponible pour les analyses plus complètes.

La taille et la modularité de la bibliothèque font de ROOT un outil flexible, mais nécessitant une connaissance du C++ pour une utilisation autre que superficielle.

Des interfaces en python et ruby rendent aussi ROOT utilisable à travers ces langages.
Les fonctions C++ sont accessibles à partir des langages C et FORTRAN moyennant une "traduction" (demangling, comme c++filt) des noms des méthodes. Et de ce fait, les méthodes C++ de ROOT peuvent également être utilisées à travers ces langages classiques.

Autres fonctionnalités

La bibliothèque est constituée essentiellement d'un ensemble d'objets C++ répartis en "modules".

Liste un peu plus détaillée de fonctionnalités :

  • Sauvegarde et accès aux données numériques.
  • Visualisation interactive sous diverses formes, en 1, 2 ou 3D : histogrammes, graphes, fonctions numériques, images. Export vers différents formats graphiques vectoriels et matriciels (voir détails et exemples dans le paragraphe "Interopérabilité").
  • Méthodes statistiques et d'ajustements ("fits") avancées, via le sous-projet RooStat.
  • Analyse discriminante multivariée (réseaux de neurones, rapports de vraisemblance, arbres de décision...), via le package TMVA.
  • Système de calcul distribué sur plusieurs processeurs/cœurs : PROOF.
  • Système complet d'interface graphique utilisateur (GUI).
  • Nombreuses classes utilitaires de programmation (conteneur, chaîne de caractères), pour la physique (ex: vecteur de Lorentz) ou mathématiques (ex: matrices, opération sur les matrices).
  • ...

Exemple de graphiques générées avec ROOT (CC BY-NC-SA/3.0, R. Brun) - cliquer pour un catalogue de captures d'écran :
Image 2d d une gerbeHistogramme

ROOT contient un interpréteur de C/C++ (CINT) pour une utilisation interactive en mode ligne de commande. Il inclut un générateur de dictionnaire fournissant l'introspection et permettant d'utiliser interactivement n'importe quelle classe C++ (avec complétion des noms de symboles par la touche de tabulation). Grâce à cet interpéteur, ROOT peut être utilisé en trois modes complémentaires:

  • Interprétation de lignes de commande, interprétées ligne par ligne et exécutées immédiatement
  • Interprétation d'un "script" contenant des instructions C++, également interprétées ligne par ligne
  • Compilation d'un bout de code source C++ valable, chargement dans la mémoire vive et mise à jour du dictionnaire des symboles, puis exécution directe ou via une instruction en ligne de commande qui fait appel aux symboles nouvellement chargés.

Selon la phase de développement d'un logiciel d'analyse, les trois modes rendent l'utilisation plus efficace et productive de la première ébauche jusqu'à la finalisation du code.
Le remplacement de CINT par l'interpréteur cling (basé sur LLVM) lors de la sortie de la version 6 de ROOT a été annoncé.

Illustration de l'utilisation de l'interpréteur interactif de ROOT pour générer des graphiques (CC BY-NC-SA/3.0, R. Brun) - cliquer pour un catalogue de captures d'écran :
UI et GUI

Panoplie de graphiques 2D générées avec ROOT (CC BY-NC-SA/3.0, R. Brun) - cliquer pour un catalogue de captures d'écran :
graphiques 2d

D'autre part, il est possible de se servir de ROOT uniquement comme une bibliothèque exhaustive de fonctions, algorithmes de calcul et de statistiques ainsi que d'outils graphiques qui sont intégrés directement dans une nouvelle application autonome, compilée à partir de code source utilisateur.

Interopérabilité

Formats de données numériques :

  • Natif 'ROOT': un format indépendent de l'architecture matériel et du système d'exploitation.
    Typiquement le format TTree ou TNtuple sont utilisé comme une sorte de standard de fait.
  • Certaines classes peuvent lire le csv.
  • Interface pour base de données SQL.
  • Mathematica (pour la version 5.30)
  • Interface pour XML et des extensions comme GDML, utilisé dans Geant4.
  • Des interfaces pour des structures simples de donnés tels que ceux crées par des générateurs de MonteCarlo, tels que Pythia.

Export graphique : jpeg, png, gif, svg, ps, eps, tiff, xpm, xml.

Contexte d'utilisation dans mon laboratoire/service

ROOT est un standard de fait pour tous les physiciens des particules (communauté de plus de 10 000 chercheurs en Europe) et leur collaborateurs. Le nombre de téléchargements a dépassé pour les seules sources du logiciel, la marque symbolique de 100 000 en 2011. De par son origine et sa conception il est particulièrement adapté au domaine. Il est utilisé quotidiennement et de façon satisfaisante (malgré certains points agaçants, c.f. ci-dessous) par nombre de ces chercheurs.

Limitations, difficultés, fonctionnalités importantes non couvertes

Quelques aspects critiquables résultent de la (trop) grande taille de la bibliothèque : syndrome de "ré-invention de la roue". Un exemple typique est le "ToolKit" graphique intégré qui parait peu abouti par rapport à des alternatives open source (GTK ou Qt).

En revanche, le projet évolue régulièrement et l'équipe de développement est réactive, il y a un bon soutien de la communauté.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Fedora14. Les distributions Scientific Linux ne contiennent généralement pas de paquet de ROOT, probablement parce que cette communauté préfére de loin les versions fraîchement distribuées par les auteurs au CERN.
Le site ROOT au CERN (root.cern.ch) propose, outre les sources, des paquets précompilés de binaires pour Scientific Linux (RPM, normalement compatibles avec la famille RedHat), Mac OS X, Solaris 11, AIX ainsi que Windows, mais pas Debian/Ubuntu.
Les différentes versions de ROOT ainsi que dernière version de développement du code source sont accessibles par svn

Plates-formes

Linux, Windows, Mac OS X, nombreuses variantes d'Unix. Plus généralement tout système d'exploitation avec un compilateur GNU et la bibliothèque graphique Qt.
Testé sur Scientific Linux (SL4, SL5, SL6, SLD, SLC, ...), Fedora.

Autres logiciels aux fonctionnalités équivalentes

Tous les logiciels d'analyse de données numériques : octave, R, GDL, JavaAnalysisStudio (JAS), Matlab, Mathematica, Maple, etc...

Environnement de développement
Type de structure associée au développement

Développé au CERN avec une participation significative et régulière du FNAL ainsi que des centaines de développeurs plus ou moins occasionnels de la communauté de la physique des particules (HEP - "high energy physics" en anglais).

Eléments de pérennité

Sous les auspices du CERN, le "cœur" des développeurs officiellement annoncé sur le site (début 2012) est au nombre de douze et réparti sur plusieurs continents. Le projet soutient activement tous les développeurs occasionnels de la communauté.
La pérennité est excellente pour plusieurs années, la version 1.00 de ROOT étant sortie en 1997. Il peut être considéré comme le successeur du logiciel d'analyse statistique PAW écrit en FORTRAN et développé à partir des années 1970 jusqu'à l'avènement de ROOT. Devenu projet officiel du département de physique du CERN en 2002, il sera de fait irremplaçable pour les expériences pendant la durée de vie du LHC (30 ans à partir de 2008) et des analyses de ses données qui s'ensuivront.

Références d'utilisateurs institutionnels

IN2P3 (regroupant une bonne vingtaine de laboratoires de recherche en physique), CERN, FERMILAB, DESY, SLAC

Selon cette présentation à CHEP2012, ROOT serait le deuxième logiciel le plus souvent cité (après GEANT) dans les publications du domaine de la recherche en physique des particules autour du CERN.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Fiche logiciel validé
  • Création ou MAJ importante : 04/03/13
  • Correction mineure : 06/03/13
  • Rédacteur de la fiche : Jürgen Knödlseder - Un des auteurs de GammaLib - Institut de Recherche en Astrophysique et Planétologie (IRAP) (CNRS, Université Paul Sabatier)
  • Relecteur(s) : Christoph Deil (MPI for Nuclear Physics)
    Pierrick Martin (IRAP)
  • Responsable thématique : Dirk Hoffmann (Centre de Physique des Particules de Marseille (CPPM-IN2P3))
Mots-clés
Pour aller plus loin
  • Fiches logiciel PLUME connexes : python

GammaLib : bibliothèque C++ pour l'analyse de données en astronomie gamma

Une fiche Dév Ens Sup est en relation avec cette fiche, consultez-la pour plus d'informations : GammaLib
Description
Fonctionnalités générales

GammaLib est une bibliothèque C++ incluant toutes les fonctionnalités nécessaires à l'analyse d'observations astronomiques réalisées dans le domaine gamma. Un télescope gamma fournit typiquement une liste d'événements détectés, caractérisés par un temps, une énergie, une direction d'incidence...etc. GammaLib permet d'exploiter ces données de bas niveau (proches de l'instrument) et d'en extraire les images, spectres, et courbes de lumière à partir desquels l'analyse scientifique à un niveau plus élevé peut être effectuée. La vocation première de GammaLib est de fournir un cadre logiciel aussi indépendant que possible d'un instrument donné. GammaLib peut être adapté à un télescope spécifique et/ou permettre l'analyse simultanée d'observations issues de plusieurs télescopes gamma.

GammaLib est organisé en modules:

  • un module pour le traitement des observations et des données en astronomie gamma (gestion des observations, des données, des fonctions de réponse...etc.)
  • un module pour la définition des modèles (sources astrophysiques et bruits de fond)
  • un module pour l'ajustement de modèles aux données
  • un module pour la gestion des images FITS (Flexible Image Transport System) suivant le standard WCS (World Coordinate System) et incluant le format HEALPix (Hierarchical Equal Area isoLatitude Pixelization)
  • un module pour la création des ftools (executables suivant les standards du HEASARC)
  • un module pour le calcul numérique (intégration, différentation)
  • un module pour l'algèbre (vecteurs, matrices, matrices creuses)
  • un module pour des fonctions de support aux autres classes
  • une interface FITS pour la lecture et l'écriture des données
  • une interface pour la lecture et l'écriture des fichiers au format XML
  • une interface des paramètres selon le format IRAF (Image Reduction and Analysis Facility)

GammaLib est hautement portable et nécessite seulement un compilateur C++ pour sa construction. La seule dépendance nécessaire pour son fonctionnement est la bibliothèque cfitsio qui fournit l'interface FITS. Si disponible, GammaLib peut également profiter d'un support OpenMP pour effectuer du calcul parallèle sur des ordinateurs à processeurs ou coeurs multiples.

Toutes les fonctionnalités sont accessibles à travers une interface C++. De plus, toutes les classes de GammaLib sont également disponibles comme classes Python (version 2 et 3).

Pour permettre l'analyse des données d'un télescope spécifique, un module dédié doit être implémenté, décrivant le format et la structure des données du télescope, ainsi que sa fonction de réponse instrumentale. Par défaut, GammaLib permet pour le moment le traitement des données :

Des données en forme de spectres peuvent également être traitées.

Autres fonctionnalités

GammaLib a été conçu pour l'astronomie gamma, mais ses fonctionnalités peuvent être utilisées dans bien d'autres domaines, par exemple:

  • la gestion des fichiers FITS
  • la gestion des cartes du ciel en format WCS
  • l'analyse de spectres
  • des problèmes nécessitant l'optimisation de fonctions
  • des problèmes nécessitant l'utilisation de matrices creuses
Interopérabilité

Les formats suivants sont supportés pour échanger des données et des paramètres:

  • FITS
  • IRAF parameter interface (paramètres utilisateur pour des exécutables)
  • Fichiers XML
Contexte d'utilisation dans mon laboratoire/service

La bibliothèque sert pour le prototypage des logiciels d'analyse scientifique ctools pour le projet Cherenkov Telescope Array (CTA).

Elle sert également pour l'analyse des données du télescope LAT sur le satellite Fermi. Des éléments de la bibliothèque sont égalements utilisés dans le système d'analyse scientifique développé par l'IRAP pour l'exploitation du télescope SPI sur le satellite INTEGRAL.

Limitations, difficultés, fonctionnalités importantes non couvertes

Certains éléments de la bibliothèque sont encore dans un stade de prototypage. Par exemple, la vérification de la syntaxe XML n'est pas implémentée complètement. et l'interface des paramètres IRAF n'effectue pas encore une vérification des limites.

L'analyse de données Fermi/LAT est seulement supportée pour les analyses de type "binned". L'analyse de données COMPTEL est uniquement possible pour des sources ponctuelles, et il manque encore la gestion des modèles de bruit de fond instrumental sophistiqués. L'analyse de données CTA est toujours en évolution, car le format de données et la fonction de réponse instrumentale ne sont pas encore définitivement établis. Aucune interface pour autres télescopes gamma n'a été implémentée. Ce qui manque en particulier est un support du télescope SPI sur INTEGRAL.

L'interface du logiciel n'est pas encore sous contrôle de configuration. Une version 1.0 avec une interface stable est attendue pour le courant de l'année 2013.

Environnement du logiciel
Plates-formes
  • Mac OS X
  • Linux
  • FreeBSD
  • OpenSolaris
Environnement de développement
Type de structure associée au développement

Logiciel développé par le laboratoire de recherche IRAP. Plusieurs contributeurs externes au laboratoire participent au projet.

Configuration par GNU autotools, construction par GNU automake.

Eléments de pérennité

Le logiciel permet l'analyse de données en astronomie gamma multi-instrument, et intéresse ainsi potentiellement une large communauté de chercheurs autour du globe. Pour le moment, les communautés les plus ciblées sont celles des télescopes gamma de très hautes énergies existants (H.E.S.S., MAGIC, VERITAS) et futurs (CTA, mais aussi HAWC), ainsi que la communauté Fermi/LAT.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Contributions

Pour contribuer au développement de GammaLib, voir https://cta-redmine.irap.omp.eu/projects/gammalib/wiki/Contributing_to_GammaLib.

Fiche dév Ens Sup - Recherche
  • Création ou MAJ importante : 31/01/13
  • Correction mineure : 04/03/13
Mots-clés

GammaLib : Bibliothèque C++ pour l'analyse de données en astronomie gamma

Ce logiciel a été développé (ou est en cours de développement) dans la communauté de l'Enseignement Supérieur et de la Recherche. Son état peut être variable (cf champs ci-dessous) donc sans garantie de bon fonctionnement.
  • Site web
  • Système : UNIX-like
  • Version actuelle : 00-07-00 - 11 janvier 2013
  • Licence(s) : GPL - Version 3
  • Etat : diffusé, stable
  • Support : maintenu, développement en cours
  • Concepteur(s) : Jürgen Knödlseder
  • Contact concepteur(s) : jurgen.knodlseder@irap.omp.eu
  • Laboratoire(s), service(s)... : IRAP, DESY (Deutsches Elektronen-Synchrotron, Hamburg), MPIK (Max-Planck Institute for Nuclear Physics, Heidelberg)

 

Une fiche logiciel décrit plus en détail ce développement, consultez la pour plus d’informations : GammaLib
Fonctionnalités générales du logiciel

GammaLib est une bibliothèque C++ incluant toutes les fonctionnalités nécessaires pour l'analyse de données en astronomie gamma. En particulier, GammaLib propose

  • une interface FITS pour la lecture et l'écriture des données
  • un module pour la construction des ftools, incluant une interface des paramètres selon le format IRAF
  • une interface pour la lecture et l'écriture des fichiers XML
  • un module pour le traitement des observations et des données en astronomie gamma
  • un module pour l'ajustement de modèles aux données
  • un module pour la gestion des images FITS, en suivant le standard WCS, incluant la gestion des cartes en HealPix
  • un module pour le calcul numérique (intégration, différentiation)
  • un module pour l'arithmétique (vecteur, matrices, matrices creuses)
  • un module de support

Toutes les fonctionnalités sont accessibles à travers une interface C++. En plus, GammaLib inclut un module Python qui permet d'accéder toutes les classes dans ce langage.

GammaLib permet pour le moment le traitement des données de Fermi/LAT, des télescopes Cherenkov existants (H.E.S.S., MAGIC, VERITAS), et du futur Cherenkov Telescope Array (CTA). Des données en forme de spectres peuvent également être traitées. Des analyses multi-instruments sont possibles.

Contexte d’utilisation du logiciel

La bibliothèque sert à la fois pour le prototypage des logiciels d'analyse scientifique pour le projet Cherenkov Telescope Array (CTA), ainsi que pour l'analyse des données du télescope LAT sur le satellite Fermi. Des éléments de la bibliothèque sont également utilisés dans le système d'analyse scientifique développé par l'IRAP pour l'exploitation du télescope SPI sur le satellite INTEGRAL.

Publications liées au logiciel

Knödlseder, J. 2011, GammaLib - A new framework for the analysis of Astronomical Gamma-Ray Data, sous presse (http://arxiv.org/abs/1110.6418)

Syndiquer le contenu