The use of computational simulations in many areas of science has proven to be reliable, faster and cheaper than experimental campaigns. However, the parametric analysis needs a large amount of simulations which is not feasible when using huge codes that are time and resources consuming. An efficient solution to overcome this issue is to construct models that are able to estimate correctly the responds of the codes. These models, called Surroagte Models, require a realistic amount of evaluation of the codes and the general procedure to construct them consists in:
- Generating a sample space:
- Produce a set of data from which to run the code. The points contained in this set all called snapshot.
- Predictng solutions from a new set of input data:
- The model can finaly be used to interpolate a new snapshot from a new set of input data.
The model cannot be used for extrapolation. Indeed, it has been constructed using a sampling of the space of parameters. If we want to predict a point which is not contained within this space, the error is not contained as the point is not balanced by points surrounding it. As a famous catastrophe, an extrapolation of the physical properties of an o-ring of the Challenger space shuttle lead to an explosion during lift-off [Draper1995].
Both Proper Orthogonal Decomposition (POD) and Kriging (PC, RBF, etc.) are techniques that can interpolate data using snapshots. The main difference being that POD compresses the data it uses to use only the relevant modes whereas Kriging method doesn’t reduce the size of the used snapshots. On the other hand, POD cannot reconstruct data from a domain missing ones [Gunes2006]. Thus, the strategy used by BATMAN consists in:
As a reference, here is some bibliography:
Content of the package¶
The BATMAN package includes:
doccontains the documentation,
batmancontains the module implementation,
test_casescontains some example.
The package is composed of several python modules which are self contained within the directory
Following is a quick reference:
ui: command line interface,
space: defines the (re)sampling space,
surrogate: constructs the surrogate model,
uq: uncertainty quantification,
visualization: uncertainty visualization,
pod: constructs the POD,
driver: contains the main functions,
tasks: defines the context to compute each snapshot from,
functions: defines usefull test functions,
misc: defines the logging configuration and the settings schema.
After BATMAN has been installed,
batman is available as a command line tool or it can be imported in python. The CLI is defined in
ui. The module imports the package and use the function defined in
Thus BATMAN is launched using:
The definition of the case is to be filled in
settings.json. Refer to CLI.
output directory is created and it contains the results of the computation splited across the following folders:
This folder contains ready to launch examples:
Basic_functionis a simple 1-input_parameter function,
Michalewiczis a 2-input_parameters non-linear function,
Ishigamiis a 3-input_parameters,
G_Functionis a 4-input_parameters,
Channel_Flowis a 2-input_parameters with a functionnal output,
Mascaretmake use of MASCARET open source software (not included).
In every case folder, there is
README.rst file that summarizes and explains it.