English Français

L'approche modulaire


La plateforme Uranie (v4.9.0) est basé sur ROOT (v6.32.02).

En conséquence, Uranie bénéficie de nombreuses caractéristiques de ROOT, parmi lesquelles :

- un interpréteur C++ interactif (Cling), construit sur LLVM et Clang;
- une interface Python (PyROOT);
- un accès à des bases de données SQL;
- de nombreuses fonctions avancées de visualisation de données;
- et bien plus encore...

Dans les sections suivantes, la plateforme ROOT sera brièvement présentée ainsi que l'interface Python pouvant etre utilisée une fois que les classes Uranie sont déclarées et connues. L'organisation de la plateforme Uranie est ensuite présentée, à grande échelle, introduisant les éléments nécessaires à la compréhension détaillée des éléments décrits dans la documentationd.

I. Modules d'organisation d'Uranie

La plateforme se compose d'un ensemble de bibliothèques techniques, ou modules (représentés par des boîtes vertes dans la figure I.1), chacun effectuant une tâche spécifique mais utilisés de manière interdépendante.

Figure I.1. Organisation des modules Uranie (cases vertes) et leurs interdépendances. Les cases bleues représentent les dépendances externes.



Dans la suite de cette section, chacun des modules abordés dans cette documentation sera brièvement décrit (leur rôle et leurs composants principaux). Une description plus précise est donnée dans les autres chapitres dédiés, en suivant les liens indiqués ci-dessous.

I.1. Module de serveur de données

La bibliothèque DataServer (Chapitre II) est le coeur de la plateforme Uranie, elle contient principalement le dataserver. Cet objet contient toutes les informations nécessaires sur les variables d'un problème (noms, unités, lois de probabilité, fichiers de données, etc.) et permet d'effectuer les opérations statistiques de base.

I.2. Module d'échantillonnage

La bibliothèque Sampler (Chapitre III) permet de créer des plans d'expériences en utilisant les attributs du dataserver qui sont des variables aléatoires. Il existe une grande variété de plans d'expériences, dont certains ne sont destinés qu'à être appelés par des méthodes spécifiques.

I.3. Module de lancement

Les bibliothèques Launcher et Relauncher sont des modules techniques (Chapitre IV et Chapitre VIII) qui appliquent une fonction analytique (python ou C++), un code de simulation externe ou toute combinaison de ces éléments au contenu d'un dataserver. Le contenu du dataserver peut résulter d'un plan d'expériences généré à l'aide d'une des techniques d'échantillonage, ou peut être chargé à partir d'une source externe (fichier ASCII, base de données SQL, etc.). Les calculs peuvent être lancés facilement sur cluster ou parallélisés suivant différents paradigmes : fork, mémoire partagée (thread), mémoire séparée (MPI)...

I.4. Module de modélisation

La bibliothèque Modeler (Chapitre V) permet la construction d'un modèle de substitution qui relie la ou les sorties et les facteurs d'entrée (modèles polynomiaux, réseaux de neurones, ...) en s'approchant autant que possible des résultats contenus dans un ensemble de points fournis servant de base d'apprentissage.

I.5. Module de sensibilité

La bibliothèque Sensitivity (Chapitre VI) permet d'effectuer une analyse de sensibilité de l'une des réponses de sortie par rapport aux facteurs d'entrée. Les concepts de base de l'analyse de sensibilité sont également présentés en introduction du Chapitre VI et sont discutés de manière plus approfondie dans le guide méthodologique.

I.6. Modules d'optimisation et de réoptimisation

Les bibliothèques Optimizer et Reoptimizer (Chapitre VII et Chapitre IX) sont consacrées à l'optimisation et à l'étalonnage des modèles. L'étalonnage d'un modèle consiste à définir ses "degrés de liberté" d'un modèle de manière à ce que les simulations futures s'adaptent de manière optimale à une base de données expérimentale. L'optimisation est une procédure complexe et plusieurs techniques sont disponibles pour l’effectuer avec des objectifs monocritère ou multicritère, avec ou sans contrainte.

I.7. Module d'optimisation par méta-modèle

La bibliothèque MetaModelOptim (Chapitre X) est un module dédié aux optimisations pour lesquelles il est nécessaire de coupler la génération de modèles de substitution (et plus précisément de techniques de krigeage) aux algorithmes génétiques dans une approche type EGO.

I.8. Module de calibration

La bibliothèque Calibration (Chapitre XI) est un module dédié pour obtenir les meilleures estimations de certains des paramètres d'un modèle spécifique considéré. Ce module propose différentes techniques reposant sur leurs propres hypothèses sur le modèle, mais toutes ces méthodes ont besoin de données pour effectuer cette calibration.

I.9. Module de fiabilité

La bibliothèque Reliability (Chapitre XIII) est un module dédié aux analyses de fiabilité, c'est-à-dire à la détermination des faibles probabilités caractérisant les événements rares, de type défaillance par exemple.