TONTO

Fiche logiciel à valider
  • Création ou MAJ importante : 04/12/10
  • Correction mineure : 04/12/10
Mots-clés

TONTO : boite à outils de chimie computationnelle

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, Windows, MacOS X
  • Téléchargement
  • Version évaluée : version 2.3, révision 3470
  • Langue(s) de l'interface : anglais
  • Licence : GPL

    TONTO est "copyleft" : il est régit par la licence GNU la moins restrictive. Il est libre officiellement et pour toujours.

  • Origine du développement : J. A. Dieudonné
Description
Fonctionnalités générales

En tant qu'utilisateur, TONTO permet de faire les types de calcul suivants :

  • Hartree-Fock/Fonctionnelle de la densité.
  • Calculs de fonctions d'ondes moléculaires produits de géminales non-orthogonales.
  • Cartes de densité de charge, de spin, de courant orbital, de courant solénoïdal, de courant irrotationnel, de potentiel électrique, et des représentations de densité ELF, de fonction de mobilité de Fermi pour tout type de bases gaussiennes et de matrices densités moléculaires.
  • Représentations de densités comme ci-dessus pour des ensembles de molécules ordonnées, sans interactions pour tout groupe d'espace.
  • Représentations de densités comme ci-dessus moyennées sur un état vibrationnel pour des molécules diatomiques.
  • Analyses de populations de Mulliken et Roby.
  • Décomposition de l'énergie SCF en contributions orbitales et paires d'orbitales.
  • Intensités de diffraction élastiques de rayons X et de neutrons polarisés calculés pour des fonctions d'ondes moléculaires sans interactions ordonnées pour tout groupe d'espace.
  • Fit de fonctions d'ondes moléculaires sans interactions ordonnées pour tout groupe d'espace à des données expérimentales de diffraction élastiques de rayons X et de neutrons polarisés.

En tant que programmeur, TONTO donne accès aux outils suivants :

  • Caractéristiques orientées objet automatiques telles que surcharge automatique, routine pre- et post-conditionnées, héritabilité, types paramétrisés, et closures.
  • Outils d'édition avancés comme la reconnaissance et la coloration syntaxique, module de reconnaissance de routines et de navigation.
  • Documentation en ligne HTML, compréhensive, pour chaque module.
  • Une procédure intégrée de compilation et de construction.
  • La possibilité de faire du déboggage personnalisé et des exécutables optimisés, avec notamment vérification automatique des fuites de mémoire, rapports d'erreurs complets comportant les tracebacks des routines et la gestion des appels à la pile.
Autres fonctionnalités

Pour le programmeur, les modules disponibles définissent des objets adaptés pour :

  • la gestion des erreurs, de la mémoire, des appels à la pile et le chronométrage,
  • la manipulation des types de base (entier, double précision, et chaînes de caractères),
  • la manipulation des fichiers binaires, textes, et d'archives,
  • la manipulation des types de tableaux multidimensionnels de toutes sortes,
  • la construction de grilles rectilinéaires pour des plots,
  • la construction de grilles d'intégration pour la DFT,
  • la construction d'isosurfaces 3D,
  • l'utilisation des groupes ponctuels et de leur représentations irréductibles,
  • l'utilisation des groupes d'espace pour traiter la symétrie des cristaux et de leurs mailles élémentaires,
  • l'utilisation de l'extrapolation DIIS pour les vecteurs et les matrices,
  • la manipulation des bases de fonctions gaussiennes, de couches, paires et quadruplets de couches construits à partir de ces bases --- y compris la plupart des intégrales dont vous pouvez avoir besoin un jour,
  • la construction de schémas d'interactions de configurations en champ moyen pour des fonctions produits de géminales et de spectres électroniques pour ces mêmes fonctions
  • la manipulation des types atom et molecule comportant les principaux attributs de ces concepts en chimie quantique.
Interopérabilité

TONTO comprend des interfaces pour les fichiers d'archives d'autres programmes tels que Gaussian, Gamess, ...

Contexte d'utilisation dans mon laboratoire/service

Un permanent développe et utilise ce code au laboratoire ainsi que des étudiants et des visiteurs pour faire des calculs de géminales ou pour calculer des observables relativistes ou cristallographiques. La structure modulaire de TONTO et son langage objet permet à des étudiants de première année tout à fait novices de développer du code et de faire des calculs très facilement.

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

Les seules méthodes correlées implémentés sont les méthodes DFT et GMFCI, il n'y a pas de routine d'optimisation de géométrie ni de dérivées de l'énergie. Il n'y a pas de modèle de solvatation.

Environnement du logiciel
Plates-formes

Unix

Logiciels connexes

CrystalExplorer logiciel de visualisation qui utilise TONTO comme plateforme (http://www.hirshfeldsurface.net/). Originellement payant, ce logiciel est maintenant gratuit si utilisé pour des recherches à des fins non commerciales et non confidentielles.

Autres logiciels aux fonctionnalités équivalentes

Il existe de nombreux logiciels de chimie quantique, chacun ayant ses spécificités :

  • Gaussian09, Gamess, Turbomole, Orca, ... Les leaders de la chimie quantique sur molécules.
  • Vasp, Wien2k, Quantum Espresso les logiciels de DFT sur onde planes (cristaux)
  • Crystal09 spécialisé dans les structures 3D sur base localisés
  • MPQC bases localisées, open source, orienté objet en C++
  • BigDFT basé sur des ondelettes, open source et écrit en Fortran

TONTO est différent des autres packages de chimie computationnelle parce qu'il est orienté en premier lieu, mais pas exclusivement, vers les calculs de cristallographie quantique. Le but de ce domaine est d'obtenir des fonctions d'onde précises en incorporant des données cristallographiques de rayons X, de neutrons polarisés,... C'est aussi le seul code implémentant la méthode GMFCI de géminales non orthogonales.

Une autre caractéristique importante de TONTO est qu'il est implémenté dans un langage orienté-objet, appelé Foo, qui est traduit par un préprocesseur en Fortran95. Foo rend automatique la maintenance et la documentation de TONTO. En particulier, la documentation en ligne (web) est générée directement à partir du code.

Il n'y a aucune garantie que Foo demeure traduit en Fortran95. Une traduction en C, ou dans un autre langage orienté-objet, serait relativement aisée et peut s'avérer souhaitable à une date ultérieure si Fortran cessait d'être la meilleure option pour la rapidité des calculs numériques. Par conséquent, on peut espérer une longévité importante pour le code.

La caractéristique la plus intéressante de TONTO est qu'il est libre. Les modules de TONTO peuvent être utilisés sans modification pour son propre travail, qu'il soit à visée commerciale ou non.

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

TONTO est un projet GPL initié par D. Jayatilaka et D. Grimwood hébérgé sur SourceForge. Tout le monde peut devenir développeur après accord du chef de projet et soumettre des modifications via subversion.

Eléments de pérennité

Le nombre de développeurs est passé de 2 à une dizaine en 10 ans.
Le plus grand nombre des utilisateurs sont les utilisateurs du logiciel CrystalExplorer qui connaît un franc succès dans des disciplines différentes (ex. matière condensée) de celle d'origine (la chimie quantique).

La maintenance du langage Foo représente un risque pour la pérennité du logiciel : le même groupe de développeurs doit à la fois développer le langage informatique et le logiciel métier, deux activités contradictoires qui nécessitent des compétences fort différentes.

Références d'utilisateurs institutionnels

Difficile à tracer actuellement, je connais des utilisateurs dans les institutions suivantes : University of Western Australia, University of Liverpool, University of Manchester, Université de Nice, Université libre de Berlin. A signaler aussi une trentaine de personnes appartenant à diverses institutions ayant demandé une licence pour CrystalExplorer qui utilise TONTO comme plate-forme.

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

Liste de diffusion ou de discussion, support et forums sont accessible facilement à partir du site du logiciel sur SourceForge.

Documentation utilisateur

Une documentation en anglais est générée à partir du code téléchargé par un "make documentation".
Il s'agit d'un système de fichiers HTML permettant de naviguer dans le manuel (très clair avec plein d'exemples) et dans le code (fichiers foo et f95).

Contributions

Ouvrir un compte sur SourceForge, et contacter les administrateurs du projet en indiquant votre souhait de contribuer.