Uranie is a software framework dedicated to uncertainty quantification, to sensitivity analysis, calibration and or
generation of surrogate-models, optimisations, etc. This framework is written in C++ and largely based on the ROOT software framework, developed at CERN, since the late nineties. ROOT is indeed a framework made to help handling very large amount of data and provide many services. Among these, Uranie relies on visualisation solutions, data handling through complex and optimised trees, its C++ on-the-fly compiler, automatic transcription of method into Python modules, etc.

Uranie, built on top, provides more methods among which:

  • design-of-experiments generation;
  • surrogate-models generation and training;
  • sensitivity analysis methods;
  • uncertainty dedicated visualisations tools;
  • parametric optimisation methods (mono and multi-criteria, with or without constraint);
  • calibration methods, with or without uncertainties, with a priori knowledge for Bayesian estimations for instance.

Uranie, thanks to its different interfaces, allows to reply to different problems: the C++ native one is coming from ROOT and can be use to write down scripts to elaborate studies. The Python interface is also usable for anymore more familiar with this language and allows to bound with the Salome framework. Finally, the XML interface is used to interface some elements of uncertainty propagation or sensitivity analysis in a more integrated software, in which the user’s effort is reduced as much as possible. In a “day-by-day” usage, C++ and Python scripts remain the main ways of handling VVUQ analysis.

The figure shown below represents different kinds of analysis using Uranie, discussed furthered later-on.

Sketch of the various kinds of analysis (called sometimes *steps) that can be done in a VVUQ analysis

  • Problem specification (A). Input variable definition of the problem under consideration along with the outputs, called variable of interest (VoI) and their quantity of interest (QoI). All these are linked through the model provided (function, code, surrogate-model…).
  • Quantification of uncertainty sources (B). Probability laws are assigned to the input variables and their parameters are fixed (mean, standard deviation…). Various kinds of correlation can be introduced as well to complete the system description.
  • Propagation of uncertainty sources (C). From step A and B, the uncertainties on input variables are propagated to the quantity of interest, for instance, through a Monte-Carlo approach, thanks to design-of-experiments.
  • Quantification of sources (B’). Using information available from step A and a set of data provided, it is possible, under certain hypothesis, to calibrate the physical models thanks to random variables and get as much information as possible from the data and a priori knowledge.
  • Sensitivity analysis (C’). From steps A and B, this kind of analysis allows to prioritise the input variables, with respect to the their impact on a given quantity of interest. Some of these methods provide quantitative estimation such as a fraction of the standard deviation of the output under consideration, as shown in the figure below.
Distribution of first order Sobol coefficient, for an irradiation model whose output is a time-dependent variable. The contributions are stacked.
Searching for an optimum of a function thanks to the EGO method (Efficient Global Optimisation). Top: approximation of the real function (blue) known from few locations (black points), the kriging prediction (red line) along with its prediction 95% confidence interval (red shading). Bottom: evolution of the selection criteria
(Expected Improvement)

For all requests (questions, remarks, installation procedure, advises…): support-uranie@REMOVECAPSTOSENDcea.fr