From dfb229acb16b202d5d998fc25477500593d50cf8 Mon Sep 17 00:00:00 2001 From: Jean-Philippe ARGAUD Date: Tue, 15 Oct 2013 14:59:43 +0200 Subject: [PATCH] Improving documentation and adding french version --- configure.ac | 1 + doc/Makefile.am | 2 +- doc/en/advanced.rst | 120 +- doc/en/examples.rst | 331 ++--- doc/en/glossary.rst | 34 +- doc/en/index.rst | 2 +- doc/en/intro.rst | 20 +- doc/en/reference.rst | 342 ++--- doc/en/theory.rst | 115 +- doc/en/using.rst | 85 +- doc/fr/Makefile.am | 148 +++ doc/fr/advanced.rst | 241 ++++ doc/fr/bibliography.rst | 33 + doc/fr/conf.py | 321 +++++ doc/fr/examples.rst | 650 ++++++++++ doc/fr/glossary.rst | 89 ++ doc/fr/images/ADAO_logo.png | Bin 0 -> 18263 bytes doc/fr/images/adao_activate.png | Bin 0 -> 16850 bytes doc/fr/images/adao_exporttoyacs.png | Bin 0 -> 33514 bytes doc/fr/images/adao_jdcexample01.png | Bin 0 -> 62322 bytes doc/fr/images/adao_jdcexample02.png | Bin 0 -> 49322 bytes doc/fr/images/adao_scriptentry01.png | Bin 0 -> 46241 bytes doc/fr/images/adao_scriptentry02.png | Bin 0 -> 45355 bytes doc/fr/images/adao_viewer.png | Bin 0 -> 55679 bytes doc/fr/images/eficas_close.png | Bin 0 -> 1260 bytes doc/fr/images/eficas_covariance_matrix.png | Bin 0 -> 36836 bytes doc/fr/images/eficas_new.png | Bin 0 -> 667 bytes doc/fr/images/eficas_open.png | Bin 0 -> 2232 bytes doc/fr/images/eficas_operator_function.png | Bin 0 -> 42679 bytes doc/fr/images/eficas_save.png | Bin 0 -> 872 bytes doc/fr/images/eficas_saveas.png | Bin 0 -> 1139 bytes doc/fr/images/eficas_yacs.png | Bin 0 -> 563 bytes doc/fr/images/yacs_compile.png | Bin 0 -> 1211 bytes doc/fr/images/yacs_containerlog.png | Bin 0 -> 194748 bytes doc/fr/images/yacs_generatedscheme.png | Bin 0 -> 105758 bytes doc/fr/index.rst | 68 + doc/fr/intro.rst | 26 + doc/fr/reference.rst | 1317 ++++++++++++++++++++ doc/fr/resources/ADAO.png | Bin 0 -> 5479 bytes doc/fr/resources/ADAO_large.png | Bin 0 -> 18263 bytes doc/fr/resources/ADAO_small.png | Bin 0 -> 755 bytes doc/fr/resources/ADAO_small_rouge.png | Bin 0 -> 645 bytes doc/fr/resources/ADAO_small_vert.png | Bin 0 -> 896 bytes doc/fr/resources/ADAOlogo.svg | 170 +++ doc/fr/theory.rst | 314 +++++ doc/fr/using.rst | 232 ++++ resources/SalomeApp.xml | 3 +- 47 files changed, 4170 insertions(+), 494 deletions(-) create mode 100644 doc/fr/Makefile.am create mode 100644 doc/fr/advanced.rst create mode 100644 doc/fr/bibliography.rst create mode 100644 doc/fr/conf.py create mode 100644 doc/fr/examples.rst create mode 100644 doc/fr/glossary.rst create mode 100644 doc/fr/images/ADAO_logo.png create mode 100644 doc/fr/images/adao_activate.png create mode 100644 doc/fr/images/adao_exporttoyacs.png create mode 100644 doc/fr/images/adao_jdcexample01.png create mode 100644 doc/fr/images/adao_jdcexample02.png create mode 100644 doc/fr/images/adao_scriptentry01.png create mode 100644 doc/fr/images/adao_scriptentry02.png create mode 100644 doc/fr/images/adao_viewer.png create mode 100644 doc/fr/images/eficas_close.png create mode 100644 doc/fr/images/eficas_covariance_matrix.png create mode 100644 doc/fr/images/eficas_new.png create mode 100644 doc/fr/images/eficas_open.png create mode 100644 doc/fr/images/eficas_operator_function.png create mode 100644 doc/fr/images/eficas_save.png create mode 100644 doc/fr/images/eficas_saveas.png create mode 100644 doc/fr/images/eficas_yacs.png create mode 100644 doc/fr/images/yacs_compile.png create mode 100644 doc/fr/images/yacs_containerlog.png create mode 100644 doc/fr/images/yacs_generatedscheme.png create mode 100644 doc/fr/index.rst create mode 100644 doc/fr/intro.rst create mode 100644 doc/fr/reference.rst create mode 100644 doc/fr/resources/ADAO.png create mode 100644 doc/fr/resources/ADAO_large.png create mode 100644 doc/fr/resources/ADAO_small.png create mode 100644 doc/fr/resources/ADAO_small_rouge.png create mode 100644 doc/fr/resources/ADAO_small_vert.png create mode 100644 doc/fr/resources/ADAOlogo.svg create mode 100644 doc/fr/theory.rst create mode 100644 doc/fr/using.rst diff --git a/configure.ac b/configure.ac index 1cadb70..622ef26 100644 --- a/configure.ac +++ b/configure.ac @@ -141,5 +141,6 @@ AC_CONFIG_FILES([ bin/qtEficas_adao_study.py doc/Makefile doc/en/Makefile + doc/fr/Makefile ]) AC_OUTPUT diff --git a/doc/Makefile.am b/doc/Makefile.am index eb8301c..1197a3d 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -18,4 +18,4 @@ # # Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D -SUBDIRS = en +SUBDIRS = en fr diff --git a/doc/en/advanced.rst b/doc/en/advanced.rst index f7d2cec..4fabcaa 100644 --- a/doc/en/advanced.rst +++ b/doc/en/advanced.rst @@ -5,33 +5,34 @@ Advanced usage of the ADAO module ================================================================================ This section presents advanced methods to use the ADAO module, how to get more -information, or how to use it without the graphical user interface (GUI). It -requires to know how to find files or commands included inside the whole SALOME -installation. All the names to be replaced by user are indicated by the -following syntax ``<...>``. +information during calculation, or how to use it without the graphical user +interface (GUI). It requires to know how to find files or commands included +inside the whole SALOME installation. All the names to be replaced by user are +indicated by the syntax ``<...>``. Converting and executing an ADAO command file (JDC) using a shell script ------------------------------------------------------------------------ -It is possible to convert and execute an ADAO command file (JDC, or ".comm" -file, which resides in ````) automatically by using a -template script containing all the required steps. The user has to know where -are the main SALOME scripts, and in particular the ``runAppli`` one. The -directory in which this script resides is symbolically named ```` and has to be replaced by the good one in the template. - -When an ADAO command file is build by the ADAO GUI editor and saved, if it is -named for example "AdaoStudy1.comm", then a companion file named "AdaoStudy1.py" -is automatically created in the same directory. It is named ```` in the template, and it is converted to YACS as an ````. After that, it can be executed in console mode using the standard -YACS console command (see YACS documentation for more information). +It is possible to convert and execute an ADAO command file (JDC, or ".comm/.py" +files pair, which resides in ````) automatically by +using a template shell script containing all the required steps. The user has to +know where are the main SALOME launching files, and in particular the +``runAppli`` one. The directory in which this script resides is symbolically +named ```` and has to be replaced by the good one +in the shell file template. + +When an ADAO command file is build by the ADAO GUI EFICAS editor and saved, if +it is named for example "AdaoStudy1.comm", then a companion file named +"AdaoStudy1.py" is automatically created in the same directory. It is named +```` in the template, and it is converted to YACS as an +````. After that, it can be executed in console mode using +the standard YACS console command (see YACS documentation for more information). In the example, we choose to start and stop the SALOME application server in the same script, which is not necessary, but useful to avoid stalling SALOME -sessions. We choose also to remove the ```` because it is -a generated one. You only need to replace the text between these symbols -``<...>`` to use it. +sessions. We choose also to remove the ```` file because +it is a generated one. The user of this script only need to replace the text +between these symbols ``<...>``. The template of the shell script is the following:: @@ -54,7 +55,7 @@ Running an ADAO calculation scheme in YACS using a TUI user mode This section describes how to execute in TUI (Text User Interface) mode a YACS calculation scheme, obtained using the ADAO "Export to YACS" function. It uses the standard YACS TUI mode, which is briefly recalled here (see YACS -documentation for more information) through a simple example. As seen in +documentation for more information) through a simple example. As described in documentation, a XML scheme can be loaded in a Python. We give here a whole sequence of command lines to test the validity of the scheme before executing it, adding some initial supplementary ones to explicitly load the types catalog @@ -105,41 +106,41 @@ results for further use. Getting information on special variables during the ADAO calculation in YACS ----------------------------------------------------------------------------- -Some special variables, used during calculations, can be monitored during the -ADAO calculation in YACS. These variables can be printed, plotted, saved, etc. -This can be done using "*observers*", that are scripts associated with one -variable. In order to use this feature, one has to build scripts using as -standard inputs (available in the namespace) the variables ``var`` and ``info``. -The variable ``var`` is to be used in the same way as for the final ADD object, -that is as a list/tuple object. +Some special internal optimization variables, used during calculations, can be +monitored during the ADAO calculation in YACS. These variables can be printed, +plotted, saved, etc. This can be done using "*observers*", that are scripts, +each associated with one variable. In order to use this feature, the user has to +build scripts using as standard inputs (e.g. available in the namespace) the +variables ``var`` and ``info``. The variable ``var`` is to be used in the same +way as for the final ADD object, that is as a list/tuple object. Some templates are available when editing the ADAO case in EFICAS editor. These -simple scripts can be customized by the user, either at the EFICAS edition stage -or at the YACS edition stage, to improve the tuning of the ADAO calculation in -YACS. +simple scripts can be customized by the user, either at the EFICAS edition +stage, or at the YACS edition stage, to improve the tuning of the ADAO +calculation in YACS. As an example, here is one very simple script (similar to the "*ValuePrinter*" template) used to print the value of one monitored variable:: print " --->",info," Value =",var[-1] -Stored in a python file, this script can be associated to each variable +Stored in a Python file, this script can be associated to each variable available in the "*SELECTION*" keyword of the "*Observers*" command: "*Analysis*", "*CurrentState*", "*CostFunction*"... The current value of the variable will be printed at each step of the optimization or assimilation -algorithm. The observers can embed plotting capabilities, storage, printing, -etc. +algorithm. The observers can embed plotting capabilities, storage, complex +printing, statistical treatment, etc. Getting more information when running a calculation --------------------------------------------------- -When running, useful data and messages are logged. There are two ways to obtain -theses information. +When running a calculation, useful data and messages are logged. There are two +ways to obtain theses information. The first one, and the preferred way, is to use the built-in variable "*Debug*" -available in every ADAO case. It is available through the GUI of the module. -Setting it to "*1*" will send messages in the log window of the YACS scheme -execution. +available in every ADAO case. It is available through the edition GUI of the +module. Setting it to "*1*" will send messages in the log window of the YACS +scheme execution. The second one consist in using the "*logging*" native module of Python (see the Python documentation http://docs.python.org/library/logging.html for more @@ -148,7 +149,7 @@ scripts entries, the user can set the logging level in accordance to the needs of detailed informations. The different logging levels are: "*DEBUG*", "*INFO*", "*WARNING*", "*ERROR*", "*CRITICAL*". All the informations flagged with a certain level will be printed for whatever activated level above this particular -one (included). The easiest way is to change the log level is to write the +one (included). The easiest way is to change the log level by using the following Python lines:: import logging @@ -157,39 +158,43 @@ following Python lines:: The standard logging module default level is "*WARNING*", the default level in the ADAO module is "*INFO*". -It is also recommended to include in the simulation code some logging or debug -mechanisms and use them in conjunction with the two previous methods. But be -careful not to store too big variables because it cost time, whatever logging -level is chosen. +It is also recommended to include some logging or debug mechanisms in the +simulation code, and use them in conjunction with the two previous methods. But +be careful not to store too big variables because it cost time, whatever logging +level is chosen (that is, even if these variables are not printed). Switching from a version of ADAO to a newer one ----------------------------------------------- -The ADAO module and cases are identified as versions, with "Major", "Minor" and -"Revision" characteristics. A particular version is numbered as -"Major.Minor.Revision". +The ADAO module and its ".comm" case files are identified by versions, with +"Major", "Minor" and "Revision" characteristics. A particular version is +numbered as "Major.Minor.Revision", with strong link with the numbering of the +SALOME platform. -Each version of the ADAO module can read ADAO case files of the previous minor -version. In general, it can also read ADAO case files of all the previous minor -versions for one major branch. In general also, an ADAO case file for one -version can not be read by a previous minor or major version. +Each version "Major.Minor.Revision" of the ADAO module can read ADAO case files +of the previous minor version "Major.Minor-1.*". In general, it can also read +ADAO case files of all the previous minor versions for one major branch, but it +is not guaranteed for all the commands or keywords. In general also, an ADAO +case file for one version can not be read by a previous minor or major version +of the ADAO module. Switching from 6.6 to 7.2 +++++++++++++++++++++++++ -There is no known incompatibility for the ADAO case file. The upgrade procedure +There is no known incompatibility for the ADAO case files. The upgrade procedure is to read the old ADAO case file with the new SALOME/ADAO module, and save it with a new name. There is one incompatibility introduced for the post-processing or observer script files. The old syntax to call a result object, such as the "*Analysis*" -one in a script provided through the "*UserPostAnalysis*" keyword), was for +one (in a script provided through the "*UserPostAnalysis*" keyword), was for example:: Analysis = ADD.get("Analysis").valueserie(-1) Analysis = ADD.get("Analysis").valueserie() -The new syntax is entirely similar to the classical one of a list/tuple object:: +The new syntax is entirely similar to the (classical) one of a list or tuple +object:: Analysis = ADD.get("Analysis")[-1] Analysis = ADD.get("Analysis")[:] @@ -203,10 +208,11 @@ There is no known incompatibility for the ADAO case file. The upgrade procedure is to read the old ADAO case file with the new SALOME/ADAO module, and save it with a new name. -There is one incompatibility introduced for the designation of operators used to -for the observation operator. The new mandatory names are "*DirectOperator*", +There is one incompatibility introduced for the naming of operators used to for +the observation operator. The new mandatory names are "*DirectOperator*", "*TangentOperator*" and "*AdjointOperator*", as described in the last subsection -of the chapter :ref:`section_reference`. +of the chapter :ref:`section_reference`. The operator scripts has to be +modified. Switching from 6.4 to 6.5 +++++++++++++++++++++++++ diff --git a/doc/en/examples.rst b/doc/en/examples.rst index 3e1e032..3792e53 100644 --- a/doc/en/examples.rst +++ b/doc/en/examples.rst @@ -18,12 +18,17 @@ Tutorials on using the ADAO module :scale: 50% This section presents some examples on using the ADAO module in SALOME. The -first one shows how to build a simple data assimilation case defining -explicitly all the required data through the GUI. The second one shows, on the -same case, how to define data using external sources through scripts. +first one shows how to build a simple data assimilation case defining explicitly +all the required input data through the GUI. The second one shows, on the same +case, how to define input data using external sources through scripts. We +describe here always Python scripts because they can be directly inserted in +YACS script nodes, but external files can use other langages. -Building a simple estimation case with explicit data definition ---------------------------------------------------------------- +The mathematical notations used afterward are explained in the section +:ref:`section_theory`. + +Building an estimation case with explicit data definition +--------------------------------------------------------- This simple example is a demonstration one, and describes how to set a BLUE estimation framework in order to get *ponderated (or fully weighted) least @@ -32,49 +37,52 @@ square estimated state* of a system from an observation of the state and from an the weighted middle between the observation and the background vectors. All the numerical values of this example are arbitrary. -Experimental set up -+++++++++++++++++++ +Experimental setup +++++++++++++++++++ We choose to operate in a 3-dimensional space. 3D is chosen in order to restrict the size of numerical object to explicitly enter by the user, but the problem is -not dependant of the dimension and can be set in dimension 1000... The -observation :math:`\mathbf{y}^o` is of value 1 in each direction, so: +not dependant of the dimension and can be set in dimension 10, 100, 1000... The +observation :math:`\mathbf{y}^o` is of value 1 in each direction, so:: - ``Yo = [1 1 1]`` + Yo = [1 1 1] The background state :math:`\mathbf{x}^b`, which represent some *a priori* -knowledge or a regularization, is of value of 0 in each direction, which is: +knowledge or a mathematical regularization, is of value of 0 in each direction, +which is:: - ``Xb = [0 0 0]`` + Xb = [0 0 0] Data assimilation requires information on errors covariances :math:`\mathbf{R}` -and :math:`\mathbf{B}` respectively for observation and background variables. We -choose here to have uncorrelated errors (that is, diagonal matrices) and to have -the same variance of 1 for all variables (that is, identity matrices). We get: +and :math:`\mathbf{B}`, respectively for observation and background variables. +We choose here to have uncorrelated errors (that is, diagonal matrices) and to +have the same variance of 1 for all variables (that is, identity matrices). We +set:: - ``B = R = [1 0 0 ; 0 1 0 ; 0 0 1]`` + B = R = [1 0 0 ; 0 1 0 ; 0 0 1] Last, we need an observation operator :math:`\mathbf{H}` to convert the -background value in the space of observation value. Here, because the space -dimensions are the same, we can choose the identity as the observation -operator: +background value in the space of observation values. Here, because the space +dimensions are the same, we can choose the identity as the observation +operator:: - ``H = [1 0 0 ; 0 1 0 ; 0 0 1]`` + H = [1 0 0 ; 0 1 0 ; 0 0 1] -With such choices, the Best Linear Unbiased Estimator (BLUE) will be the average -vector between :math:`\mathbf{y}^o` and :math:`\mathbf{x}^b`, named the -*analysis* and denoted by :math:`\mathbf{x}^a`: +With such choices, the "Best Linear Unbiased Estimator" (BLUE) will be the +average vector between :math:`\mathbf{y}^o` and :math:`\mathbf{x}^b`, named the +*analysis*, denoted by :math:`\mathbf{x}^a`, and its value is:: - ``Xa = [0.5 0.5 0.5]`` + Xa = [0.5 0.5 0.5] -As en extension of this example, one can change the variances for -:math:`\mathbf{B}` or :math:`\mathbf{R}` independently, and the analysis will -move to :math:`\mathbf{y}^o` or to :math:`\mathbf{x}^b` in inverse proportion of -the variances in :math:`\mathbf{B}` and :math:`\mathbf{R}`. It is also +As an extension of this example, one can change the variances represented by +:math:`\mathbf{B}` or :math:`\mathbf{R}` independently, and the analysis +:math:`\mathbf{x}^a` will move to :math:`\mathbf{y}^o` or to +:math:`\mathbf{x}^b`, in inverse proportion of the variances in +:math:`\mathbf{B}` and :math:`\mathbf{R}`. As an other extension, it is also equivalent to search for the analysis thought a BLUE algorithm or a 3DVAR one. -Using the GUI to build the ADAO case -++++++++++++++++++++++++++++++++++++ +Using the graphical interface (GUI) to build the ADAO case +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ First, you have to activate the ADAO module by choosing the appropriate module button or menu of SALOME, and you will see: @@ -87,18 +95,18 @@ button or menu of SALOME, and you will see: **Activating the module ADAO in SALOME** Choose the "*New*" button in this window. You will directly get the EFICAS -interface for variables definition, along with the "*Object browser*". You can -then click on the "*New*" button |eficas_new| to create a new ADAO case, and you -will see: +interface for variables definition, along with the SALOME "*Object browser*". +You can then click on the "*New*" button |eficas_new| to create a new ADAO case, +and you will see: .. _adao_viewer: .. image:: images/adao_viewer.png :align: center :width: 100% .. centered:: - **The EFICAS viewer for cases definition in module ADAO** + **The EFICAS editor for cases definition in module ADAO** -Then fill in the variables to build the ADAO case by using the experimental set +Then, fill in the variables to build the ADAO case by using the experimental set up described above. All the technical information given above will be directly inserted in the ADAO case definition, by using the *String* type for all the variables. When the case definition is ready, save it to a "*JDC (\*.comm)*" @@ -113,7 +121,7 @@ looks like this: :align: center :width: 100% .. centered:: - **Definition of the experimental set up chosen for the ADAO case** + **Definition of the experimental setup chosen for the ADAO case** To go further, we need now to generate the YACS scheme from the ADAO case definition. In order to do that, right click on the name of the file case in the @@ -128,9 +136,10 @@ definition. In order to do that, right click on the name of the file case in the **"Export to YACS" sub-menu to generate the YACS scheme from the ADAO case** This command will generate the YACS scheme, activate YACS module in SALOME, and -open the new scheme in the GUI of the YACS module [#]_. After reordering the -nodes by using the "*arrange local node*" sub-menu of the YACS graphical view of -the scheme, you get the following representation of the generated ADAO scheme: +open the new scheme in the GUI of the YACS module [#]_. After eventually +reordering the nodes by using the "*arrange local nodes*" sub-menu of the YACS +graphical view of the scheme, you get the following representation of the +generated ADAO scheme: .. _yacs_generatedscheme: .. image:: images/yacs_generatedscheme.png @@ -140,17 +149,18 @@ the scheme, you get the following representation of the generated ADAO scheme: **YACS generated scheme from the ADAO case** After that point, all the modifications, executions and post-processing of the -data assimilation scheme will be done in YACS. In order to check the result in a -simple way, we create here a new YACS node by using the "*in-line script node*" -sub-menu of the YACS graphical view, and we name it "*PostProcessing*". +data assimilation scheme will be done in the YACS module. In order to check the +result in a simple way, we create here a new YACS node by using the "*in-line +script node*" sub-menu of the YACS graphical view, and we name it +"*PostProcessing*". -This script will retrieve the data assimilation analysis from the +This script node will retrieve the data assimilation analysis from the "*algoResults*" output port of the computation bloc (which gives access to a SALOME Python Object), and will print it on the standard output. To obtain this, the in-line script node need to have an input port of type -"*pyobj*" named "*results*" for example, that have to be linked graphically to -the "*algoResults*" output port of the computation bloc. Then the code to fill +"*pyobj*", named "*results*" for example, that have to be linked graphically to +the "*algoResults*" output port of the computation bloc. Then, the code to fill in the script node is:: Xa = results.ADD.get("Analysis")[-1] @@ -160,15 +170,15 @@ in the script node is:: print The augmented YACS scheme can be saved (overwriting the generated scheme if the -simple "*Save*" command or button are used, or with a new name). Ideally, the -implementation of such post-processing procedure can be done in YACS to test, -and then entirely saved in one script that can be integrated in the ADAO case by -using the keyword "*UserPostAnalysis*". +"*Save*" command or button are used, or with a new name through the "*Save as*" +command). Ideally, the implementation of such post-processing procedure can be +done in YACS to test, and then entirely saved in one Python script that can be +integrated in the ADAO case by using the keyword "*UserPostAnalysis*". -Then, classically in YACS, it have to be prepared for run, and then executed. -After completion, the printing on standard output is available in the "*YACS -Container Log*", obtained through the right click menu of the "*proc*" window in -the YACS scheme as shown below: +Then, classically in YACS, the scheme have to be compiled for run, and then +executed. After completion, the printing on standard output is available in the +"*YACS Container Log*", obtained through the right click menu of the "*proc*" +window in the YACS scheme as shown below: .. _yacs_containerlog: .. image:: images/yacs_containerlog.png @@ -197,22 +207,23 @@ shown by the following figure: .. centered:: **Defining an ADAO 3DVAR case looks completely similar to a BLUE case** -There is only one command changing, with "*3DVAR*" value instead of "*Blue*". +There is only one command changing, with "*3DVAR*" value in the "*Algorithm*" +field instead of "*Blue*". -Building a simple estimation case with external data definition by scripts --------------------------------------------------------------------------- +Building a estimation case with external data definition by scripts +------------------------------------------------------------------- It is useful to get parts or all of the data from external definition, using Python script files to provide access to the data. As an example, we build here -an ADAO case representing the same experimental set up as in the above example -`Building a simple estimation case with explicit data definition`_, but using -data form a single one external Python script file. +an ADAO case representing the same experimental setup as in the above example +`Building an estimation case with explicit data definition`_, but using data +from a single one external Python script file. First, we write the following script file, using conventional names for the -desired variables. Here, all the input variables are defined in the script, but -the user can choose to split the file in several ones, or to mix explicit data -definition in the ADAO GUI and implicit data definition by external files. The -present script looks like:: +required variables. Here, all the input variables are defined in the same +script, but the user can choose to split the file in several ones, or to mix +explicit data definition in the ADAO GUI and implicit data definition by +external files. The present script file looks like:: import numpy # @@ -237,16 +248,19 @@ present script looks like:: ObservationOperator = numpy.identity(3) The names of the Python variables above are mandatory, in order to define the -right variables, but the Python script can be bigger and define classes, -functions, etc. with other names. It shows different ways to define arrays and -matrices, using list, string (as in Numpy or Octave), Numpy array type or Numpy -matrix type, and Numpy special functions. All of these syntax are valid. - -After saving this script somewhere in your path (named here "*script.py*" for -the example), we use the GUI to build the ADAO case. The procedure to fill in -the case is similar except that, instead of selecting the "*String*" option for -the "*FROM*" keyword, we select the "*Script*" one. This leads to a -"*SCRIPT_DATA/SCRIPT_FILE*" entry in the tree, allowing to choose a file as: +right case variables, but the Python script can be bigger and define classes, +functions, file or database access, etc. with other names. Moreover, the above +script shows different ways to define arrays and matrices, using list, string +(as in Numpy or Octave), Numpy array type or Numpy matrix type, and Numpy +special functions. All of these syntax are valid. + +After saving this script in a file (named here "*script.py*" for the example) +somewhere in your path, we use the graphical interface (GUI) to build the ADAO +case. The procedure to fill in the case is similar to the previous example +except that, instead of selecting the "*String*" option for the "*FROM*" keyword +of each variable, we select the "*Script*" one. This leads to a +"*SCRIPT_DATA/SCRIPT_FILE*" entry in the graphical tree, allowing to choose a +file as: .. _adao_scriptentry01: .. image:: images/adao_scriptentry01.png @@ -255,32 +269,27 @@ the "*FROM*" keyword, we select the "*Script*" one. This leads to a .. centered:: **Defining an input value using an external script file** -Other steps and results are exactly the same as in the `Building a simple -estimation case with explicit data definition`_ previous example. +Other steps and results are exactly the same as in the `Building an estimation +case with explicit data definition`_ previous example. -In fact, this script methodology allows to retrieve data from in-line or previous -calculations, from static files, from database or from stream, all of them -outside of SALOME. It allows also to modify easily some input data, for example -for debug purpose or for repetitive execution process, and it is the most -versatile method in order to parametrize the input data. **But be careful, -script methodology is not a "safe" procedure, in the sense that erroneous -data, or errors in calculations, can be directly injected into the YACS scheme -execution.** +In fact, this script methodology is the easiest way to retrieve data from +in-line or previous calculations, from static files, from database or from +stream, all of them inside or outside of SALOME. It allows also to modify easily +some input data, for example for debug purpose or for repetitive execution +process, and it is the most versatile method in order to parametrize the input +data. **But be careful, script methodology is not a "safe" procedure, in the +sense that erroneous data, or errors in calculations, can be directly injected +into the YACS scheme execution.** Adding parameters to control the data assimilation algorithm ------------------------------------------------------------ One can add some optional parameters to control the data assimilation algorithm calculation. This is done by using the "*AlgorithmParameters*" keyword in the -definition of the ADAO case, which is an keyword of the ASSIMILATION_STUDY. This -keyword requires a Python dictionary, containing some key/value pairs. The list -of possible optional parameters are given in the subsection -:ref:`section_reference`. - -If no bounds at all are required on the control variables, then one can choose -the "BFGS" or "CG" minimisation algorithm for the 3DVAR algorithm. For -constrained optimization, the minimizer "LBFGSB" is often more robust, but the -"TNC" is sometimes more performant. +definition of the ADAO case, which is an keyword of the "*ASSIMILATION_STUDY*" +general command. This keyword requires a Python dictionary, containing some +key/value pairs. The list of possible optional parameters are given in the +subsection :ref:`section_reference`. This dictionary has to be defined, for example, in an external Python script file, using the mandatory variable name "*AlgorithmParameters*" for the @@ -292,6 +301,12 @@ default values, and can exist without being used. For example:: "MaximumNumberOfSteps" : 10, } +If no bounds at all are required on the control variables, then one can choose +the "*BFGS*" or "*CG*" minimisation algorithm for all the variational data +assimilation or optimization algorithms. For constrained optimization, the +minimizer "*LBFGSB*" is often more robust, but the "*TNC*" is sometimes more +performant. + Then the script can be added to the ADAO case, in a file entry describing the "*AlgorithmParameters*" keyword, as follows: @@ -300,52 +315,52 @@ Then the script can be added to the ADAO case, in a file entry describing the :align: center :width: 100% .. centered:: - **Adding parameters to control the algorithm** + **Adding parameters to control the algorithm and the outputs** -Other steps and results are exactly the same as in the `Building a simple -estimation case with explicit data definition`_ previous example. The dictionary -can also be directly given in the input field associated with the keyword. +Other steps and results are exactly the same as in the `Building an estimation +case with explicit data definition`_ previous example. The dictionary can also +be directly given in the input field of string type associated for the keyword. Building a complex case with external data definition by scripts ---------------------------------------------------------------- This more complex and complete example has to been considered as a framework for -user inputs, that need to be tailored for each real application. Nevertheless, -the file skeletons are sufficiently general to have been used for various -applications in neutronic, fluid mechanics... Here, we will not focus on the -results, but more on the user control of inputs and outputs in an ADAO case. As -previously, all the numerical values of this example are arbitrary. - -The objective is to set up the input and output definitions of a physical case -by external python scripts, using a general non-linear operator, adding control -on parameters and so on... The complete framework scripts can be found in the -ADAO skeletons examples directory under the name +user inputs treatment, that need to be tailored for each real application. +Nevertheless, the file skeletons are sufficiently general to have been used for +various applications in neutronic, fluid mechanics... Here, we will not focus on +the results, but more on the user control of inputs and outputs in an ADAO case. +As previously, all the numerical values of this example are arbitrary. + +The objective is to setup the input and output definitions of a physical +estimation case by external python scripts, using a general non-linear operator, +adding control on parameters and so on... The complete framework scripts can be +found in the ADAO skeletons examples directory under the name "*External_data_definition_by_scripts*". -Experimental set up -+++++++++++++++++++ +Experimental setup +++++++++++++++++++ We continue to operate in a 3-dimensional space, in order to restrict the size of numerical object shown in the scripts, but the problem is -not dependant of the dimension. +not dependant of the dimension. We choose a twin experiment context, using a known true state -:math:`\mathbf{x}^t` of arbitrary values: +:math:`\mathbf{x}^t` but of arbitrary value:: - ``Xt = [1 2 3]`` + Xt = [1 2 3] The background state :math:`\mathbf{x}^b`, which represent some *a priori* -knowledge of the true state, is build as a normal random perturbation of 20% the -true state :math:`\mathbf{x}^t` for each component, which is: +knowledge of the true state, is build as a normal random perturbation of 20% of +the true state :math:`\mathbf{x}^t` for each component, which is:: - ``Xb = Xt + normal(0, 20%*Xt)`` + Xb = Xt + normal(0, 20%*Xt) To describe the background error covariances matrix :math:`\mathbf{B}`, we make as previously the hypothesis of uncorrelated errors (that is, a diagonal matrix, of size 3x3 because :math:`\mathbf{x}^b` is of lenght 3) and to have the same -variance of 0.1 for all variables. We get: +variance of 0.1 for all variables. We get:: - ``B = 0.1 * diagonal( length(Xb) )`` + B = 0.1 * diagonal( length(Xb) ) We suppose that there exist an observation operator :math:`\mathbf{H}`, which can be non linear. In real calibration procedure or inverse problems, the @@ -356,23 +371,24 @@ approximated gradient in this case. Being in twin experiments, the observation :math:`\mathbf{y}^o` and its error covariances matrix :math:`\mathbf{R}` are generated by using the true state -:math:`\mathbf{x}^t` and the observation operator :math:`\mathbf{H}`: +:math:`\mathbf{x}^t` and the observation operator :math:`\mathbf{H}`:: - ``Yo = H( Xt )`` + Yo = H( Xt ) -and, with an arbitrary standard deviation of 1% on each error component: +and, with an arbitrary standard deviation of 1% on each error component:: - ``R = 0.0001 * diagonal( lenght(Yo) )`` + R = 0.0001 * diagonal( lenght(Yo) ) -All the required data assimilation informations are then defined. +All the informations required for estimation by data assimilation are then +defined. Skeletons of the scripts describing the setup +++++++++++++++++++++++++++++++++++++++++++++ -We give here the essential parts of each script used afterwards to build the ADAO -case. Remember that using these scripts in real Python files requires to +We give here the essential parts of each script used afterwards to build the +ADAO case. Remember that using these scripts in real Python files requires to correctly define the path to imported modules or codes (even if the module is in -the same directory that the importing Python file ; we indicate the path +the same directory that the importing Python file. We indicate the path adjustment using the mention ``"# INSERT PHYSICAL SCRIPT PATH"``), the encoding if necessary, etc. The indicated file names for the following scripts are arbitrary. Examples of complete file scripts are available in the ADAO examples @@ -401,9 +417,9 @@ building function, in a Python script file named return S We can then define the background state :math:`\mathbf{x}^b` as a random -perturbation of the true state, adding at the end of the script the definition -of a *required ADAO variable* in order to export the defined value. It is done -in a Python script file named ``Script_Background_xb.py``:: +perturbation of the true state, adding a *required ADAO variable* at the end of +the script the definition, in order to export the defined value. It is done in a +Python script file named ``Script_Background_xb.py``:: from Physical_data_and_covariance_matrices import True_state import numpy @@ -419,7 +435,7 @@ in a Python script file named ``Script_Background_xb.py``:: Background = list(xb) In the same way, we define the background error covariance matrix -:math:`\mathbf{B}` as a diagonal matrix of the same diagonal length as the +:math:`\mathbf{B}` as a diagonal matrix, of the same diagonal length as the background of the true state, using the convenient function already defined. It is done in a Python script file named ``Script_BackgroundError_B.py``:: @@ -455,15 +471,16 @@ convenience:: # return numpy.array( HX ) -We does not need the operators ``"TangentOperator"`` and ``"AdjointOperator"`` -because they will be approximated using ADAO capabilities. +We does not need the linear compagnion operators ``"TangentOperator"`` and +``"AdjointOperator"`` because they will be approximated using ADAO capabilities. We insist on the fact that these non-linear operator ``"DirectOperator"``, tangent operator ``"TangentOperator"`` and adjoint operator ``"AdjointOperator"`` come from the physical knowledge, include the reference -physical simulation code and its eventual adjoint, and have to be carefully set -up by the data assimilation user. The errors in or missuses of the operators can -not be detected or corrected by the data assimilation framework alone. +physical simulation code, and have to be carefully setup by the data +assimilation or optimization user. The simulation errors or missuses of the +operators can not be detected or corrected by the data assimilation and +optimization ADAO framework alone. In this twin experiments framework, the observation :math:`\mathbf{y}^o` and its error covariances matrix :math:`\mathbf{R}` can be generated. It is done in two @@ -496,8 +513,8 @@ and the second one named ``Script_ObservationError_R.py``:: ObservationError = R As in previous examples, it can be useful to define some parameters for the data -assimilation algorithm. For example, if we use the standard 3DVAR algorithm, the -following parameters can be defined in a Python script file named +assimilation algorithm. For example, if we use the standard "*3DVAR*" algorithm, +the following parameters can be defined in a Python script file named ``Script_AlgorithmParameters.py``:: # Creating the required ADAO variable @@ -514,9 +531,9 @@ following parameters can be defined in a Python script file named Finally, it is common to post-process the results, retrieving them after the data assimilation phase in order to analyze, print or show them. It requires to -use a intermediary Python script file in order to extract these results. The -following example Python script file named ``Script_UserPostAnalysis.py``, -illustrates the fact:: +use a intermediary Python script file in order to extract these results at the +end of the adata assimilation or optimization process. The following example +Python script file, named ``Script_UserPostAnalysis.py``, illustrates the fact:: from Physical_data_and_covariance_matrices import True_state import numpy @@ -533,7 +550,7 @@ illustrates the fact:: print "xa = %s"%numpy.array(xa) print for i in range( len(x_series) ): - print "Step %2i : J = %.5e et X = %s"%(i, J[i], x_series[i]) + print "Step %2i : J = %.5e and X = %s"%(i, J[i], x_series[i]) print At the end, we get a description of the whole case setup through a set of files @@ -549,8 +566,8 @@ listed here: #. ``Script_UserPostAnalysis.py`` We insist here that all these scripts are written by the user and can not be -automatically tested. So the user is required to verify the scripts (and in -particular their input/output) in order to limit the difficulty of debug. We +automatically tested by ADAO. So the user is required to verify the scripts (and +in particular their input/output) in order to limit the difficulty of debug. We recall: **script methodology is not a "safe" procedure, in the sense that erroneous data, or errors in calculations, can be directly injected into the YACS scheme execution.** @@ -568,7 +585,7 @@ keyword, we choose the "*ScriptWithOneFunction*" form and keep the default differential increment. The other steps to build the ADAO case are exactly the same as in the `Building -a simple estimation case with explicit data definition`_ previous section. +an estimation case with explicit data definition`_ previous section. Using the simple linear operator :math:`\mathbf{H}` from the Python script file ``Physical_simulation_functions.py`` in the ADAO examples standard directory, @@ -577,22 +594,22 @@ the results will look like:: xt = [1 2 3] xa = [ 1.000014 2.000458 3.000390] - Step 0 : J = 1.81750e+03 et X = [1.014011, 2.459175, 3.390462] - Step 1 : J = 1.81750e+03 et X = [1.014011, 2.459175, 3.390462] - Step 2 : J = 1.79734e+01 et X = [1.010771, 2.040342, 2.961378] - Step 3 : J = 1.79734e+01 et X = [1.010771, 2.040342, 2.961378] - Step 4 : J = 1.81909e+00 et X = [1.000826, 2.000352, 3.000487] - Step 5 : J = 1.81909e+00 et X = [1.000826, 2.000352, 3.000487] - Step 6 : J = 1.81641e+00 et X = [1.000247, 2.000651, 3.000156] - Step 7 : J = 1.81641e+00 et X = [1.000247, 2.000651, 3.000156] - Step 8 : J = 1.81569e+00 et X = [1.000015, 2.000432, 3.000364] - Step 9 : J = 1.81569e+00 et X = [1.000015, 2.000432, 3.000364] - Step 10 : J = 1.81568e+00 et X = [1.000013, 2.000458, 3.000390] + Step 0 : J = 1.81750e+03 and X = [1.014011, 2.459175, 3.390462] + Step 1 : J = 1.81750e+03 and X = [1.014011, 2.459175, 3.390462] + Step 2 : J = 1.79734e+01 and X = [1.010771, 2.040342, 2.961378] + Step 3 : J = 1.79734e+01 and X = [1.010771, 2.040342, 2.961378] + Step 4 : J = 1.81909e+00 and X = [1.000826, 2.000352, 3.000487] + Step 5 : J = 1.81909e+00 and X = [1.000826, 2.000352, 3.000487] + Step 6 : J = 1.81641e+00 and X = [1.000247, 2.000651, 3.000156] + Step 7 : J = 1.81641e+00 and X = [1.000247, 2.000651, 3.000156] + Step 8 : J = 1.81569e+00 and X = [1.000015, 2.000432, 3.000364] + Step 9 : J = 1.81569e+00 and X = [1.000015, 2.000432, 3.000364] + Step 10 : J = 1.81568e+00 and X = [1.000013, 2.000458, 3.000390] ... The state at the first step is the randomly generated background state -:math:`\mathbf{x}^b`. After completion, these printing on standard output is -available in the "*YACS Container Log*", obtained through the right click menu -of the "*proc*" window in the YACS scheme. +:math:`\mathbf{x}^b`. During calculation, these printings on standard output are +available in the "*YACS Container Log*" window, obtained through the right click +menu of the "*proc*" window in the YACS executed scheme. -.. [#] For more information on YACS, see the the *YACS module User's Guide* available in the main "*Help*" menu of SALOME GUI. +.. [#] For more information on YACS, see the *YACS module User's Guide* available in the main "*Help*" menu of SALOME platform. diff --git a/doc/en/glossary.rst b/doc/en/glossary.rst index 81f0654..adb2388 100644 --- a/doc/en/glossary.rst +++ b/doc/en/glossary.rst @@ -7,28 +7,27 @@ Glossary :sorted: case - One case is defined by a set of data and of choices, packed together + One ADAO case is defined by a set of data and of choices, packed together through the user interface of the module. The data are physical - measurements that have to be available before or during the case - execution. The simulation code(s) and the assimilation methods and - parameters has to be chosen, they define the execution properties of the - case. + measurements that have technically to be available before or during the + case execution. The simulation code(s) and the data assimilation or + optimization method, and their parameters, has to be chosen, they define + the execution properties of the case. iteration One iteration occurs when using iterative optimizers (e.g. 3DVAR), and it is entirely hidden in the main YACS OptimizerLoop Node named - "compute_bloc". Nevertheless, the user can watch the iterative process - through the *YACS Container Log* window, which is updated during the - process, and using *Observers* attached to calculation variables. + "*compute_bloc*". Nevertheless, the user can watch the iterative process + through the "*YACS Container Log*" window, which is updated during the + process, and using "*Observers*" attached to calculation variables. APosterioriCovariance Keyword to indicate the covariance matrix of *a posteriori* analysis errors. BMA (Background minus Analysis) - Difference between the simulation based on the background state and the - one base on the optimal state estimation, noted as :math:`\mathbf{x}^b - - \mathbf{x}^a`. + Difference between the background state and the optimal state estimation, + noted as :math:`\mathbf{x}^b - \mathbf{x}^a`. OMA (Observation minus Analysis) Difference between the observations and the result of the simulation based @@ -44,21 +43,28 @@ Glossary SigmaBck2 Keyword to indicate the Desroziers-Ivanov parameter measuring the background part consistency of the data assimilation optimal state - estimation. It can be compared to 1. + estimation. Its value can be compared to 1, a "good" estimation leading to + a parameter "close" to 1. SigmaObs2 Keyword to indicate the Desroziers-Ivanov parameter measuring the observation part consistency of the data assimilation optimal state - estimation. It can be compared to 1. + estimation. Its value can be compared to 1, a "good" estimation leading to + a parameter "close" to 1. MahalanobisConsistency Keyword to indicate the Mahalanobis parameter measuring the consistency of - the data assimilation optimal state estimation. It can be compared to 1. + the data assimilation optimal state estimation. Its value can be compared + to 1, a "good" estimation leading to a parameter "close" to 1. analysis The optimal state estimation through a data assimilation or optimization procedure. + background + The *a priori* known state, which is not optimal, and is used as a rought + estimate, or a "best estimate", before an optimal estimation. + innovation Difference between the observations and the result of the simulation based on the background state, filtered to be compatible with the observation. diff --git a/doc/en/index.rst b/doc/en/index.rst index c655115..0b896a5 100644 --- a/doc/en/index.rst +++ b/doc/en/index.rst @@ -1,5 +1,5 @@ ================================================================================ -ADAO module documentation +ADAO documentation ================================================================================ .. image:: images/ADAO_logo.png diff --git a/doc/en/intro.rst b/doc/en/intro.rst index 044a6ea..1e5095b 100644 --- a/doc/en/intro.rst +++ b/doc/en/intro.rst @@ -5,12 +5,12 @@ Introduction to ADAO ================================================================================ The aim of the ADAO module is **to help using data assimilation or optimization -methodology in conjunction with other modules in SALOME**. The ADAO module -provides interface to some standard algorithms of data assimilation or -optimization, and allows integration of them in a SALOME study. Calculation or -simulation modules have to provide one or more specific calling methods in order -to ba callable in the SALOME/ADAO framework, and all the SALOME modules can be -used throught YACS integration of ADAO. +methodology in conjunction with other modules or simulation codes in SALOME**. +The ADAO module provides interface to some standard algorithms of data +assimilation or optimization, and allows integration of their use in a SALOME +study. Calculation or simulation modules have to provide one or more specific +calling methods in order to be callable in the SALOME/ADAO framework, and all +the SALOME modules can be used throught YACS integration of ADAO. Its main objective is to *facilitate the use of various standard data assimilation or optimization methods*, while remaining easy to use and providing @@ -18,7 +18,7 @@ a path to help the implementation. For an end user, having already gathered his physical input information, it's a matter of "point\&click" to build an ADAO valid case and to evaluate it. -The module covers a wide variety of practical applications in a robust way, -allowing real engineering applications but also quick experimental setup to be -performed. Its methodological and numerical scalability gives way to extend the -application domain. +The module covers a wide variety of practical applications, in a robust way, +allowing real engineering applications but also quick experimental methodology +setup to be performed. Its methodological and numerical scalability gives way to +extend the application domain. diff --git a/doc/en/reference.rst b/doc/en/reference.rst index a9a280a..e05d887 100644 --- a/doc/en/reference.rst +++ b/doc/en/reference.rst @@ -37,26 +37,26 @@ Each ADAO variable has a pseudo-type to help filling it and validation. The different pseudo-types are: **Dict** - This indicates a variable that has to be filled by a dictionary, usually - given either as a string or as a script. + This indicates a variable that has to be filled by a Python dictionary + ``{"key":"value...}``, usually given either as a string or as a script file. **Function** - This indicates a variable that has to be filled by a function, usually given - as a script or a component method. + This indicates a variable that has to be filled by a Python function, + usually given as a script file or a component method. **Matrix** This indicates a variable that has to be filled by a matrix, usually given - either as a string or as a script. + either as a string or as a script file. **ScalarSparseMatrix** - This indicates a variable that has to be filled by a unique number, which - will be used to multiply an identity matrix, usually given either as a - string or as a script. + This indicates a variable that has to be filled by a unique number (which + will be used to multiply an identity matrix), usually given either as a + string or as a script file. **DiagonalSparseMatrix** - This indicates a variable that has to be filled by a vector, which will be - over the diagonal of an identity matrix, usually given either as a string or - as a script. + This indicates a variable that has to be filled by a vector (which will be + used to replace the diagonal of an identity matrix), usually given either as + a string or as a script file. **Script** This indicates a script given as an external file. It can be described by a @@ -66,19 +66,21 @@ different pseudo-types are: **String** This indicates a string giving a literal representation of a matrix, a - vector or a vector serie, such as "1 2 ; 3 4" for a square 2x2 matrix. + vector or a vector serie, such as "1 2 ; 3 4" or "[[1,2],[3,4]]" for a + square 2x2 matrix. **Vector** This indicates a variable that has to be filled by a vector, usually given - either as a string or as a script. + either as a string or as a script file. -**VectorSerie** This indicates a variable that has to be filled by a list of - vectors, usually given either as a string or as a script. +**VectorSerie** + This indicates a variable that has to be filled by a list of + vectors, usually given either as a string or as a script file. When a command or keyword can be filled by a script file name, the script has to contain a variable or a method that has the same name as the one to be filled. In other words, when importing the script in a YACS Python node, it must create -a variable of the good name in the current namespace. +a variable of the good name in the current namespace of the node. Reference description for ADAO calculation cases ------------------------------------------------ @@ -121,33 +123,32 @@ following: *Required command*. This is a string to indicate the data assimilation or optimization algorithm chosen. The choices are limited and available through the GUI. There exists for example "3DVAR", "Blue"... See below the list of - algorithms and associated parameters in the following subsection `Options + algorithms and associated parameters in the following subsection `Optional and required commands for calculation algorithms`_. **AlgorithmParameters** *Optional command*. This command allows to add some optional parameters to - control the data assimilation or optimization algorithm. It is defined as a - "*Dict*" type object, that is, given as a script. See below the list of - algorithms and associated parameters in the following subsection `Options - and required commands for calculation algorithms`_. + control the data assimilation or optimization algorithm. Its value is + defined as a "*Dict*" type object. See below the list of algorithms and + associated parameters in the following subsection `Optional and required + commands for calculation algorithms`_. **Background** *Required command*. This indicates the background or initial vector used, - previously noted as :math:`\mathbf{x}^b`. It is defined as a "*Vector*" type - object, that is, given either as a string or as a script. + previously noted as :math:`\mathbf{x}^b`. Its value is defined as a + "*Vector*" type object. **BackgroundError** *Required command*. This indicates the background error covariance matrix, - previously noted as :math:`\mathbf{B}`. It is defined as a "*Matrix*" type - object, a "*ScalarSparseMatrix*" type object, or a "*DiagonalSparseMatrix*" - type object, that is, given either as a string or as a script. + previously noted as :math:`\mathbf{B}`. Its value is defined as a "*Matrix*" + type object, a "*ScalarSparseMatrix*" type object, or a + "*DiagonalSparseMatrix*" type object. **ControlInput** *Optional command*. This indicates the control vector used to force the - evolution model at each step, usually noted as :math:`\mathbf{U}`. It is - defined as a "*Vector*" or a *VectorSerie* type object, that is, given - either as a string or as a script. When there is no control, it has to be a - void string ''. + evolution model at each step, usually noted as :math:`\mathbf{U}`. Its value + is defined as a "*Vector*" or a *VectorSerie* type object. When there is no + control, it has to be a void string ''. **Debug** *Required command*. This define the level of trace and intermediary debug @@ -158,43 +159,41 @@ following: *Optional command*. This indicates the evolution error covariance matrix, usually noted as :math:`\mathbf{Q}`. It is defined as a "*Matrix*" type object, a "*ScalarSparseMatrix*" type object, or a "*DiagonalSparseMatrix*" - type object, that is, given either as a string or as a script. + type object. **EvolutionModel** *Optional command*. This indicates the evolution model operator, usually - noted :math:`M`, which describes a step of evolution. It is defined as a - "*Function*" type object, that is, given as a script. Different functional - forms can be used, as described in the following subsection `Requirements - for functions describing an operator`_. If there is some control :math:`U` - included in the evolution model, the operator has to be applied to a pair - :math:`(X,U)`. + noted :math:`M`, which describes an elementary step of evolution. Its value + is defined as a "*Function*" type object. Different functional forms can be + used, as described in the following subsection `Requirements for functions + describing an operator`_. If there is some control :math:`U` included in the + evolution model, the operator has to be applied to a pair :math:`(X,U)`. **InputVariables** *Optional command*. This command allows to indicates the name and size of - physical variables that are bundled together in the control vector. This + physical variables that are bundled together in the state vector. This information is dedicated to data processed inside an algorithm. **Observation** *Required command*. This indicates the observation vector used for data assimilation or optimization, previously noted as :math:`\mathbf{y}^o`. It - is defined as a "*Vector*" or a *VectorSerie* type object, that is, given - either as a string or as a script. + is defined as a "*Vector*" or a *VectorSerie* type object. **ObservationError** *Required command*. This indicates the observation error covariance matrix, previously noted as :math:`\mathbf{R}`. It is defined as a "*Matrix*" type object, a "*ScalarSparseMatrix*" type object, or a "*DiagonalSparseMatrix*" - type object, that is, given either as a string or as a script. + type object. **ObservationOperator** *Required command*. This indicates the observation operator, previously noted :math:`H`, which transforms the input parameters :math:`\mathbf{x}` to results :math:`\mathbf{y}` to be compared to observations - :math:`\mathbf{y}^o`. It is defined as a "*Function*" type object, that is, - given as a script. Different functional forms can be used, as described in - the following subsection `Requirements for functions describing an - operator`_. If there is some control :math:`U` included in the observation, - the operator has to be applied to a pair :math:`(X,U)`. + :math:`\mathbf{y}^o`. Its value is defined as a "*Function*" type object. + Different functional forms can be used, as described in the following + subsection `Requirements for functions describing an operator`_. If there is + some control :math:`U` included in the observation, the operator has to be + applied to a pair :math:`(X,U)`. **Observers** *Optional command*. This command allows to set internal observers, that are @@ -210,8 +209,8 @@ following: vector. This information is dedicated to data processed inside an algorithm. **Study_name** - *Required command*. This is an open string to describe the study by a name - or a sentence. + *Required command*. This is an open string to describe the ADAO study by a + name or a sentence. **Study_repertory** *Optional command*. If available, this directory is used as base name for @@ -220,17 +219,19 @@ following: **UserDataInit** *Optional command*. This commands allows to initialize some parameters or - data automatically before data assimilation algorithm processing. + data automatically before data assimilation or optimisation algorithm input + processing. It indicates a script file name to be executed before entering + in initialization phase of chosen variables. **UserPostAnalysis** *Optional command*. This commands allows to process some parameters or data - automatically after data assimilation algorithm processing. It is defined as - a script or a string, allowing to put post-processing code directly inside - the ADAO case. Common templates are provided to help the user to start or - to quickly make his case. + automatically after data assimilation or optimization algorithm processing. + Its value is defined as a script file or a string, allowing to put + post-processing code directly inside the ADAO case. Common templates are + provided to help the user to start or to quickly make his case. -Options and required commands for calculation algorithms -++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +Optional and required commands for calculation algorithms +++++++++--++++++++++++++++++++++++++++++++++++++++++++++++ .. index:: single: 3DVAR .. index:: single: Blue @@ -260,8 +261,9 @@ Options and required commands for calculation algorithms .. index:: single: StoreSupplementaryCalculations .. index:: single: SwarmVelocity -Each algorithm can be controlled using some generic or specific options given -through the "*AlgorithmParameters*" optional command, as follows for example:: +Each algorithm can be controlled using some generic or specific options, given +through the "*AlgorithmParameters*" optional command in a script file or a +sring, as follows for example in a file:: AlgorithmParameters = { "Minimizer" : "LBFGSB", @@ -269,12 +271,13 @@ through the "*AlgorithmParameters*" optional command, as follows for example:: "StoreSupplementaryCalculations" : ["APosterioriCovariance","OMA"], } -This section describes the available options algorithm by algorithm. If an -option is specified for an algorithm that doesn't support it, the option is -simply left unused. The meaning of the acronyms or particular names can be found -in the :ref:`genindex` or the :ref:`section_glossary`. In addition, for each -algorithm, the required commands/keywords are given, being described in `List of -commands and keywords for an ADAO calculation case`_. +This section describes the available options algorithm by algorithm. In +addition, for each algorithm, the required commands/keywords are given, being +described in `List of commands and keywords for an ADAO calculation case`_. If +an option is specified by the user for an algorithm that doesn't support it, the +option is simply left unused and don't stop the treatment. The meaning of the +acronyms or particular names can be found in the :ref:`genindex` or the +:ref:`section_glossary`. **"Blue"** @@ -349,12 +352,13 @@ commands and keywords for an ADAO calculation case`_. is "LBFGSB", and the possible ones are "LBFGSB" (nonlinear constrained minimizer, see [Byrd95]_ and [Zhu97]_), "TNC" (nonlinear constrained minimizer), "CG" (nonlinear unconstrained minimizer), "BFGS" (nonlinear - unconstrained minimizer), "NCG" (Newton CG minimizer). + unconstrained minimizer), "NCG" (Newton CG minimizer). It is recommended to + stay with the default. Bounds - This key allows to define upper and lower bounds for every control - variable being optimized. Bounds can be given by a list of list of pairs - of lower/upper bounds for each variable, with possibly ``None`` every time + This key allows to define upper and lower bounds for every state variable + being optimized. Bounds can be given by a list of list of pairs of + lower/upper bounds for each variable, with possibly ``None`` every time there is no bound. The bounds can always be specified, but they are taken into account only by the constrained minimizers. @@ -363,7 +367,8 @@ commands and keywords for an ADAO calculation case`_. optimization. The default is 15000, which is very similar to no limit on iterations. It is then recommended to adapt this parameter to the needs on real problems. For some minimizers, the effective stopping step can be - slightly different due to algorithm internal control requirements. + slightly different of the limit due to algorithm internal control + requirements. CostDecrementTolerance This key indicates a limit value, leading to stop successfully the @@ -406,16 +411,17 @@ commands and keywords for an ADAO calculation case`_. "ObservationOperator"* Minimizer - This key allows to choose the optimization minimizer. The default choice - is "LBFGSB", and the possible ones are "LBFGSB" (nonlinear constrained + This key allows to choose the optimization minimizer. The default choice is + "LBFGSB", and the possible ones are "LBFGSB" (nonlinear constrained minimizer, see [Byrd95]_ and [Zhu97]_), "TNC" (nonlinear constrained minimizer), "CG" (nonlinear unconstrained minimizer), "BFGS" (nonlinear - unconstrained minimizer), "NCG" (Newton CG minimizer). + unconstrained minimizer), "NCG" (Newton CG minimizer). It is recommended to + stay with the default. Bounds - This key allows to define upper and lower bounds for every control - variable being optimized. Bounds can be given by a list of list of pairs - of lower/upper bounds for each variable, with possibly ``None`` every time + This key allows to define upper and lower bounds for every state variable + being optimized. Bounds can be given by a list of list of pairs of + lower/upper bounds for each variable, with possibly ``None`` every time there is no bound. The bounds can always be specified, but they are taken into account only by the constrained minimizers. @@ -480,8 +486,8 @@ commands and keywords for an ADAO calculation case`_. EstimationOf This key allows to choose the type of estimation to be performed. It can be - either state-estimation, named "State", or parameter-estimation, named - "Parameters". The default choice is "State". + either state-estimation, with a value of "State", or parameter-estimation, + with a value of "Parameters". The default choice is "State". StoreInternalVariables This boolean key allows to store default internal variables, mainly the @@ -504,7 +510,7 @@ commands and keywords for an ADAO calculation case`_. "ObservationOperator"* Bounds - This key allows to define upper and lower bounds for every control variable + This key allows to define upper and lower bounds for every state variable being optimized. Bounds can be given by a list of list of pairs of lower/upper bounds for each variable, with extreme values every time there is no bound. The bounds can always be specified, but they are taken into @@ -516,8 +522,8 @@ commands and keywords for an ADAO calculation case`_. EstimationOf This key allows to choose the type of estimation to be performed. It can be - either state-estimation, named "State", or parameter-estimation, named - "Parameters". The default choice is "State". + either state-estimation, with a value of "State", or parameter-estimation, + with a value of "Parameters". The default choice is "State". StoreInternalVariables This boolean key allows to store default internal variables, mainly the @@ -540,7 +546,7 @@ commands and keywords for an ADAO calculation case`_. "ObservationOperator"* Bounds - This key allows to define upper and lower bounds for every control variable + This key allows to define upper and lower bounds for every state variable being optimized. Bounds can be given by a list of list of pairs of lower/upper bounds for each variable, with extreme values every time there is no bound. The bounds can always be specified, but they are taken into @@ -552,12 +558,12 @@ commands and keywords for an ADAO calculation case`_. EstimationOf This key allows to choose the type of estimation to be performed. It can be - either state-estimation, named "State", or parameter-estimation, named - "Parameters". The default choice is "State". + either state-estimation, with a value of "State", or parameter-estimation, + with a value of "Parameters". The default choice is "State". Alpha, Beta, Kappa, Reconditioner These keys are internal scaling parameters. "Alpha" requires a value between - 1.e-4 and 1. "Beta" has an optimal value of 2 for gaussian priori + 1.e-4 and 1. "Beta" has an optimal value of 2 for gaussian *a priori* distribution. "Kappa" requires an integer value, and the right default is obtained by setting it to 0. "Reconditioner" requires a value between 1.e-3 and 10, it defaults to 1. @@ -695,11 +701,11 @@ commands are the following: case. It hierarchically contains all the other commands. **Algorithm** - *Required command*. This is a string to indicate the data assimilation or - optimization algorithm chosen. The choices are limited and available through - the GUI. There exists for example "FunctionTest", "AdjointTest"... See below - the list of algorithms and associated parameters in the following subsection - `Options and required commands for checking algorithms`_. + *Required command*. This is a string to indicate the test algorithm chosen. + The choices are limited and available through the GUI. There exists for + example "FunctionTest", "AdjointTest"... See below the list of algorithms + and associated parameters in the following subsection `Optional and required + commands for checking algorithms`_. **AlgorithmParameters** *Optional command*. This command allows to add some optional parameters to @@ -709,9 +715,8 @@ commands are the following: and required commands for checking algorithms`_. **CheckingPoint** - *Required command*. This indicates the vector used, - previously noted as :math:`\mathbf{x}^b`. It is defined as a "*Vector*" type - object, that is, given either as a string or as a script. + *Required command*. This indicates the vector used, previously noted as + :math:`\mathbf{x}^b`. It is defined as a "*Vector*" type object. **Debug** *Required command*. This define the level of trace and intermediary debug @@ -722,24 +727,26 @@ commands are the following: *Required command*. This indicates the observation operator, previously noted :math:`H`, which transforms the input parameters :math:`\mathbf{x}` to results :math:`\mathbf{y}` to be compared to observations - :math:`\mathbf{y}^o`. It is defined as a "*Function*" type object, that is, - given as a script. Different functional forms can be used, as described in - the following subsection `Requirements for functions describing an - operator`_. + :math:`\mathbf{y}^o`. It is defined as a "*Function*" type object. Different + functional forms can be used, as described in the following subsection + `Requirements for functions describing an operator`_. If there is some + control :math:`U` included in the observation, the operator has to be + applied to a pair :math:`(X,U)`. **Study_name** *Required command*. This is an open string to describe the study by a name or a sentence. **Study_repertory** - *Optional command*. If available, this repertory is used to find all the - script files that can be used to define some other commands by scripts. + *Optional command*. If available, this directory is used as base name for + calculation, and used to find all the script files, given by name without + path, that can be used to define some other commands by scripts. **UserDataInit** *Optional command*. This commands allows to initialize some parameters or data automatically before data assimilation algorithm processing. -Options and required commands for checking algorithms +Optional and required commands for checking algorithms +++++++++++++++++++++++++++++++++++++++++++++++++++++ .. index:: single: AdjointTest @@ -755,7 +762,7 @@ Options and required commands for checking algorithms .. index:: single: SetSeed We recall that each algorithm can be controlled using some generic or specific -options given through the "*AlgorithmParameters*" optional command, as follows +options, given through the "*AlgorithmParameters*" optional command, as follows for example:: AlgorithmParameters = { @@ -763,11 +770,12 @@ for example:: "EpsilonMinimumExponent" : -8, } -If an option is specified for an algorithm that doesn't support it, the option -is simply left unused. The meaning of the acronyms or particular names can be -found in the :ref:`genindex` or the :ref:`section_glossary`. In addition, for -each algorithm, the required commands/keywords are given, being described in -`List of commands and keywords for an ADAO checking case`_. +If an option is specified by the user for an algorithm that doesn't support it, +the option is simply left unused and don't stop the treatment. The meaning of +the acronyms or particular names can be found in the :ref:`genindex` or the +:ref:`section_glossary`. In addition, for each algorithm, the required +commands/keywords are given, being described in `List of commands and keywords +for an ADAO checking case`_. **"AdjointTest"** @@ -784,8 +792,8 @@ each algorithm, the required commands/keywords are given, being described in This key indicates the minimal exponent value of the power of 10 coefficient to be used to decrease the increment multiplier. The default is -8, and it has to be between 0 and -20. For example, its default value leads to - calculate the residue of the scalar product formula with a fixed increment - multiplied from 1.e0 to 1.e-8. + calculate the residue of the formula with a fixed increment multiplied from + 1.e0 to 1.e-8. InitialDirection This key indicates the vector direction used for the directional derivative @@ -815,7 +823,8 @@ each algorithm, the required commands/keywords are given, being described in SetDebug This key requires the activation, or not, of the debug mode during the - function evaluation. The default is True, the choices are True of False. + function evaluation. The default is "True", the choices are "True" or + "False". **"GradientTest"** @@ -844,10 +853,10 @@ each algorithm, the required commands/keywords are given, being described in ResiduFormula This key indicates the residue formula that has to be used for the test. The default choice is "Taylor", and the possible ones are "Taylor" (residue of - the Taylor development of the operator, which has to decrease with the power - of 2 in perturbation) and "Norm" (residue obtained by taking the norm of the - Taylor development at zero order approximation, which approximate the - gradient, and which has to remain constant). + the Taylor development of the operator, which has to decrease with the + square power of the perturbation) and "Norm" (residue obtained by taking the + norm of the Taylor development at zero order approximation, which + approximate the gradient, and which has to remain constant). SetSeed This key allow to give an integer in order to fix the seed of the random @@ -901,8 +910,8 @@ Requirements for functions describing an operator ------------------------------------------------- The operators for observation and evolution are required to implement the data -assimilation or optimization procedures. They include the physical simulation -numerical simulations, but also the filtering and restriction to compare the +assimilation or optimization procedures. They include the physical simulation by +numerical calculations, but also the filtering and restriction to compare the simulation to observation. The evolution operator is considered here in its incremental form, representing the transition between two successive states, and is then similar to the observation operator. @@ -963,21 +972,22 @@ template:: ... return Y=O(X) -In this case, the user can also provide a value for the differential increment, -using through the GUI the keyword "*DifferentialIncrement*", which has a default -value of 1%. This coefficient will be used in the finite difference -approximation to build the tangent and adjoint operators. The finite difference -approximation order can also be chosen through the GUI, using the keyword -"*CenteredFiniteDifference*", with 0 for an uncentered schema of first order, -and with 1 for a centered schema of second order (of twice the first order -computational cost). The keyword has a default value of 0. +In this case, the user has also provide a value for the differential increment +(or keep the devault value), using through the GUI the keyword +"*DifferentialIncrement*", which has a default value of 1%. This coefficient +will be used in the finite difference approximation to build the tangent and +adjoint operators. The finite difference approximation order can also be chosen +through the GUI, using the keyword "*CenteredFiniteDifference*", with 0 for an +uncentered schema of first order (which is the default value), and with 1 for a +centered schema of second order (of twice the first order computational cost). -This first operator definition allow easily to test the functional form before -its use in an ADAO case, greatly reducing the complexity of implementation. +This first operator definition form allows easily to test the functional form +before its use in an ADAO case, greatly reducing the complexity of +operator implementation. **Important warning:** the name "*DirectOperator*" is mandatory, and the type of -the X argument can be either a python list, a numpy array or a numpy 1D-matrix. -The user has to treat these cases in his script. +the ``X`` argument can be either a list, a numpy array or a numpy 1D-matrix. The +user has to treat these cases in his function. Second functional form: using "*ScriptWithFunctions*" +++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -987,6 +997,10 @@ Second functional form: using "*ScriptWithFunctions*" .. index:: single: TangentOperator .. index:: single: AdjointOperator +**In general, it is recommended to use the first functionnal form rather than +the second one. A small performance improvement is not a good reason to use a +detailled implementation as this second functional form.** + The second one consist in providing directly the three associated operators :math:`O`, :math:`\mathbf{O}` and :math:`\mathbf{O}^*`. This is done by using the keyword "*ScriptWithFunctions*" for the description of the chosen operator @@ -1017,12 +1031,17 @@ three mandatory names "*DirectOperator*", "*TangentOperator*" and Another time, this second operator definition allow easily to test the functional forms before their use in an ADAO case, reducing the complexity of -implementation. +operator implementation. + +For some algorithms, it is required that the tangent and adjoint functions can +return the matrix equivalent to the linear operator. In this case, when +respectivly the ``dX`` or the ``Y`` arguments are ``None``, the user has to +return the associated matrix. **Important warning:** the names "*DirectOperator*", "*TangentOperator*" and -"*AdjointOperator*" are mandatory, and the type of the X, Y, dX arguments can be -either a python list, a numpy array or a numpy 1D-matrix. The user has to treat -these cases in his script. +"*AdjointOperator*" are mandatory, and the type of the ``X``, Y``, ``dX`` +arguments can be either a python list, a numpy array or a numpy 1D-matrix. The +user has to treat these cases in his script. Third functional form: using "*ScriptWithSwitch*" +++++++++++++++++++++++++++++++++++++++++++++++++ @@ -1032,6 +1051,11 @@ Third functional form: using "*ScriptWithSwitch*" .. index:: single: TangentOperator .. index:: single: AdjointOperator +**It is recommended not to use this third functional form without a solid +numerical or physical reason. A performance improvement is not a good reason to +use the implementation complexity of this third functional form. Only an +inability to use the first or second forms justifies the use of the third.** + This third form give more possibilities to control the execution of the three functions representing the operator, allowing advanced usage and control over each execution of the simulation code. This is done by using the keyword @@ -1042,11 +1066,8 @@ example, use other approximations for the tangent and adjoint codes, or introduce more complexity in the argument treatment of the functions. But it will be far more complicated to implement and debug. -**It is recommended not to use this third functional form without a solid -numerical or physical reason.** - If, however, you want to use this third form, we recommend using the following -template for the switch. It requires an external script or code named +template for the switch. It requires an external script or code named here "*Physical_simulation_functions.py*", containing three functions named "*DirectOperator*", "*TangentOperator*" and "*AdjointOperator*" as previously. Here is the switch template:: @@ -1098,12 +1119,12 @@ Here is the switch template:: All various modifications could be done from this template hypothesis. -Special case of controled evolution operator -++++++++++++++++++++++++++++++++++++++++++++ +Special case of controled evolution or observation operator ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -In some cases, the evolution or the observation operators are required to be -controled by an external input control, given a priori. In this case, the -generic form of the incremental evolution model is slightly modified as follows: +In some cases, the evolution or the observation operator is required to be +controled by an external input control, given *a priori*. In this case, the +generic form of the incremental model is slightly modified as follows: .. math:: \mathbf{y} = O( \mathbf{x}, \mathbf{u}) @@ -1128,14 +1149,14 @@ Requirements to describe covariance matrices -------------------------------------------- Multiple covariance matrices are required to implement the data assimilation or -optimization procedures. The main ones are the background error covariance -matrix, noted as :math:`\mathbf{B}` and the observation error covariance matrix, +optimization procedures. The main ones are the background error covariance +matrix, noted as :math:`\mathbf{B}`, and the observation error covariance matrix, noted as :math:`\mathbf{R}`. Such a matrix is required to be a squared symetric semi-definite positive matrix. There are 3 practical methods for the user to provide a covariance matrix. These -methods are chosen as the "*INPUT_TYPE*" of each defined covariance matrix, as -shown by the following figure: +methods are chosen by the "*INPUT_TYPE*" keyword of each defined covariance +matrix, as shown by the following figure: .. eficas_covariance_matrix: .. image:: images/eficas_covariance_matrix.png @@ -1164,14 +1185,15 @@ nature, the entire :math:`\mathbf{M}` matrix has to be given. \end{pmatrix} It can be either a Python Numpy array or a matrix, or a list of lists of values -(that is, a list of rows). For example, a simple diagonal unitary background error -covariance matrix :math:`\mathbf{B}` can be described in a python script as:: +(that is, a list of rows). For example, a simple diagonal unitary background +error covariance matrix :math:`\mathbf{B}` can be described in a Python script +file as:: - BackgroundError = numpy.eye(...) + BackgroundError = [[1, 0 ... 0], [0, 1 ... 0] ... [0, 0 ... 1]] -ou:: +or:: - BackgroundError = [[1, 0 ... 0], [0, 1 ... 0] ... [0, 0 ... 1]] + BackgroundError = numpy.eye(...) Second matrix form: using "*ScalarSparseMatrix*" representation +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -1183,8 +1205,8 @@ Second matrix form: using "*ScalarSparseMatrix*" representation On the opposite, this second form is a very simplified method to provide a matrix. The covariance matrix :math:`\mathbf{M}` is supposed to be a positive -multiple of the identity matrix. The matrix can then be specified only by this -multiplier: +multiple of the identity matrix. This matrix can then be specified only by the +multiplier :math:`m`: .. math:: \mathbf{M} = m \times \begin{pmatrix} 1 & 0 & \cdots & 0 \\ @@ -1194,8 +1216,9 @@ multiplier: \end{pmatrix} The multiplier :math:`m` has to be a floating point or integer positive value -(if it is negative, which is impossible, converted to positive value). For example, a simple diagonal unitary background error -covariance matrix :math:`\mathbf{B}` can be described in a python script as:: +(if it is negative, which is impossible, it is converted to positive value). For +example, a simple diagonal unitary background error covariance matrix +:math:`\mathbf{B}` can be described in a python script file as:: BackgroundError = 1. @@ -1210,10 +1233,10 @@ Third matrix form: using "*DiagonalSparseMatrix*" representation .. index:: single: ObservationError This third form is also a simplified method to provide a matrix, but a little -more powerful. The covariance matrix :math:`\mathbf{M}` is already supposed to -be diagonal, but the user has to specify all the positive diagonal values. The -matrix can then be specified only by a vector :math:`\mathbf{V}` which will be -set on a diagonal matrix: +more powerful than the second one. The covariance matrix :math:`\mathbf{M}` is +already supposed to be diagonal, but the user has to specify all the positive +diagonal values. The matrix can then be specified only by a vector +:math:`\mathbf{V}` which will be set on a diagonal matrix: .. math:: \mathbf{M} = \begin{pmatrix} v_{1} & 0 & \cdots & 0 \\ @@ -1223,12 +1246,13 @@ set on a diagonal matrix: \end{pmatrix} It can be either a Python Numpy array or a matrix, or a list or a list of list -of positive values (if some are negative, which is impossible, converted to -positive values). For example, a simple diagonal unitary background error -covariance matrix :math:`\mathbf{B}` can be described in a python script as:: +of positive values (in all cases, if some are negative, which is impossible, +they are converted to positive values). For example, a simple diagonal unitary +background error covariance matrix :math:`\mathbf{B}` can be described in a +python script file as:: BackgroundError = [1, 1 ... 1] -ou:: +or:: BackgroundError = numpy.ones(...) diff --git a/doc/en/theory.rst b/doc/en/theory.rst index a88d825..5b0e82b 100644 --- a/doc/en/theory.rst +++ b/doc/en/theory.rst @@ -20,40 +20,42 @@ embedded in numerical models, to obtain the best possible estimate of the system true state and of its stochastic properties. Note that this true state can not be reached, but can only be estimated. Moreover, despite the fact that the used information are stochastic by nature, data assimilation provides deterministic -techniques in order to realize the estimation. +techniques in order to perform very efficiently the estimation. Because data assimilation look for the **best possible** estimate, its underlying procedure always integrates optimization in order to find this estimate: particular optimization methods are always embedded in data -assimilation algorithms. Optimization methods can be seen here as a way to +assimilation algorithms. Optimization methods can be seen in ADAO as a way to extend data assimilation applications. They will be introduced this way in the section `Going further in the state estimation by optimization methods`_, but they are far more general and can be used without data assimilation concepts. Two main types of applications exist in data assimilation, being covered by the same formalism: **parameters identification** and **fields reconstruction**. -Before introducing the `Simple description of the data assimilation framework`_ -in a next section, we describe briefly these two types. At the end, some -references allow `Going further in the data assimilation framework`_. +Before introducing the `Simple description of the data assimilation +methodological framework`_ in a next section, we describe briefly these two +types. At the end, some references allow `Going further in the data assimilation +framework`_. Fields reconstruction or measures interpolation ----------------------------------------------- .. index:: single: fields reconstruction +.. index:: single: measures interpolation Fields reconstruction consists in finding, from a restricted set of real measures, the physical field which is the most *consistent* with these measures. This consistency is to understand in terms of interpolation, that is to say that the field we want to reconstruct, using data assimilation on measures, has to -fit at best the measures, while remaining constrained by the overall +fit at best the measures, while remaining constrained by the overall field calculation. The calculation is thus an *a priori* estimation of the field that we seek to identify. If the system evolves in time, the reconstruction has to be established on every -time step, as a whole. The interpolation process in this case is more -complicated since it is temporal, not only in terms of instantaneous values of -the field. +time step, of the field as a whole. The interpolation process in this case is +more complicated since it is temporal, and not only in terms of instantaneous +values of the field. A simple example of fields reconstruction comes from meteorology, in which one look for value of variables such as temperature or pressure in all points of the @@ -66,25 +68,30 @@ One must therefore make the reconstruction of a field at any point in space, in a "consistent" manner with the evolution equations and with the measures of the previous time steps. -Parameters identification or calibration ----------------------------------------- +Parameters identification, models adjustment, calibration +--------------------------------------------------------- .. index:: single: parameters identification - -The identification of parameters by data assimilation is a form of calibration -which uses both the measurement and an *a priori* estimation (called the -"*background*") of the state that one seeks to identify, as well as a -characterization of their errors. From this point of view, it uses all available -information on the physical system (even if assumptions about errors are -relatively restrictive) to find the "*optimal*" estimation from the true state. -We note, in terms of optimization, that the background realizes a mathematical -regularization of the main problem of parameters identification. +.. index:: single: models adjustment +.. index:: single: calibration +.. index:: single: background +.. index:: single: regularization + +The identification of parameters by data assimilation is a form of state +calibration which uses both the physical measurement and an *a priori* +parameters estimation (called the "*background*") of the state that one seeks to +identify, as well as a characterization of their errors. From this point of +view, it uses all available information on the physical system (even if +assumptions about errors are relatively restrictive) to find the "*optimal +estimation*" from the true state. We note, in terms of optimization, that the +background realizes a mathematical regularization of the main problem of +parameters identification. In practice, the two observed gaps "*calculation-background*" and -"*calculation-measures*" are added to build the calibration correction of +"*calculation-measures*" are combined to build the calibration correction of parameters or initial conditions. The addition of these two gaps requires a relative weight, which is chosen to reflect the trust we give to each piece of -information. This confidence is measured by the covariance of the errors on the +information. This confidence is depicted by the covariance of the errors on the background and on the observations. Thus the stochastic aspect of information, measured or *a priori*, is essential for building the calibration error function. @@ -93,12 +100,12 @@ A simple example of parameters identification comes from any kind of physical simulation process involving a parametrized model. For example, a static mechanical simulation of a beam constrained by some forces is described by beam parameters, such as a Young coefficient, or by the intensity of the force. The -parameter estimation problem consists in finding for example the right Young -coefficient in order that the simulation of the beam corresponds to +parameters estimation problem consists in finding for example the right Young +coefficient value in order that the simulation of the beam corresponds to measurements, including the knowledge of errors. -Simple description of the data assimilation framework ------------------------------------------------------ +Simple description of the data assimilation methodological framework +-------------------------------------------------------------------- .. index:: single: background .. index:: single: background error covariances @@ -119,16 +126,16 @@ are zero and the model is exact) as output. In the simplest case, which is static, the steps of simulation and of observation can be combined into a single observation operator noted :math:`H` -(linear or nonlinear), which transforms the input parameters :math:`\mathbf{x}` -to results :math:`\mathbf{y}` to be compared to observations +(linear or nonlinear). It transforms the input parameters :math:`\mathbf{x}` to +results :math:`\mathbf{y}` to be directly compared to observations :math:`\mathbf{y}^o`. Moreover, we use the linearized operator :math:`\mathbf{H}` to represent the effect of the full operator :math:`H` around a linearization point (and we omit thereafter to mention :math:`H` even if it is possible to keep it). In reality, we have already indicated that the stochastic nature of variables is essential, coming from the fact that model, background -and observations are incorrect. We therefore introduce errors of observations -additively, in the form of a random vector :math:`\mathbf{\epsilon}^o` such -that: +and observations are all incorrect. We therefore introduce errors of +observations additively, in the form of a random vector +:math:`\mathbf{\epsilon}^o` such that: .. math:: \mathbf{y}^o = \mathbf{H} \mathbf{x}^t + \mathbf{\epsilon}^o @@ -140,7 +147,7 @@ by: .. math:: \mathbf{R} = E[\mathbf{\epsilon}^o.{\mathbf{\epsilon}^o}^T] The background can also be written as a function of the true value, by -introducing the error vector :math:`\mathbf{\epsilon}^b`: +introducing the error vector :math:`\mathbf{\epsilon}^b` such that: .. math:: \mathbf{x}^b = \mathbf{x}^t + \mathbf{\epsilon}^b @@ -164,13 +171,13 @@ minimize the following function :math:`J`: which is usually designed as the "*3D-VAR*" function. Since :math:`\mathbf{B}` and :math:`\mathbf{R}` covariance matrices are proportional to the variances of errors, their presence in both terms of the function :math:`J` can effectively -weight the differences by confidence in the background or observations. The -parameters vector :math:`\mathbf{x}` realizing the minimum of this function +weight the differences by confidence in the background or observations errors. +The parameters vector :math:`\mathbf{x}` realizing the minimum of this function therefore constitute the analysis :math:`\mathbf{x}^a`. It is at this level that we have to use the full panoply of function minimization methods otherwise known in optimization (see also section `Going further in the state estimation by optimization methods`_). Depending on the size of the parameters vector -:math:`\mathbf{x}` to identify and of the availability of gradient and Hessian +:math:`\mathbf{x}` to identify, and of the availability of gradient or Hessian of :math:`J`, it is appropriate to adapt the chosen optimization method (gradient, Newton, quasi-Newton...). @@ -197,11 +204,11 @@ equivalent. It is indicated here that these methods of "*3D-VAR*" and "*BLUE*" may be extended to dynamic problems, called respectively "*4D-VAR*" and "*Kalman filter*". They can take into account the evolution operator to establish an -analysis at the right time steps of the gap between observations and simulations, -and to have, at every moment, the propagation of the background through the -evolution model. Many other variants have been developed to improve the -numerical quality or to take into account computer requirements such as -calculation size and time. +analysis at the right time steps of the gap between observations and +simulations, and to have, at every moment, the propagation of the background +through the evolution model. Many other variants have been developed to improve +the numerical quality of the methods or to take into account computer +requirements such as calculation size and time. Going further in the data assimilation framework ------------------------------------------------ @@ -212,18 +219,19 @@ Going further in the data assimilation framework .. index:: single: Bayesian estimation .. index:: single: optimal interpolation .. index:: single: mathematical regularization +.. index:: single: regularization methods .. index:: single: data smoothing -To get more information about all the data assimilation techniques, the reader -can consult introductory documents like [Argaud09]_, on-line training courses or +To get more information about the data assimilation techniques, the reader can +consult introductory documents like [Argaud09]_, on-line training courses or lectures like [Bouttier99]_ and [Bocquet04]_ (along with other materials coming from geosciences applications), or general documents like [Talagrand97]_, [Tarantola87]_, [Kalnay03]_, [Ide97]_ and [WikipediaDA]_. -Note that data assimilation is not restricted to meteorology or geo-sciences, but -is widely used in other scientific domains. There are several fields in science -and technology where the effective use of observed but incomplete data is -crucial. +Note that data assimilation is not restricted to meteorology or geo-sciences, +but is widely used in other scientific domains. There are several fields in +science and technology where the effective use of observed but incomplete data +is crucial. Some aspects of data assimilation are also known as *state estimation*, *parameter estimation*, *inverse problems*, *Bayesian estimation*, *optimal @@ -245,7 +253,8 @@ which is named the "*3D-VAR*" function. It can be seen as a *least squares minimization* extented form, obtained by adding a regularizing term using :math:`\mathbf{x}-\mathbf{x}^b`, and by weighting the differences using :math:`\mathbf{B}` and :math:`\mathbf{R}` the two covariance matrices. The -minimization of the :math:`J` function leads to the *best* state estimation. +minimization of the :math:`J` function leads to the *best* `\mathbf{x}` state +estimation. State estimation possibilities extension, by using more explicitly optimization methods and their properties, can be imagined in two ways. @@ -259,12 +268,12 @@ due to over-parametrization, multiple local minima, etc. **A way to extend estimation possibilities is then to use a whole range of optimizers, allowing global minimization, various robust search properties, etc**. There is a lot of minimizing methods, such as stochastic ones, evolutionary ones, heuristics and -meta-heuristics for real-valued problems, etc. They can treat partially irregular -or noisy function :math:`J`, can characterize local minima, etc. The main -drawback is a greater numerical cost to find state estimates, and no guarantee -of convergence in finite time. Here, we only point the following -topics, as the methods are available in the ADAO module: *Quantile regression* -[WikipediaQR]_ and *Particle swarm optimization* [WikipediaPSO]_. +meta-heuristics for real-valued problems, etc. They can treat partially +irregular or noisy function :math:`J`, can characterize local minima, etc. The +main drawback is a greater numerical cost to find state estimates, and no +guarantee of convergence in finite time. Here, we only point the following +topics, as the methods are available in the ADAO module: *Quantile Regression* +[WikipediaQR]_ and *Particle Swarm Optimization* [WikipediaPSO]_. Secondly, optimization methods try usually to minimize quadratic measures of errors, as the natural properties of such goal functions are well suited for diff --git a/doc/en/using.rst b/doc/en/using.rst index 3201f1d..8129eed 100644 --- a/doc/en/using.rst +++ b/doc/en/using.rst @@ -20,13 +20,13 @@ Using the ADAO module :align: middle :scale: 50% -This section presents the usage of the ADAO module in SALOME. It is complemented -by the detailed description of all the commands and keywords in the section -:ref:`section_reference`, by advanced usage procedures in the section +This section presents the usage of the ADAO module in SALOME platform. It is +complemented by the detailed description of all the commands and keywords in the +section :ref:`section_reference`, by advanced usage procedures in the section :ref:`section_advanced`, and by examples in the section :ref:`section_examples`. -Logical procedure to build an ADAO test case --------------------------------------------- +Logical procedure to build an ADAO case +--------------------------------------- The construction of an ADAO case follows a simple approach to define the set of input data, and then generates a complete executable block diagram used in YACS. @@ -40,9 +40,9 @@ SALOME or not. **Basically, the procedure of using ADAO involves the following steps:** #. **Activate the ADAO module and use the editor GUI,** -#. **Build and/or modify the ADAO case and save it,** +#. **Build and/or modify the ADAO case, and save it,** #. **Export the ADAO case as a YACS scheme,** -#. **Supplement and modify the YACS scheme and save it,** +#. **Supplement and modify the YACS scheme, and save it,** #. **Execute the YACS case and obtain the results.** Each step will be detailed in the next section. @@ -51,9 +51,9 @@ STEP 1: Activate the ADAO module and use the editor GUI ------------------------------------------------------- As always for a module, it has to be activated by choosing the appropriate -module button (or menu) in the toolbar of SALOME. If there is no SALOME study -loaded, a popup appears, allowing to choose between creating a new study, or -opening an already existing one: +module button (or the menu) in the toolbar of SALOME. If there is no SALOME +study loaded, a popup appears, allowing to choose between creating a new study, +or opening an already existing one: .. _adao_activate1: .. image:: images/adao_activate.png @@ -73,8 +73,8 @@ create a new ADAO case, and you will see: .. centered:: **The EFICAS editor for cases definition in module ADAO** -STEP 2: Build and modify the ADAO case and save it --------------------------------------------------- +STEP 2: Build and modify the ADAO case, and save it +--------------------------------------------------- To build a case using EFICAS, you have to go through a series of sub-steps, by selecting, at each sub-step, a keyword and then filling in its value. @@ -118,7 +118,7 @@ When the ADAO case is completed, you have to export it as a YACS scheme [#]_ in order to execute the data assimilation calculation. This can be easily done by using the "*Export to YACS*" button |eficas_yacs|, or equivalently choose the "*Export to YACS*" entry in the "*ADAO*" main menu, or in the contextual case -menu in the object browser. +menu in the SALOME object browser. .. _adao_exporttoyacs01: .. image:: images/adao_exporttoyacs.png @@ -130,51 +130,53 @@ menu in the object browser. This will lead to automatically generate a YACS scheme, and open the YACS module on this scheme. The YACS file, associated with the scheme, will be stored in the same directory and with the same base name as the ADAO saved case, only changing -its extension to "*.xml*". Be careful, *if the XML file name already exist, it -will be overwritten without prompting for replacing the file*. +its extension to "*.xml*". Be careful, *if the XML file name already exist, the +file will be overwritten without prompting for replacing the XML file*. -STEP 4: Supplement and modify the YACS scheme and save it ---------------------------------------------------------- +STEP 4: Supplement and modify the YACS scheme, and save it +---------------------------------------------------------- .. index:: single: Analysis When the YACS scheme is generated and opened in SALOME through the YACS module -GUI, you can modify or supplement the scheme like any YACS scheme. Nodes or -blocs can be added, copied or modified to elaborate complex analysis, or to -insert data assimilation or optimization capabilities into more complex YACS -calculation schemes. It is recommended to save the modified scheme with a new -name, in order to preserve the XML file in the case you re-export the ADAO case -to YACS. +GUI, you can modify or supplement the scheme like any standard YACS scheme. +Nodes or blocs can be added, copied or modified to elaborate complex analysis, +or to insert data assimilation or optimization capabilities into more complex +YACS calculation schemes. It is recommended to save the modified scheme with a +new name, in order to preserve the XML file in the case you re-export the ADAO +case to YACS. The main supplement needed in the YACS scheme is a post-processing step. The evaluation of the results has to be done in the physical context of the simulation used by the data assimilation procedure. The post-processing can be provided through the "*UserPostAnalysis*" ADAO keyword as a script or a string, -by templates, or can be build as YACS nodes using all SALOME possibilities. +by templates, or can be build as YACS nodes. These two ways of building the +post-processing can use all the SALOME possibilities. -The YACS scheme has an "*algoResults*" output port of the computation bloc, -which gives access to a "*pyobj*" named hereafter "*ADD*", containing all the -processing results. These results can be obtained by retrieving the named -variables stored along the calculation. The main is the "*Analysis*" one, that -can be obtained by the python command (for example in an in-line script node or -a script provided through the "*UserPostAnalysis*" keyword):: +In details, the YACS scheme has an "*algoResults*" output port of the +computation bloc, which gives access to an object of type "*pyobj*" named +hereafter "*ADD*", containing all the calculation results. These results can be +obtained by retrieving the named variables stored along the calculation. The +main information is the "*Analysis*" one, that can be obtained by the python +command (for example in an in-line script node or a script provided through the +"*UserPostAnalysis*" keyword):: Analysis = ADD.get("Analysis")[:] "*Analysis*" is a complex object, similar to a list of values calculated at each step of data assimilation calculation. In order to get and print the optimal -data assimilation state evaluation, in script provided through the +data assimilation state evaluation, in a script provided through the "*UserPostAnalysis*" keyword, one can use:: Xa = ADD.get("Analysis")[-1] print "Optimal state:", Xa print -This ``Xa`` is a vector of values, that represents the solution of the data -assimilation or optimization evaluation problem, noted as :math:`\mathbf{x}^a` -in the section :ref:`section_theory`. +This ``Xa`` variable is a vector of values, that represents the solution of the +data assimilation or optimization evaluation problem, noted as +:math:`\mathbf{x}^a` in the section :ref:`section_theory`. -Such command can be used to print results, or to convert these ones to +Such method can be used to print results, or to convert these ones to structures that can be used in the native or external SALOME post-processing. A simple example is given in the section :ref:`section_examples`. @@ -182,8 +184,8 @@ STEP 5: Execute the YACS case and obtain the results ---------------------------------------------------- The YACS scheme is now complete and can be executed. Parametrization and -execution of a YACS case is fully compliant with the standard way to deal with a -YACS scheme, and is described in the *YACS module User's Guide*. +execution of this YACS case is fully compliant with the standard way to deal +with a YACS scheme, as described in the *YACS module User's Guide*. To recall the simplest way to proceed, the YACS scheme has to be compiled using the button |yacs_compile|, or the equivalent YACS menu entry, to prepare the @@ -193,8 +195,9 @@ using breakpoints, etc. The standard output will be pushed into the "*YACS Container Log*", obtained through the right click menu of the "*proc*" window in the YACS GUI. The errors are shown either in the "*YACS Container Log*", or at the command line in the -shell window (if SALOME has been launched by its explicit command and not by -menu). As an example, the output of the above simple case is the following:: +shell window (if SALOME has been launched by its explicit command, and not by a +menu or a desktop icon). As an example, the output of the above simple case is +of the following form:: Entering in the assimilation study Name is set to........: Test @@ -208,8 +211,8 @@ shown in the "*YACS Container Log*". The execution can also be done using a shell script, as described in the section :ref:`section_advanced`. -.. [#] For more information on EFICAS, see the *EFICAS module* available in SALOME GUI. +.. [#] For more information on EFICAS, see the *EFICAS module* available in SALOME platform. -.. [#] For more information on YACS, see the *YACS module User's Guide* available in the main "*Help*" menu of SALOME GUI. +.. [#] For more information on YACS, see the *YACS module User's Guide* available in the main "*Help*" menu of SALOME platform. .. [#] This intermediary python file can also be used as described in the section :ref:`section_advanced`. diff --git a/doc/fr/Makefile.am b/doc/fr/Makefile.am new file mode 100644 index 0000000..b91054a --- /dev/null +++ b/doc/fr/Makefile.am @@ -0,0 +1,148 @@ +# Copyright (C) 2010-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D + +include $(top_srcdir)/adm_local/make_common_starter.am + +# You can set these variables from the command line. +DOCLANG = fr +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = $(top_builddir)/doc/build/$(DOCLANG) +SRCDIR = $(top_srcdir)/doc/$(DOCLANG) + +EXTRA_DIST = conf.py advanced.rst examples.rst index.rst intro.rst theory.rst using.rst \ + resources/ADAO.png \ + resources/ADAO_small.png \ + resources/ADAO_small_rouge.png \ + resources/ADAO_small_vert.png \ + images/adao_activate.png \ + images/adao_jdcexample01.png \ + images/adao_scriptentry01.png \ + images/adao_viewer.png \ + images/eficas_new.png \ + images/eficas_save.png \ + images/eficas_yacs.png \ + images/yacs_generatedscheme.png \ + images/adao_exporttoyacs.png \ + images/adao_jdcexample02.png \ + images/adao_scriptentry02.png \ + images/eficas_close.png \ + images/eficas_open.png \ + images/eficas_saveas.png \ + images/yacs_containerlog.png + +install-data-local: + make html + ${mkinstalldirs} $(DESTDIR)$(docdir)/$(DOCLANG) + ${mkinstalldirs} $(DESTDIR)$(salomeresdir) + cp -R $(BUILDDIR)/html/* $(DESTDIR)$(docdir)/$(DOCLANG) + cp $(SRCDIR)/resources/*.png $(DESTDIR)$(salomeresdir) + cp $(SRCDIR)/images/eficas_*.png $(DESTDIR)$(salomeresdir) + +uninstall-local: + chmod -R +w $(DESTDIR)$(docdir)/$(DOCLANG) + rm -rf $(DESTDIR)$(docdir) + rm -f $(DESTDIR)$(salomeresdir)/*.png + +clean-local: + -rm -rf $(BUILDDIR) + + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SRCDIR) + +.PHONY: help clean html dirhtml pickle json htmlhelp qthelp latex changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/ADAO.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/ADAO.qhc" + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \ + "run these through (pdf)latex." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/doc/fr/advanced.rst b/doc/fr/advanced.rst new file mode 100644 index 0000000..8a4b62f --- /dev/null +++ b/doc/fr/advanced.rst @@ -0,0 +1,241 @@ +.. _section_advanced: + +================================================================================ +Usages avancés du module ADAO +================================================================================ + +Cette section présente des méthodes avancées d'usage du module ADAO, comment +obtenir plus d'information lors d'un calcul, ou comment l'utiliser sans +l'interface graphique (GUI). Cela nécessite de savoir comment trouver les +fichiers ou les commandes incuses dans l'installation complète de SALOME. Tous +les noms à remplacer par l'utilisateur sont indiqués par la syntaxe ``<...>``. + +Convertir et exécuter un fichier de commandes ADAO (JDC) par l'intermédiaire d'un script shell +---------------------------------------------------------------------------------------------- + +Il est possible de convertir et exécuter une fichier de commandes ADAO (JDC, ou +paire de fichiers ".comm/.py", qui se trouvent dans le répertoire ````) automatiquement en utilisant un script de commandes +shell "type" contenant toutes les étapes requises. L'utilisateur doit savoir où +se trouvent les principaux fichiers de lancement de SALOME, et en particulier le +fichier ``runAppli``. Le répertoire dans lequel ce fichier réside est +symboliquement nommé ```` et doit +être remplacé par le bon dans le modèle "type" de fichier shell. + +Lorsqu'un fichier de commande ADAO est construit par l'interface d'édition +EFICAS d'ADAO et est enregistré, s'il est nommé par exemple "EtudeAdao1.comm", +alors un fichier compagnon nommé "EtudeAdao1.py" est automatiquement créé dans +la même répertoire. Il est nommé ```` dans le modèle +"type", et il est converti vers YACS comme un ````. +Ensuite, il peut être exécuté en mode console en utilisant la commande standard +en mode console de YACS (voir la documentation YACS pour de plus amples +informations). + +Dans l'exemple, on choisit de démarrer et arrêter le serveur d'application +SALOME dans le même script, ce qui n'est pas nécessaire, mais utile pour éviter +des sessions SALOME en attente. On choisit aussi de supprimer le fichier de +```` car c'est un fichier généré. L'utilisateur de ce +script a seulement besoin de remplacer le texte contenu entre les symboles +``<...>`` + +Le modèle "type" de ce script de commandes shell est le suivant:: + + #!/bin/bash + export USERDIR= + export SALOMEDIR= + $SALOMEDIR/runAppli -k -t + $SALOMEDIR/runSession python \ + $SALOMEDIR/bin/salome/AdaoYacsSchemaCreator.py \ + $USERDIR/ $USERDIR/ + $SALOMEDIR/runSession driver $USERDIR/ + $SALOMEDIR/runSession killSalome.py + rm -f $USERDIR/ + +Les sorties standard et d'erreur se font à la console. + +Exécuter un schéma de calcul ADAO dans YACS en utilisant le mode "texte" (TUI) +------------------------------------------------------------------------------ + +Cette section décrit comment exécuter en mode TUI (Text User Interface) un +schéma de calcul YACS, obtenu par la fonction "*Exporter vers YACS*" d'ADAO. +Cela utilise le mode texte standard de YACS, qui est rapidement rappelé ici +(voir la documentation YACS pour de plus amples informations) à travers un +exemple simple. Comme décrit dans la documentation, un schéma XML peut être +chargé en python. On donne ici une séquence complète de commandes pour tester la +validité du schéma avant de l'exécuter, ajoutant des lignes supplémentaires +initiales pour charger de manière explicite le catalogue de types pour éviter +des difficultés obscures:: + + #-*-coding:iso-8859-1-*- + import pilot + import SALOMERuntime + import loader + SALOMERuntime.RuntimeSALOME_setRuntime() + + r = pilot.getRuntime() + xmlLoader = loader.YACSLoader() + xmlLoader.registerProcCataLoader() + try: + catalogAd = r.loadCatalog("proc", "") + except: + pass + r.addCatalog(catalogAd) + + try: + p = xmlLoader.load("") + except IOError,ex: + print "IO exception:",ex + + logger = p.getLogger("parser") + if not logger.isEmpty(): + print "The imported file has errors :" + print logger.getStr() + + if not p.isValid(): + print "Le schéma n'est pas valide et ne peut pas être exécuté" + print p.getErrorReport() + + info=pilot.LinkInfo(pilot.LinkInfo.ALL_DONT_STOP) + p.checkConsistency(info) + if info.areWarningsOrErrors(): + print "Le schéma n'est pas cohérent et ne peut pas être exécuté" + print info.getGlobalRepr() + + e = pilot.ExecutorSwig() + e.RunW(p) + if p.getEffectiveState() != pilot.DONE: + print p.getErrorReport() + +Cette démarche permet par exemple d'éditer le schéma YACS XML en mode texte TUI, +ou pour rassembler les résultats pour un usage ultérieur. + +Obtenir des informations sur des variables spéciales au cours d'un calcul ADAO en YACS +-------------------------------------------------------------------------------------- + +Certaines variables spéciales internes à l'optimisation, utilisées au cours des +calculs, peuvent être surveillées durant un calcul ADAO en YACS. Ces variables +peuvent être affichées, tracées, enregistrées, etc. C'est réalisable en +utilisant des "*observers*", qui sont des scripts, chacun associé à une +variable. Pour pouvoir utiliser cette capacité, l'utilisateur doit construire +des scripts disposant en entrée standard (i.e. disponible dans l'espace de +nommage) des variables ``var`` et ``info``. La variable ``var`` est à utiliser +de la même manière que l'objet final ADD, c'est-à-dire comme un objet de type +liste/tuple. + +Des modèles ("templates") sont disponibles lors de l'édition le cas ADAO dans +l'éditeur EFICAS. Ces scripts simples peuvent être adaptés par l'utilisateur, +soit dans l'étape EFICAS, ou dans l'étape d'édition YACS, pour améliorer +l'adaptation du calcul ADAO dans YACS. + +A titre d'exemple, voici un script trés simple (similaire au modèle +"*ValuePrinter*") utilisable pour afficher la valeur d'une variable surveillée:: + + print " --->",info," Value =",var[-1] + +Stocké comme un fichier Python, ce script peut être associé à chaque variable +présente dans le mot-clé "*SELECTION*" de la commande "*Observers*": +"*Analysis*", "*CurrentState*", "*CostFunction*"... La valeur courante de la +variable sera affichée à chaque étape de l'algorithme d'optimisation ou +d'assimilation. Les "*observers*" peuvent inclure des capacités d'affichage +graphique, de stockage, d'affichage complexe, de traitement statistique, etc. + +Obtenir plus d'information lors du déroulement d'un calcul +---------------------------------------------------------- + +Lors du déroulement d'un calcul, des données et messages utiles sont +disponibles. Il y a deux manières d'obtenir ces informations. + +La première, et la manière préférentielle, est d'utiliser la variable interne +"*Debug*" disponible dans chaque cas ADAO. Elle est atteignable dans l'interface +graphique d'édition du module. La mettre à "*1*" permet d'envoyer des messages +dans la fenêtre de sortie de l'exécution dans YACS ("*YACS Container Log*"). + +La seconde consiste à utiliser le module Python natif "*logging*" (voir la +documentation Python http://docs.python.org/library/logging.html pour de plus +amples informations sur ce module). Dans l'ensemble du schéma YACS, +principalement à travers les entrées sous forme de scripts, l'utilisateur peut +fixer le niveau de logging en accord avec les besoins d'informations détaillées. +Les différents niveaux de logging sont : "*DEBUG*", "*INFO*", "*WARNING*", +"*ERROR*", "*CRITICAL*". Toutes les informations associées à un niveau sont +affichées à tous les niveaux au-dessus de celui-ci (inclut). La méthode la plus +facile consiste à changer le niveau de surveillance en utilisant les lignes +Python suivantes:: + + import logging + logging.getLogger().setLevel(logging.DEBUG) + +Le niveau par défaut standard de surveillance par logging est "*WARNING*", le +niveau par défaut dans le module ADAO est "*INFO*". + +Il est aussi recommandé d'inclure de la surveillance par logging ou des +mécanismes de débogage dans le code de simulation, et de les utiliser en +conjonction avec les deux méthodes précédentes. Néanmoins, il convient d'être +prudent dans le stockage de "grosses" variables car cela coute du temps, +quel que soit le niveau de surveillance choisi (c'est-à-dire même si ces +variables ne sont pas affichées). + +Passer d'une version d'ADAO à une nouvelle +------------------------------------------ + +Le module ADAO et ses fichiers de cas ".comm" sont identifiés par des versions, +avec des caractéristiques "Major", "Minor" et "Revision". Une version +particulière est numérotée "Major.Minor.Revision", avec un lien fort avec la +numérotation de la plateforme SALOME. + +Chaque version "Major.Minor.Revision" du module ADAO peut lire les fichiers de +cas ADAO de la précédente version mineure "Major.Minor-1.*". En général, elle +peut aussi lire les fichiers de cas de toutes les versions mineures "Major.*.*" +d'une branche majeure, mais ce n'est pas obligatoirement vrai pour toutes les +commandes ou tous les mots-clés. En général aussi, un fichier de cas ADAO d'une +version ne peut pas être lu par une précédente version mineure ou majeure du +module ADAO. + +Passer de la version 6.6 à la 7.2 ++++++++++++++++++++++++++++++++++ + +Il n'y a pas d'incompatibilité connue pour les fichiers de cas ADAO. La +procédure de montée en version consiste à lire l'ancien fichier de cas ADAO avec +le nouveau module SALOME/ADAO, et de l'enregistrer avec un nouveau nom. + +Il y a une incompatibilité introduite dans les fichiers de script de +post-processing ou d'observers. L'ancienne syntaxe pour interroger un objet +résultat, comme celui d'analyse "*Analysis*" (fourni dans un script à travers le +mot-clé "*UserPostAnalysis*"), était par exemple:: + + Analysis = ADD.get("Analysis").valueserie(-1) + Analysis = ADD.get("Analysis").valueserie() + +La nouvelle syntaxe est entièrement compatible avec celle (classique) pour les +objets de type liste ou tuple:: + + Analysis = ADD.get("Analysis")[-1] + Analysis = ADD.get("Analysis")[:] + +Les scripts de post-processing doivent être modifiés. + +Passer de la version 6.5 à la 6.6 ++++++++++++++++++++++++++++++++++ + +Il n'y a pas d'incompatibilité connue pour les fichiers de cas ADAO. La +procédure de montée en version consiste à lire l'ancien fichier de cas ADAO avec +le nouveau module SALOME/ADAO, et de l'enregistrer avec un nouveau nom. + +Il y a une incompatibilité introduite dans la dénomination des opérateurs +élémentaires utilisés pour l'opérateur d'observation par script. Les nouveaux +noms requis sont "*DirectOperator*", "*TangentOperator*" et "*AdjointOperator*", +comme décrit dans la quatrième partie du chapitre :ref:`section_reference`. Les +scripts d'opérateur doivent être modifiés. + +Passer de la version 6.4 à la 6.5 ++++++++++++++++++++++++++++++++++ + +Il n'y a pas d'incompatibilité connue pour les fichiers de cas ADAO. La +procédure de montée en version consiste à lire l'ancien fichier de cas ADAO avec +le nouveau module SALOME/ADAO, et de l'enregistrer avec un nouveau nom. + +Passer de la version 6.3 à la 6.4 ++++++++++++++++++++++++++++++++++ + +Il n'y a pas d'incompatibilité connue pour les fichiers de cas ADAO. La +procédure de montée en version consiste à lire l'ancien fichier de cas ADAO avec +le nouveau module SALOME/ADAO, et de l'enregistrer avec un nouveau nom. diff --git a/doc/fr/bibliography.rst b/doc/fr/bibliography.rst new file mode 100644 index 0000000..4cd051b --- /dev/null +++ b/doc/fr/bibliography.rst @@ -0,0 +1,33 @@ +.. _section_bibliography: + +================================================================================ +Bibliographie +================================================================================ + +.. [Argaud09] Argaud J.-P., Bouriquet B., Hunt J., *Data Assimilation from Operational and Industrial Applications to Complex Systems*, Mathematics Today, pp.150-152, October 2009 + +.. [Bouttier99] Bouttier B., Courtier P., *Data assimilation concepts and methods*, Meteorological Training Course Lecture Series, ECMWF, 1999, http://www.ecmwf.int/newsevents/training/rcourse_notes/pdf_files/Assim_concepts.pdf + +.. [Bocquet04] Bocquet M., *Introduction aux principes et méthodes de l'assimilation de données en géophysique*, Lecture Notes, 2004-2008, http://cerea.enpc.fr/HomePages/bocquet/assim.pdf + +.. [Byrd95] Byrd R. H., Lu P., Nocedal J., *A Limited Memory Algorithm for Bound Constrained Optimization*, SIAM Journal on Scientific and Statistical Computing, 16(5), pp.1190-1208, 1995 + +.. [Ide97] Ide K., Courtier P., Ghil M., Lorenc A. C., *Unified notation for data assimilation: operational, sequential and variational*, Journal of the Meteorological Society of Japan, 75(1B), pp.181-189, 1997 + +.. [Kalnay03] Kalnay E., *Atmospheric Modeling, Data Assimilation and Predictability*, Cambridge University Press, 2003 + +.. [Salome] *SALOME The Open Source Integration Platform for Numerical Simulation*, http://www.salome-platform.org/ + +.. [Tarantola87] Tarantola A., *Inverse Problem: Theory Methods for Data Fitting and Parameter Estimation*, Elsevier, 1987 + +.. [Talagrand97] Talagrand O., *Assimilation of Observations, an Introduction*, Journal of the Meteorological Society of Japan, 75(1B), pp.191-209, 1997 + +.. [WikipediaDA] Wikipedia, *Data assimilation*, http://en.wikipedia.org/wiki/Data_assimilation + +.. [WikipediaMO] Wikipedia, *Mathematical optimization*, https://en.wikipedia.org/wiki/Mathematical_optimization + +.. [WikipediaPSO] Wikipedia, *Particle swarm optimization*, https://en.wikipedia.org/wiki/Particle_swarm_optimization + +.. [WikipediaQR] Wikipedia, *Quantile regression*, https://en.wikipedia.org/wiki/Quantile_regression + +.. [Zhu97] Zhu C., Byrd R. H., Nocedal J., *L-BFGS-B: Algorithm 778: L-BFGS-B, FORTRAN routines for large scale bound constrained optimization*, ACM Transactions on Mathematical Software, Vol 23(4), pp.550-560, 1997 diff --git a/doc/fr/conf.py b/doc/fr/conf.py new file mode 100644 index 0000000..90eb8cb --- /dev/null +++ b/doc/fr/conf.py @@ -0,0 +1,321 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2008-2013 EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# +# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D + +# +# ADAO documentation build configuration file, created by +# sphinx-quickstart on Wed Jun 16 15:48:00 2010. +# +# This file is execfile()d with the current directory set to its containing dir. +# +# Note that not all possible configuration values are present in this +# autogenerated file. +# +# All configuration values have a default; values that are commented out +# serve to show the default. + +import sys, os + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +#sys.path.append(os.path.abspath('.')) + +# -- General configuration ----------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be extensions +# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. +extensions = ["sphinx.ext.pngmath"] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix of source filenames. +source_suffix = '.rst' + +# The encoding of source files. +#source_encoding = 'utf-8' + +# The master toctree document. +master_doc = 'index' + +# General information about the project. +project = u'ADAO' +copyright = u'2008-2013, Jean-Philippe ARGAUD' + +# The version info for the project you're documenting, acts as replacement for +# |version| and |release|, also used in various other places throughout the +# built documents. +# +# The short X.Y version. +version = '7.2.0' +version = '7\_main' +# The full version, including alpha/beta/rc tags. +release = '7.2.0' +release = '7\_main' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +language = 'fr' + +# There are two options for replacing |today|: either, you set today to some +# non-false value, then it is used: +#today = '' +# Else, today_fmt is used as the format for a strftime call. +#today_fmt = '%B %d, %Y' + +# List of documents that shouldn't be included in the build. +#unused_docs = [] + +# List of directories, relative to source directory, that shouldn't be searched +# for source files. +exclude_trees = [] + +# The reST default role (used for this markup: `text`) to use for all documents. +#default_role = None + +# If true, '()' will be appended to :func: etc. cross-reference text. +#add_function_parentheses = True + +# If true, the current module name will be prepended to all description +# unit titles (such as .. function::). +#add_module_names = True + +# If true, sectionauthor and moduleauthor directives will be shown in the +# output. They are ignored by default. +#show_authors = False + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = 'sphinx' + +# A list of ignored prefixes for module index sorting. +#modindex_common_prefix = [] + + +# -- Options for HTML output --------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. Major themes that come with +# Sphinx are currently 'default' and 'sphinxdoc'. +html_theme = 'default' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +#html_theme_options = {} + +# Add any paths that contain custom themes here, relative to this directory. +#html_theme_path = [] + +# The name for this set of Sphinx documents. If None, it defaults to +# " v documentation". +#html_title = None + +# A shorter title for the navigation bar. Default is the same as html_title. +#html_short_title = None + +# The name of an image file (relative to this directory) to place at the top +# of the sidebar. +#html_logo = None + +# The name of an image file (within the static path) to use as favicon of the +# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 +# pixels large. +#html_favicon = None + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, +# using the given strftime format. +#html_last_updated_fmt = '%b %d, %Y' + +# If true, SmartyPants will be used to convert quotes and dashes to +# typographically correct entities. +#html_use_smartypants = True + +# Custom sidebar templates, maps document names to template names. +#html_sidebars = {} + +# Additional templates that should be rendered to pages, maps page names to +# template names. +#html_additional_pages = {} + +# If false, no module index is generated. +#html_use_modindex = True + +# If false, no index is generated. +#html_use_index = True + +# If true, the index is split into individual pages for each letter. +#html_split_index = False + +# If true, links to the reST sources are added to the pages. +html_show_sourcelink = False + +# If true, an OpenSearch description file will be output, and all pages will +# contain a tag referring to it. The value of this option must be the +# base URL from which the finished HTML is served. +#html_use_opensearch = '' + +# If nonempty, this is the file name suffix for HTML files (e.g. ".xhtml"). +#html_file_suffix = '' + +# Output file base name for HTML help builder. +htmlhelp_basename = 'ADAOdoc' + + +# -- Options for LaTeX output -------------------------------------------------- + +# The paper size ('letter' or 'a4'). +latex_paper_size = 'a4' + +# The font size ('10pt', '11pt' or '12pt'). +latex_font_size = '10pt' + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, author, documentclass [howto/manual]). +latex_documents = [ + ('index', 'ADAO.tex', u'Documentation ADAO', + u'Jean-Philippe ARGAUD', 'manual'), +] + +# The name of an image file (relative to this directory) to place at the top of +# the title page. +#latex_logo = None + +# For "manual" documents, if this is true, then toplevel headings are parts, +# not chapters. +#latex_use_parts = False + +# Additional stuff for the LaTeX preamble. +#latex_preamble = '' + +# Documents to append as an appendix to all manuals. +#latex_appendices = [] + +# If false, no module index is generated. +#latex_use_modindex = True + +source_encoding = 'iso-8859-15' + +# -- Options for Epub output --------------------------------------------------- + +# Bibliographic Dublin Core info. +epub_title = u'ADAO' +epub_author = u'Jean-Philippe ARGAUD' +epub_publisher = u'Jean-Philippe ARGAUD' +epub_copyright = u'2008-2013, Jean-Philippe ARGAUD' + +# The language of the text. It defaults to the language option +# or en if the language is not set. +#epub_language = '' + +# The scheme of the identifier. Typical schemes are ISBN or URL. +#epub_scheme = '' + +# The unique identifier of the text. This can be a ISBN number +# or the project homepage. +#epub_identifier = '' + +# A unique identification for the text. +#epub_uid = '' + +# HTML files that should be inserted before the pages created by sphinx. +# The format is a list of tuples containing the path and title. +#epub_pre_files = [] + +# HTML files shat should be inserted after the pages created by sphinx. +# The format is a list of tuples containing the path and title. +#epub_post_files = [] + +# A list of files that should not be packed into the epub file. +#epub_exclude_files = [] + +# The depth of the table of contents in toc.ncx. +#epub_tocdepth = 3 + +# Allow duplicate toc entries. +#epub_tocdup = True + +# -- Options for PDF output -------------------------------------------------- +# Grouping the document tree into PDF files. List of tuples +# (source start file, target name, title, author, options). +# +# If there is more than one author, separate them with \\. +# For example: r'Guido van Rossum\\Fred L. Drake, Jr., editor' +# +# The options element is a dictionary that lets you override +# this config per-document. +# For example, +# ('index', u'MyProject', u'My Project', u'Author Name', +# dict(pdf_compressed = True)) +# would mean that specific document would be compressed +# regardless of the global pdf_compressed setting. +pdf_documents = [ + ('contents', u'ADAO', u'ADAO', u'Jean-Philippe ARGAUD', dict(pdf_compressed = True)), +] +# A comma-separated list of custom stylesheets. Example: +pdf_stylesheets = ['sphinx','kerning','a4'] +# Create a compressed PDF +# Use True/False or 1/0 +# Example: compressed=True +#pdf_compressed = False +pdf_compressed = True +# A colon-separated list of folders to search for fonts. Example: +# pdf_font_path = ['/usr/share/fonts', '/usr/share/texmf-dist/fonts/'] +# Language to be used for hyphenation support +#pdf_language = "en_US" +# Mode for literal blocks wider than the frame. Can be +# overflow, shrink or truncate +#pdf_fit_mode = "shrink" +# Section level that forces a break page. +# For example: 1 means top-level sections start in a new page +# 0 means disabled +#pdf_break_level = 0 +# When a section starts in a new page, force it to be 'even', 'odd', +# or just use 'any' +#pdf_breakside = 'any' +# Insert footnotes where they are defined instead of +# at the end. +#pdf_inline_footnotes = True +# verbosity level. 0 1 or 2 +#pdf_verbosity = 0 +# If false, no index is generated. +#pdf_use_index = True +# If false, no modindex is generated. +#pdf_use_modindex = True +# If false, no coverpage is generated. +#pdf_use_coverpage = True +# Name of the cover page template to use +#pdf_cover_template = 'sphinxcover.tmpl' +# Documents to append as an appendix to all manuals. +#pdf_appendices = [] +# Enable experimental feature to split table cells. Use it +# if you get "DelayedTable too big" errors +#pdf_splittables = False +# Set the default DPI for images +#pdf_default_dpi = 72 +# Enable rst2pdf extension modules (default is empty list) +# you need vectorpdf for better sphinx's graphviz support +#pdf_extensions = ['vectorpdf'] +# Page template name for "regular" pages +#pdf_page_template = 'cutePage' diff --git a/doc/fr/examples.rst b/doc/fr/examples.rst new file mode 100644 index 0000000..fcedd64 --- /dev/null +++ b/doc/fr/examples.rst @@ -0,0 +1,650 @@ +.. _section_examples: + +================================================================================ +Tutoriaux sur l'utilisation du module ADAO +================================================================================ + +.. |eficas_new| image:: images/eficas_new.png + :align: middle + :scale: 50% +.. |eficas_save| image:: images/eficas_save.png + :align: middle + :scale: 50% +.. |eficas_saveas| image:: images/eficas_saveas.png + :align: middle + :scale: 50% +.. |eficas_yacs| image:: images/eficas_yacs.png + :align: middle + :scale: 50% + +Cette section présente quelques exemples d'utilisation du module ADAO dans +SALOME. Le premier montre comment construire un cas simple d'assimilation de +données définissant explicitement toutes les données d'entrée requises à travers +l'interface graphique d'édition (GUI). Le second montre, sur le même cas, +comment définir les données d'entrée à partir de sources externes à travers des +scripts. On présente ici toujours des scripts Python car ils sont directement +insérables dans les noeuds de script de YACS, mais les fichiers externes peuvent +utiliser d'autres langages. + +Les notations mathématiques utilisées ci-dessous sont expliquées dans la section +:ref:`section_theory`. + +Construire un cas d'estimation avec une définition explicite des données +------------------------------------------------------------------------ + +Cet exemple simple est un cas de démonstration, et il décrit comment mettre au +point un environnement d'estimation par BLUE de manière à obtenir un *état +estimé par méthode de moindres carrés pondérés* d'un système à partir d'une +observation de l'état et d'une connaissance *a priori* (ou ébauche) de cet état. +En d'autres termes, on cherche l'intermédiaire pondéré entre les vecteurs +d'observation et d'ébauche. Toutes les valeurs numériques de cet exemple sont +arbitraires. + +Conditions d'expérience ++++++++++++++++++++++++ + +On choisit d'opérer dans un espace à 3 dimensions. La 3D est choisie de manière +à restreindre la taille des objets numériques à entrer explicitement par +l'utilisateur, mais le problème n'est pas dépendant de la dimension et peut être +posé en dimension 10, 100, 1000... L'observation :math:`\mathbf{y}^o` vaut 1 +dans chaque direction, donc:: + + Yo = [1 1 1] + +L'ébauche :math:`\mathbf{x}^b` de l'état , qui représente une connaissance *a +priori* ou une régularisation mathématique, vaut 0 dans chaque direction, ce qui +donne donc:: + + Xb = [0 0 0] + +La mise en oeuvre de l'assimilation de données requiert des informations sur les +covariances d'erreur :math:`\mathbf{R}` et :math:`\mathbf{B}`, respectivement +pour les variables d'observation et d'ébauche. On choisit ici des erreurs +décorrélées (c'est-à-dire des matrices diagonales) et d'avoir la même variance +de 1 pour toutes les variables (c'est-à-dire des matrices identité). On pose +donc:: + + B = R = [1 0 0 ; 0 1 0 ; 0 0 1] + +Enfin, on a besoin d'un opérateur d'observation :math:`\mathbf{H}` pour +convertir l'état d'ébauche dans l'espace des observations. Ici, comme les +dimensions d'espace sont les mêmes, on peut choisir l'identité comme opérateur +d'observation:: + + H = [1 0 0 ; 0 1 0 ; 0 0 1] + +Avec de tels choix, l'estimateur "Best Linear Unbiased Estimator" (BLUE) sera le +vecteur moyen entre :math:`\mathbf{y}^o` et :math:`\mathbf{x}^b`, nommé +*analysis*, noté :math:`\mathbf{x}^a`, et valant:: + + + Xa = [0.5 0.5 0.5] + +Pour étendre cet exemple, on peut modifier les variances représentées par +:math:`\mathbf{B}` ou :math:`\mathbf{R}` indépendamment, et l'analyse +:math:`\mathbf{x}^a` se déplacera vers :math:`\mathbf{y}^o` ou vers +:math:`\mathbf{x}^b`, en proportion inverse des variances dans +:math:`\mathbf{B}` et :math:`\mathbf{R}`. Comme autre extension, on peut aussi +dire qu'il est équivalent de rechercher l'analyse à l'aide d'un algorithme de +BLUE ou d'un algorithme de 3DVAR. + +Utiliser l'interface graphique (GUI) pour construire le cas ADAO +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +En premier lieu, il faut activer le module ADAO en choisissant le bouton ou le +menu approprié de module de SALOME, et on voit : + + .. _adao_activate2: + .. image:: images/adao_activate.png + :align: center + :width: 100% + .. centered:: + **Activation du module ADAO dans SALOME** + +Choisir le bouton "*Nouveau*" dans cette fenêtre. On obtient directement +l'interface EFICAS pour la définition de variables, en même temps que l'"*Arbre +d'étude*" de SALOME. On peut alors choisir le bouton "*Nouveau*" |eficas_new| +pour créer un nouveau cas ADAO, et on voit : + + .. _adao_viewer: + .. image:: images/adao_viewer.png + :align: center + :width: 100% + .. centered:: + **L'éditeur EFICAS pour la définition de cas dans le module ADAO** + +Ensuite, il faut remplir les variables pour construire le cas ADAO en utilisant +les conditions d'expérience décrites ci-dessus. L'ensemble des informations +techniques données au-dessus sont à insérer directement dans la définition du +cas ADAO, en utilisant le type *String* pour toutes les variables. Lorsque la +définition du cas est prête, il faut l'enregistrer comme un fichier natif de ype +"*JDC (\*.comm)*" à un endroit quelconque dans l'arborescence de l'utilisateur. +Il faut bien se rappeler que d'autres fichiers seront aussi créés à côté de ce +premier, donc il est judicieux de faire un répertoire spécifique pour ce cas, et +d'enregistrer dedans le fichier. Le nom du fichier apparaît dans la fenêtre de +l'"*Arbre d'étude*", sous le menu "*ADAO*". La définition finale du cas +ressemble à : + + .. _adao_jdcexample01: + .. image:: images/adao_jdcexample01.png + :align: center + :width: 100% + .. centered:: + **Définition des conditions d'expérience choisies pour le cas ADAO** + +Pour poursuivre, on a besoin de générer le schéma YACS à partir de la définition +du cas ADAO. Pour faire cela, on peut activer le menu contextuel par click droit +sur le nom du cas dans la fenêtre de l'"*Arbre d'étude*", et choisir le +sous-menu "*Exporter vers YACS*" (ou le bouton "*Exporter vers YACS*" +|eficas_yacs|) comme ci-dessous : + + .. _adao_exporttoyacs00: + .. image:: images/adao_exporttoyacs.png + :align: center + :scale: 75% + .. centered:: + **Sous-menu contextuel "*Exporter vers YACS*" pour générer le schéma YACS à partir du cas ADAO** + +Cette commande conduit à la génération d'un schéma YACS, à l'activation du module +YACS dans SALOME, et à ouvrir le nouveau schéma dans l'interface graphique du +module YACS [#]_. Après avoir éventuellement réorganisé les noeuds en utilisant +le sous-menu contextuel "*arranger les noeuds locaux*" de la vue graphique du +schéma YACS, on obtient la représentation suivante du schéma ADAO généré : + + .. _yacs_generatedscheme: + .. image:: images/yacs_generatedscheme.png + :align: center + :width: 100% + .. centered:: + **Schéma YACS généré à partir du cas ADAO** + +Après ce point, toutes les modifications, exécutions et post-processing du +schéma d'assimilation de données seront effectués dans le module YACS. De +manière à vérifier les résultats d'une manière simple, on crée ici un nouveau +noeud YACS en utilisant le sous-menu "*Noeud de script in-line*" dans la vue +graphique de YACS, et on le nomme "*PostProcessing*". + +Ce noeud de script va récupérer l'analyse issue de l'assimilation de données +depuis le port de sortie "*algoResults*" du bloc de calcul (qui donne accés à un +objet Python SALOME), et va l'afficher à la sortie standard. + +Pour obtenir ceci, ce noeud de script doit comporter un port d'entrée de type +"*pyobj*", nommé "*results*" par exemple, qui doit être relié graphiquement au +port de sortie "*algoResults*" du bloc de calcul. Ensuite, le code pour remplir +le noeud de script est:: + + Xa = results.ADD.get("Analysis")[-1] + + print + print "Analysis =",Xa + print + +Le schéma YACS complété peut être enregistré (en écrasant le schéma généré si la +commande ou le bouton "*Enregistrer*" sont utilisés, ou sinon avec un nom +nouveau par la commande "*Enregistrer sous*"). De manière pratique, la mise au +point d'une telle procédure de post-processing peut être réalisée dans YACS pour +la tester, et ensuite entièrement enregistrée dans un script Python qui peut +être intégré au cas ADAO en utilisant le mot-clé "*UserPostAnalysis*". + +Ensuite, de manière classique dans YACS, le schéma doit être compilé, et ensuite +être exécuté. Après la fin de l'exécution, les affichages sur la sortie standard +sont disponibles dans la fenêtre "*fenêtre de sortie de YACS*" (ou "*YACS +Container Log*"), obtenue par clic droit à l'aide du menu contextuel de la +fenêtre "*proc*" du schéma YACS comme montré ci-dessous: + + .. _yacs_containerlog: + .. image:: images/yacs_containerlog.png + :align: center + :width: 100% + .. centered:: + **Menu YACS de la fenêtre de sortie, et boite de dialogue montrant la sortie** + +On vérifie que le résultat est correct en observant si la fenêtre de sortie +contient la ligne suivante: + + Analysis = [0.5, 0.5, 0.5] + +comme montré dans l'image précédente. + +Pour étendre cet exemple, on peut remarquer que le même problème résolu par un +algorithme de 3DVAR donne le même résultat. Cet algorithme peut être choisi lors +de l'étape de construction du cas ADAO, avant d'entrer dans l'étape YACS. Le cas +ADAO en 3DVAR est entièrement similaire au cas algorithmique du BLUE, comme +montré dans la figure suivante: + + .. _adao_jdcexample02: + .. image:: images/adao_jdcexample02.png + :align: center + :width: 100% + .. centered:: + **Définir un cas ADAO en 3DVAR est entièrement similaire à un cas en BLUE** + +Il n'y a qu'une seule commande qui change, avec "*3DVAR*" dans le champ +"*Algorithm*" à la place de "*Blue*". + +Construire un cas d'estimation avec une définition de données externes par scripts +---------------------------------------------------------------------------------- + +Il est utile d'acquérir une partie ou la totalité des données depuis une +définition externe, en utilisant des scripts Python pour donner accès à ces +données. À titre d'exemple, on construit ici un cas ADAO présentant le même +dispositif expérimental que dans l'exemple ci-dessus `Construire un cas +d'estimation avec une définition explicite des données`_, mais en utilisant des +données issues d'un unique fichier script Python externe. + +En premier lieu, on écrit le fichier script suivant, utilisant des noms +conventionnels pour les variables requises. Ici toutes les variables sont +définies dans le même script, mais l'utilisateur peut choisir de séparer le +fichier en plusieurs autres, ou de mélanger une définition explicite des données +dans l'interface graphique ADAO et une définition implicite dans des fichiers +externes. Le fichier script actuel ressemble à:: + + import numpy + # + # Definition of the Background as a vector + # ---------------------------------------- + Background = [0, 0, 0] + # + # Definition of the Observation as a vector + # ----------------------------------------- + Observation = "1 1 1" + # + # Definition of the Background Error covariance as a matrix + # --------------------------------------------------------- + BackgroundError = numpy.array([[1., 0., 0.], [0., 1., 0.], [0., 0., 1.]]) + # + # Definition of the Observation Error covariance as a matrix + # ---------------------------------------------------------- + ObservationError = numpy.matrix("1 0 0 ; 0 1 0 ; 0 0 1") + # + # Definition of the Observation Operator as a matrix + # -------------------------------------------------- + ObservationOperator = numpy.identity(3) + +Les noms des variables Python sont obligatoires, de manière à définir les bonnes +variables dans le cas, mais le script Python peut être plus conséquent et +définir des classes, des fonctions, des accès à des fichiers ou des bases de +données, etc. avec des noms différents. De plus, le fichier ci-dessus présente +différentes manières de définir des vecteurs ou des matrices, utilisant des +listes, des chaînes de caractères (comme dans Numpy ou Octave), des types +vecteur ou matrice de Numpy, et des fonctions spéciales de Numpy. Toutes ces +syntaxes sont valides. + +Après avoir enregistré ce script dans un fichier (nommé ici "*script.py*" pour +l'exemple) à un endroit quelconque dans l'arborescence de l'utilisateur, on +utilise l'interface graphique (GUI) pour construire le cas ADAO. La procédure +pour compléter le cas est similaire à celle de l'exemple précédent à part le +fait que, au lieu de choisir l'option "*String*" pour le mot-clé "*FROM*" de +chaque variable, on choisit l'option "*Script*". Cela conduit à une entrée +"*SCRIPT_DATA/SCRIPT_FILE*" dans l'arbre graphique, permettant de choisir un +fichier de la manière suivante: + + .. _adao_scriptentry01: + .. image:: images/adao_scriptentry01.png + :align: center + :width: 100% + .. centered:: + **Définir une variable d'entrée en utilisant un fichier script externe** + +Les autres étapes et résultats sont exactement les mêmes que dans l'exemple +précédent `Construire un cas d'estimation avec une définition explicite des +données`_. + +Dans la pratique, cette démarche par scripts est la manière la plus facile pour +récupérer des information depuis des calculs en ligne ou préalables, depuis des +fichiers statiques, depuis des bases de données ou des flux informatiques, +chacun pouvant être dans ou hors SALOME. Cela permet aussi de modifier aisément +des données d'entrée, par exemple à des fin de débogage ou pour des traitements +répétitifs, et c'est la méthode la plus polyvalente pour paramétrer les données +d'entrée. **Mais attention, la méthodologie par scripts n'est pas une procédure +"sûre", en ce sens que des données erronées ou des erreurs dans les calculs, +peuvent être directement introduites dans l'exécution du schéma YACS.** + +Ajout de paramètres pour contrôler l'algorithme d'assimilation de données +------------------------------------------------------------------------- + +On peut ajouter des paramètres optionnels pour contrôler le calcul de +l'algorithme d'assimilation de données. Ceci se fait en utilisant le mot-clé +"*AlgorithmParameters*" dans la définition du cas ADAO, qui est un mot-clé de la +commande générale "*ASSIMILATION_STUDY*". Ce mot-clé nécessite un dictionnaire +Python, contenant des paires clé/valeur. La liste des paramètres optionnels +possibles sont donnés dans la section :ref:`section_reference`. + +Le dictionnaire doit être défini, par exemple, dans un fichiers externe de +script Python, en utilisant le nom obligatoire de variable +"*AlgorithmParameters*" pour le dictionnaire. Toutes les clés dans le +dictionnaire sont optionnelles, elles disposent toutes d'une valeur par défaut, +et elles peuvent être présentes sans être utiles. Par exemple: + + AlgorithmParameters = { + "Minimizer" : "CG", # Choix possible : "LBFGSB", "TNC", "CG", "BFGS" + "MaximumNumberOfSteps" : 10, + } + +Si aucune borne n'est requise sur les variables de contrôle, alors on peut +choisir les algorithmes de minimisation "*BFGS*" ou "*CG*" pour tous les +algorithmes variationnels d'assimilation de données ou d'optimisation. Pour +l'optimisation sous contraintes, le minimiseur "*LBFGSB*" est souvent plus +robuste, mais le "*TNC*" est parfois plus performant. + +Ensuite le script peut être ajouté au cas ADAO, dans une entrée de type fichier +pour le mot-clé "*AlgorithmParameters*", de la manière suivante: + + .. _adao_scriptentry02: + .. image:: images/adao_scriptentry02.png + :align: center + :width: 100% + .. centered:: + **Ajouter des paramètres pour contrôler l'algorithme et les sorties** + +Les autres étapes et résultats sont exactement les mêmes que dans l'exemple +précédent `Construire un cas d'estimation avec une définition explicite des +données`_. Le dictionnaire peut aussi être donné directement dans le champ +d'entrée de type chaîne de caractères pour le mot-clé. + +Construire un cas complexe avec une définition de données externes par scripts +------------------------------------------------------------------------------ + +Cet exemple plus complexe et complet peut être considéré comme un cadre de base +pour le traitement des entrées de l'utilisateur, qui doit ensuite être adapté à +chaque application réelle. Néanmoins, les squelettes de fichiers sont +suffisamment généraux pour avoir été utilisés pour des applications variées en +neutronique, mécanique des fluides... Ici, on ne s'intéresse pas aux résultats, +mais plus sur le contrôle de l'utilisateur des entrées et sorties dans un cas +ADAO. Comme précédemment, toutes les valeurs numériques de cet exemple sont +arbitraires. + +L'objectif est de configurer les entrées et les sortie d'un problème physique +d'estimation par des scripts externes Python, en utilisant un opérateur +non-linéaire général, en ajoutant un contrôle sur les paramètres et ainsi de +suite... Les scripts complets peuvent être trouvés dans le répertoire des +exemples de squelettes ADAO sous le nom de +"*External_data_definition_by_scripts*". + +Conditions d'expérience ++++++++++++++++++++++++ + +On continue à opérer dans un espace à 3 dimensions, afin de limiter la taille de +l'objet numérique indiqué dans les scripts, mais le problème ne dépend pas de la +dimension. + +On choisit un contexte d'expériences jumelles, en utilisant un état vrai +:math:`\mathbf{x}^t` connu, mais de valeur arbitraire:: + + Xt = [1 2 3] + +L'état d'ébauche :math:`\mathbf{x}^b`, qui représentent une connaissance *a +priori* de l'état vrai, est construit comme une perturbation aléatoire +gaussienne de 20% de l'état vrai :math:`\mathbf{x}^t` pour chaque composante, +qui est:: + + Xb = Xt + normal(0, 20%*Xt) + +Pour décrire la matrice des covariances d'erreur d'ébauche math:`\mathbf{B}`, on +fait comme précédemment l'hypothèse d'erreurs décorrélées (c'est-à-dire, une +matrice diagonale, de taille 3x3 parce-que :math:`\mathbf{x}^b` est de taille 3) +et d'avoir la même variance de 0,1 pour toutes les variables. On obtient:: + + B = 0.1 * diagonal( length(Xb) ) + +On suppose qu'il existe un opérateur d'observation :math:`\mathbf{H}`, qui peut +être non linéaire. Dans une procédure réelle de recalage ou de problème inverse, +les codes de simulation physique sont intégrés dans l'opérateur d'observation. +On a également besoin de connaître son gradient par rapport à chaque variable +estimée, ce qui est une information rarement connu avec les codes industriels. +Mais on verra plus tard comment obtenir un gradient approché dans ce cas. + +Étant en expériences jumelles, les observations :math:`\mathbf{y}^o` et leur +matrice de covariances d'erreurs :math:`\mathbf{R}` sont générées en utilisant +l'état vrai :math:`\mathbf{x}^t` et l'opérateur d'observation +:math:`\mathbf{H}`:: + + Yo = H( Xt ) + +et, avec un écart-type arbitraire de 1% sur chaque composante de l'erreur:: + + R = 0.0001 * diagonal( lenght(Yo) ) + +Toutes les informations requises pour l'estimation par assimilation de données +sont maintenant définies. + +Squelettes des scripts décrivant les conditions d'expérience +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +On donne ici les éléments essentiels de chaque script utilisé par la suite pour +construire le cas ADAO. On rappelle que l'utilisation de ces scripts dans de +réels fichiers Python nécessite de définir correctement le chemin de modules ou +des codes importés (même si le module est dans le même répertoire que le fichier +Python qui l'importe. On indique le chemin à renseigner en utilisant la mention +``"# INSERT PHYSICAL SCRIPT PATH"``), l'encodage si nécessaire, etc. Les noms de +fichiers indiqués pour les scripts qui suivent sont arbitraires. Des exemples +complets de fichiers scripts sont disponibles dans le répertoire standard des +exemples ADAO. + +On définit en premier lieu l'état vrai :math:`\mathbf{x}^t` et une fonction +utiles à la construction de matrices, dans un fichier script Python nommé +``Physical_data_and_covariance_matrices.py``:: + + import numpy + # + def True_state(): + """ + Arbitrary values and names, as a tuple of two series of same length + """ + return (numpy.array([1, 2, 3]), ['Para1', 'Para2', 'Para3']) + # + def Simple_Matrix( size, diagonal=None ): + """ + Diagonal matrix, with either 1 or a given vector on the diagonal + """ + if diagonal is not None: + S = numpy.diag( diagonal ) + else: + S = numpy.matrix(numpy.identity(int(size))) + return S + +On définit ensuite l'état d'ébauche :math:`\mathbf{x}^b` comme une perturbation +aléatoire de l'état vrai, en ajoutant une *variable ADAO requise* à la fin du +script de définition, de manière à exporter la valeur définie. C'est réalisé +dans un fichier de script Python nommé ``Script_Background_xb.py``:: + + from Physical_data_and_covariance_matrices import True_state + import numpy + # + xt, names = True_state() + # + Standard_deviation = 0.2*xt # 20% for each variable + # + xb = xt + abs(numpy.random.normal(0.,Standard_deviation,size=(len(xt),))) + # + # Creating the required ADAO variable + # ------------------------------------ + Background = list(xb) + +De la même manière, on définit la matrice des covariances de l'erreur d'ébauche +:math:`\mathbf{B}` comme une matrice diagonale, de la même longueur de diagonale +que l'ébauche de la valeur vraie, en utilisant la fonction d'aide déjà définie. +C'est réalisé dans un fichier script Python nommé +``Script_BackgroundError_B.py``:: + + from Physical_data_and_covariance_matrices import True_state, Simple_Matrix + # + xt, names = True_state() + # + B = 0.1 * Simple_Matrix( size = len(xt) ) + # + # Creating the required ADAO variable + # ----------------------------------- + BackgroundError = B + +Pour poursuivre, on a besoin de l'opérateur d'observation :math:`\mathbf{H}` +comme une fonction de l'état. Il est ici défini dans un fichier externe nommé +``"Physical_simulation_functions.py"``, qui doit contenir une fonction appelée +``"DirectOperator"``. Cette fonction est une une fonction utilisateur, +représentant de manière programmée l'opérateur :math:`\mathbf{H}`. On suppose +que cette fonction est donnée par l'utilisateur. Un squelette simple est donné +ici par facilité:: + + def DirectOperator( XX ): + """ Direct non-linear simulation operator """ + # + # --------------------------------------> EXAMPLE TO BE REMOVED + if type(XX) is type(numpy.matrix([])): # EXAMPLE TO BE REMOVED + HX = XX.A1.tolist() # EXAMPLE TO BE REMOVED + elif type(XX) is type(numpy.array([])): # EXAMPLE TO BE REMOVED + HX = numpy.matrix(XX).A1.tolist() # EXAMPLE TO BE REMOVED + else: # EXAMPLE TO BE REMOVED + HX = XX # EXAMPLE TO BE REMOVED + # --------------------------------------> EXAMPLE TO BE REMOVED + # + return numpy.array( HX ) + +On n'a pas besoin des opérateurs linéaires associés ``"TangentOperator"`` et +``"AdjointOperator"`` car ils vont être approximés en utilisant les capacités +d'ADAO. + +On insiste sur le fait que ces opérateurs non-linéaire ``"DirectOperator"``, +linéaire tangent ``"TangentOperator"`` et linéaire adjoint ``"AdjointOperator"`` +proviennent de la connaissance de la physique, incluant le code de simulation de +référence physique, et doivent être soigneusement mis au point par l'utilisateur +de l'assimilation de données ou de l'optimisation. Les erreurs de simulation ou +d'usage des opérateurs ne peuvent pas être détectés ou corrigés par +l'environnement seul ADAO d'assimilation de données et d'optimisation. + +Dans cet environnement d'expériences jumelles, l'observation +:math:`\mathbf{y}^o` et sa matrice des covariances d'erreur :math:`\mathbf{R}` +peuvent être générées. C'est réalisé dans deux fichiers de script Python, le +premier étant nommé ``Script_Observation_yo.py``:: + + from Physical_data_and_covariance_matrices import True_state + from Physical_simulation_functions import DirectOperator + # + xt, noms = True_state() + # + yo = DirectOperator( xt ) + # + # Creating the required ADAO variable + # ----------------------------------- + Observation = list(yo) + +et le second nommé ``Script_ObservationError_R.py``:: + + from Physical_data_and_covariance_matrices import True_state, Simple_Matrix + from Physical_simulation_functions import DirectOperator + # + xt, names = True_state() + # + yo = DirectOperator( xt ) + # + R = 0.0001 * Simple_Matrix( size = len(yo) ) + # + # Creating the required ADAO variable + # ----------------------------------- + ObservationError = R + +Comme dans les exemples précédents, il peut être utile de définir certains +paramètres pour l'algorithme d'assimilation de données. Par exemple, si on +utilise l'algorithme standard de "*3DVAR*", les paramètres suivants peuvent être +définis dans un fichier de script Python nommé +``Script_AlgorithmParameters.py``:: + + # Creating the required ADAO variable + # ----------------------------------- + AlgorithmParameters = { + "Minimizer" : "TNC", # Possible : "LBFGSB", "TNC", "CG", "BFGS" + "MaximumNumberOfSteps" : 15, # Number of global iterative steps + "Bounds" : [ + [ None, None ], # Bound on the first parameter + [ 0., 4. ], # Bound on the second parameter + [ 0., None ], # Bound on the third parameter + ], + } + +Enfin, il est courant de post-traiter les résultats, en les récupérant aprés la +phase d'assimilation de données de manière à les analyser, les afficher ou les +représenter. Cela nécessite d'utiliser un fichier script Python intermédiaire de +manière à extraire ces résultats à la fin de la procédure d'assimilation de +données ou d'optimisation. L'exemple suivant de fichier script Python, nommé +``Script_UserPostAnalysis.py``, illustre le fait:: + + from Physical_data_and_covariance_matrices import True_state + import numpy + # + xt, names = True_state() + xa = ADD.get("Analysis")[-1] + x_series = ADD.get("CurrentState")[:] + J = ADD.get("CostFunctionJ")[:] + # + # Verifying the results by printing + # --------------------------------- + print + print "xt = %s"%xt + print "xa = %s"%numpy.array(xa) + print + for i in range( len(x_series) ): + print "Etape %2i : J = %.5e et X = %s"%(i, J[i], x_series[i]) + print + +Finalement, on obtient la description de l'ensemble des conditions d'expériences +à travers un ensemble de fichiers listés ici: + +#. ``Physical_data_and_covariance_matrices.py`` +#. ``Physical_simulation_functions.py`` +#. ``Script_AlgorithmParameters.py`` +#. ``Script_BackgroundError_B.py`` +#. ``Script_Background_xb.py`` +#. ``Script_ObservationError_R.py`` +#. ``Script_Observation_yo.py`` +#. ``Script_UserPostAnalysis.py`` + +On insiste ici sur le fait que tous ces scripts sont écrits par l'utilisateur et +ne peuvent être testés automatiquement par ADAO. Ainsi, l'utilisateur est tenu +de vérifier les scripts (et en particulier leurs entrées/sorties) afin de +limiter les difficultés de débogage. On rappelle que: **la méthodologie par +scripts n'est pas une procédure "sûre", en ce sens que des données erronées ou +des erreurs dans les calculs, peuvent être directement introduites dans +l'exécution du schéma YACS.** + +Construire la cas avec une définition de données externes par scripts ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Tous ces scripts peuvent ensuite être utilisés pour définir le cas ADAO avec une +définition de données externes par des fichiers de script Python. Cela se +réalise de manière tout à fait similaire à la méthode décrite dans la partie +précédente `Construire un cas d'estimation avec une définition de données +externes par scripts`_. Pour chaque variable à définir, on sélectionne l'option +"*Script*" du mot-clé "*FROM*", ce qui conduit à une entrée +"*SCRIPT_DATA/SCRIPT_FILE*" dans l'arbre graphique. Pour le mot-clé +"*ObservationOperator*", on choisit la forme "*ScriptWithOneFunction*" et on +conserve la valeur par défaut de l'incrément différentiel. + +Les autres étapes pour construire le cas ADAO sont exactement les mêmes que dans +la partie précédente `Construire un cas d'estimation avec une définition +explicite des données`_. + +En utilisant l'opérateur linéaire simple :math:`\mathbf{H}` du fichier script +Python ``Physical_simulation_functions.py`` disponible dans le répertoire +standard des exemples, les résultats ressemblent à:: + + xt = [1 2 3] + xa = [ 1.000014 2.000458 3.000390] + + Etape 0 : J = 1.81750e+03 et X = [1.014011, 2.459175, 3.390462] + Etape 1 : J = 1.81750e+03 et X = [1.014011, 2.459175, 3.390462] + Etape 2 : J = 1.79734e+01 et X = [1.010771, 2.040342, 2.961378] + Etape 3 : J = 1.79734e+01 et X = [1.010771, 2.040342, 2.961378] + Etape 4 : J = 1.81909e+00 et X = [1.000826, 2.000352, 3.000487] + Etape 5 : J = 1.81909e+00 et X = [1.000826, 2.000352, 3.000487] + Etape 6 : J = 1.81641e+00 et X = [1.000247, 2.000651, 3.000156] + Etape 7 : J = 1.81641e+00 et X = [1.000247, 2.000651, 3.000156] + Etape 8 : J = 1.81569e+00 et X = [1.000015, 2.000432, 3.000364] + Etape 9 : J = 1.81569e+00 et X = [1.000015, 2.000432, 3.000364] + Etape 10 : J = 1.81568e+00 et X = [1.000013, 2.000458, 3.000390] + ... + +L'état au premier pas est l'état d'ébauche :math:`\mathbf{x}^b` généré +aléatoirement. Au cours du calcul, ces affichages sur la sortie standard sont +disponibles dans la fenêtre "*fenêtre de sortie de YACS*", que l'on obtient par +clic droit sur la fenêtre "*proc*" du schéma YACS exécuté. + +.. [#] Pour de plus amples informations sur YACS, voir le *Guide utilisateur du module YACS* disponible dans le menu principal *Aide* de l'environnement SALOME. diff --git a/doc/fr/glossary.rst b/doc/fr/glossary.rst new file mode 100644 index 0000000..3bfeba7 --- /dev/null +++ b/doc/fr/glossary.rst @@ -0,0 +1,89 @@ +.. _section_glossary: + +Glossaire +========= + +.. glossary:: + :sorted: + + cas + Un cas ADAO est défini par un jeu de données et de choix, rassemblés par + l'intermédiaire de l'interface utilisateur du module. Les données sont les + mesures physiques qui doivent être techniquement disponibles avant ou + pendant l'exécution du cas. Le (ou les) code(s) de simulation et la + méthode d'assimilation de données ou d'optimisation, ainsi que leurs + paramètres, doivent être choisis, ils définissent les propriétés + d'exécution du cas. + + itération + Une itération a lieu lorsque l'on utilise des méthodes d'optimisation + itératives (par exemple le 3DVAR), et c'est entièrement caché à + l'intérieur du noeud principal de type YACS OptimizerLoop nommé + "*compute_bloc*". Néanmoins, l'utilisateur peut observer le processus + itératif à l'aide de la fenêtre "*YACS Container Log*", qui est mise à + jour au fur et à mesure du déroulement du calcul, et en utilisant des + "*Observers*" attachés à des variables de calcul. + + APosterioriCovariance + Mot-clé indiquant la matrice de covariance des erreurs *a posteriori* + d'analyse. + + BMA (Background minus Analysis) + Différence entre l'état d'ébauche et l'état optimal estimé, notée + :math:`\mathbf{x}^b - \mathbf{x}^a`. + + OMA (Observation minus Analysis) + Différence entre les observations et le résultat de la simulation basée + sur l'état optimal estimé, l'analyse, filtré pour être compatible avec les + observations, notée :math:`\mathbf{y}^o - \mathbf{H}\mathbf{x}^a`. + + OMB (Observation minus Background) + Différence entre les observations et le résultat de la simulation basée + sur l'état d'ébauche, filtré pour être compatible avec les observations, + notée :math:`\mathbf{y}^o - \mathbf{H}\mathbf{x}^b`. + + SigmaBck2 + Mot-clé indiquant le paramètre de Desroziers-Ivanov mesurant la + consistance de la partie due à l'ébauche dans l'estimation optimale d'état + par assimilation de données. Sa valeur peut être comparée à 1, une "bonne" + estimation conduisant à un paramètre "proche" de 1. + + SigmaObs2 + Mot-clé indiquant le paramètre de Desroziers-Ivanov mesurant la + consistance de la partie due à l'observation dans l'estimation optimale + d'état par assimilation de données. Sa valeur peut être comparée à 1, une + "bonne" estimation conduisant à un paramètre "proche" de 1. + + MahalanobisConsistency + Mot-clé indiquant le paramètre de Mahalanobis mesurant la consistance de + l'estimation optimale d'état par assimilation de données. Sa valeur peut + être comparée à 1, une "bonne" estimation conduisant à un paramètre + "proche" de 1. + + analyse + L'état optimal estimé par une procédure d'assimilation de données ou + d'optimisation. + + background + C'est le terme anglais pour désigner l'ébauche. + + ébauche + C'est l'état du système connu *a priori*, qui n'est pas optimal, et qui + est utilisé comme une estimation grossière, ou "la meilleure connue", + avant une estimation optimale. + + innovation + Différence entre les observations et le résultat de la simulation basée + sur l'état d'ébauche, filtré pour être compatible avec les observations. + C'est similaire à OMB dans les cas statiques. + + CostFunctionJ + Mot-clé indiquant la fonction de minimisation, notée :math:`J`. + + CostFunctionJo + Mot-clé indiquant la partie due aux observations dans la fonction de + minimisation, notée :math:`J^o`. + + CostFunctionJb + Mot-clé indiquant la partie due à l'ébauche dans la fonction de + minimisation, notée :math:`J^b`. diff --git a/doc/fr/images/ADAO_logo.png b/doc/fr/images/ADAO_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..59abee833aded9ff8f7f51ed39680eaaeb812f4e GIT binary patch literal 18263 zcmd43^|j({N2DczDoNQx5D(jg$-AkBcJFtl{s z&HMYgulq0DA4HuwXP>?HUh7%Ude%OKKZB_d;nU+oAP^$er;6GT2)YgUvxSQeJ_$3^ zd;|W%aZ}Y)!kNQkAQBOamO0G@A5pm}y>ioWwsP|@bFqZHdS+(peUwwN0V$${7$xLfiw&;tmlV2?gwTo%}h6!7hAw4>riF8ZKuWES{ooOK= z@$cau2KrkHu4^#loI|)*N4N$of<&i#95^SL(dA_BX*IPJ4q^t0HuN~$Z(hQZGgruP z$kfaz#3V-ngB`&q3()!s$)`YE3G$kdvX%JEVhq;%d zXq0UZGcuDUwEA!nV#0{+BAgMf^6&>4PW9zt=6E!dFtml+pc_ z2cofSL@AUh5K)8@=5!>G;PBBH-=cPCU}F2S2_*(b4~0&yqmPz9Ciew-*FNO1-C|RN zxylr?y;tr)@Jb$?BQ|ZMSx?8b=+9%)yjf~>Z}i>x6f}IFuHGCxO(X{PQ|u~J-1MRM znA{P#-qVohZx#vE_O_h-Qy$NDZsJkP61{#>pl$XC-*kizhW+eJfk{?QF?CmA>P;@e z=_*U;b4sW)E>C#9;N#^oD4oVAo;yF9nR#;L(?3_#$HK7A5PgUZ#V?V(?g)x?EXgmB zz0{eN7uhrD(%rq&5%f4R0gI_q3G&~lYaeJr#2#8vJb`zxtrPfbve5m@PCy2~)410| zAsJJQe@x3w{`0w(MM#qd10U?iPlv$OiarfP)GtoxGUYfvdH3{?Vpw}GQk_XwnEWS` znVte6Y}H>M+m=N{lyW6Ah&DtY4~~iMXkOVz!3TTaJrP7(F)~2cj(3~tPfEr{!CGq< zlJ@YWS&VW{Ofg8O4_=v-$qwPd%b-E^`UMtgC0AuU#@ z+xj%jOx4GU6{>DVK}3=F*w7)N<+x&$^C*uLp~oRAL*CXlM9PpO8d6vO#V_x|bYZJ5 zrt=|j;g?@3==Z7I@sB#Ftr-|}8QX0MSn;7hxvcQaW+=VZ$|^z{JNJjs=91nfizB}H z6?g9iQx(}WGn>SC5_ScKI?hgq4Vb^NrD)$GYBrMS8PctoOzptVRf1y&Sblk7Vf|rR zJL+{KPbiYGzhX}N0WYMqA|Of8B)K!|{YWYcq4}4hfaqMpSVQ>rrO|uMCt31DOAuOfUiRd43-Em$f)?}iuPgQ=<8 zchjd!xlAc7iWi2~fvgKH`zkIItyX*G9w1sT)(#9~j&aKLzAZaT$z`xD5H7s=dCK+! zS)zM?v5syJi?W+5pL~xbQ`|SjoivRpWb!MKT@c>ij8Xi*8H7d?vTh$}8?GaqI+d?8 z#II{H4BjeVuZ4y-kDdtcceFc?O4M%41(PGtoF1Sh=XZ&RhH-rF((hWo7sC>mNYu^b z{(P<-_c$gyhs2@l^8qu0)%gMI@4^nf-{ls*+q4I3bqW@ty+;D4)2|WBCO)_nZz_u| z4n_Vh)lHToUAySIXy}#VQR-Iq)vOgukG)xqyr{Wq$J;y!VB)l<(_EKr-`zsX8+bod zJrCR3;&~8KD{y7L^H14CxpO!|v}};8%x>;i=&bHnSr6!0sMnh}QIQ{!7FBpS8TLAa z&%Mr^yq-2nF#H={__eok>q2?<>BK!UM^QR@wyltcH?T^e*LmNeO`792vhml;*)Ybb zFZIMQ@vPSsbU&HIuaq6^E8cX4$5u#7n3qX}I9JAmSkdFc?tLt6AQP1#>~s7R@!@Fe z@|Vj8M(d`fH+t+@-=xe)F;qn|G-^|6RO%1yf; zNa15vMT4G0+VZeAGnfpqi8Ci#Euy7KolbsEyLr0dN`pA?jdj5A#yE&EITg7rn|^gS zprhGiImxG*OPp<3ffT4dZ|xo_^4a*Kmx^BEe3;ynBH8pV#G$@xS8En6#uj17U}9Iy z5A0&2Jbw>HhDiSMK>u7b&D{Uce=ZsB!7-PJ@=)*+H!OiZ$2`KabAjCr%TRRs6^r~? zv2N-^`=^5mmDlKRRN%Qeb~SxgvGcUy8sdoQ(XUExX9Sy4&p7&pK41Bl>)xmHbtbbt z;&vxP91tft1bz1LR`QJS$P*lRYDZs;xmdBHsBdBIBtqz)5QGS^GRK9{#+kWWNs_Fe zd`xLw=cse$$HC+t=y@P1nq-LmeMC_Qll$2-Cs%VPKOus_`Rdz9Lz1EQDkSPW0xiNE zK@*D1uikd#&sU0Op9^QV>OR#x{)h}VtGBc!K2$}AVJS%B!g7*Ux%*ac+a8xqC}!Zo zQh()&(w%dl6{kI#gnVZ}MCCigXX5o(Uvi3l?ue**w0?bfcut)5FfVynE`%48+n-Bh zh5>2I&Et;@RyyD5=N5m*b+S>dV3$i9Na4PgnAzLIfk&J6WtJ@A;e)50+D|B$8v%-~7~ri+mk1B%TR}2=Bk9<{QeI?vBf-_HcD{7`63# zvq{sASCp_M6z-%JUH1CZ>Mw>S7ARVN_(U)#Cb!X>#{?>~{hI1$W7^sdk1NR$g#5<> zsGTUwt6$pI!nU!(XI&9TPzQ$|%wjxBWq1ckq4=wgkw8aG?$;*B?fSNUzMt-PTvwBy zeK5J3%q)>g9Xhh?`1eC_qRx>T@2fCL`L!vAzOP)-GGuvqZ^RTdnD)yBs)M_g{K=?Z zt18E(!=sSF)&n1Sf(|fFabYY3#exz6=6yRZbRe=|lx?}~wYm}-zu37a%gGE%ps{AV zp>GGO^eP5BXaXtZUz1mJ_g-1GwXp|MJf$nfqg8>kQ4WOK;QYZ{`*crsY*<242!jO@fLK9@she6O%iF@Qdh0#FbIW?Cj(%yv8up5`^K;&3=A0+-;39rCSD zOQbtcv{~Ay4fixd`2)inXrs=uE_&>%x0ReMy!l+OLDoh-c%CcR)=v6b67Fqcr9``mxc#BaW$i+&_N4#3=N14XzLGpQC|+FyN0*P=f|h-Dm~|L z=#hq!@mp~Q$39Qz4x|WU>eq~2`AV$}b{?Jl4RO~i*DQ@|ZR|kNie}^Bpz|+`4*smK zORPAzskq-T;;Kz#SkxFqH~3ZyZ6h(wQ^s6GqbFEpT;<^C6>7X<6i>VhOUFIXpStMH`FRd9B@y9vTE|l>rfk)d+2_ zn8%c2gQ7v6u|NZQzRw2>9mGgiv6t$?yDvG>_hTj$^F@r`R(7#z@06l1TGAuJ2qYhG zElVghfz71nmslqISssJLMAG+b{;=?Fq9TEv$UssOW>%hRb_)KY;+_+L?N+u*p3JBS7=8@dC;W#m~?V3I+o&yOLGKK zaYG>ZnB1g-$r-rvB7a6G!R>Ke>Rt|*+>pjsPHe(Tfr*xqNI7~2`r`28)tVIx25d-D z(n~m-oj&UH`@AB{7;S_V83N*uIWy08ve@n*tL7DF-P+T-^`f5&UqOOdQmD8a+xEX@ zlBITMq0P}Jq^QHuA-ZGJiB$ne%-4kdn!#-+P!4DS%XbfwP6aZA!!+cg&4nVZ$Gofe zgb?z8GZKl3t|E!^*-Yak0I7H{cQML!({puSf(@TIl&u}_J@r2sw7AdiL5YqGa(w&} z@t=-gA{@r>Ubhm-LB~j7EEae>6yKfGvoJ#oUVwO`sYi$Yv2ta<+esTfsDACwyx@SK5&Mmn1LH0IU_IO-7WTn@7vP}p91<0L78Vm zNCPS0;ey10T}TJ!cD&TibVB&RwXzBv-G<;2Q%OwRBZYN?e8q~IwVM2Y{E{%}I*&yq}Yr+ z)trcwy0y#E{DsABNH7v6fG+1;0u5NN)EsoUg)6cKAAn`lq@9O8nI1x;1=}LMcJJMz zTNJJ-%b!FfW(-A7@|Mz&pJWHk(Af?hVp$ja$FDOLJ=*=Q?<<%w6%yf!!qNbdDyb&U zIG|{tija3q-nG2h*x--ImZ@gTz_hmEMAxgQ+h=vwWBrYdgU$>=O9uO@PXNzwi*kmr z61aNn8GPy@T8bAJVz98uc#&E~-h}H2S8MxIwH6^d9TAWK&DH;z;;;NU`s2u7Tg7kG zo(GL$p`tXwI(QvqJzsGBe%D%lJDI+{x46Q{!-dcs-Ls+^I`w}bEOQBbDPm8Ej7O+V zbM&_r74l^O#FH+YjA-a4NT&y;$hWFFdSFF$_%h%@{k`0`(ZjWY;NwoN2-L`+6;&7b z_z`WcaLllK(9v`&mke3cX6+NNj2CXESREF&Vcn84@7j4SxD}}OlwZAZ?~k~ilk?Xg z8pXsedJK(ijyh9>kWZs~@zh%uoQAMG4EboI7F6{b?tArtoYJYF`uyLwB^2K`XN=EV zUfx_%(0*)yO!~`1@(>6Q0P_DI{&2ex1fmb${ZDFtZVgNIqMHOjz{v%E$hShZ>fZmP z%Kh@gtyY7F_@_3AMn!c7p@q_?n6IT#RNSNu30}V-7X`C@AZj3#008+lPrdcs(C_O> z(A_}ih%lY1i4r}_e(^?Tb?_|0B3v|0_Nw(6#>3r9cUc6OJLZS) za*YN>h10Tayd?k(M>j=9?C)W6gF$8Zwc_){wRMi$^^t8jIO_f^HdS!~G@iCXVkArn zqgDCe)DOC`#5oOW{Qa=>;t*`XM%6TFVzJT%>VxJsljsnI0#(hoF8(@TMNIB(DXt_H z^TLSX_@xFAIrwqB{*isZM{y~DgZJGXWKh`Xgtt%K&b(!9(mFsPvOkop90fKOQ$HU4 z-^Ap3QqmOw$WdgPN2}n*Lj+J2N5Ym$RWGyr#sPa zsRFB)DN$LRI3&C#+P>R4F9;w!?K&1yQvVQwV$tBgKMIYVh%IiZ+Yi&zSN=eXND*>p zH-oazTZ0K6F9+^TP%`5{LqJZI_^xv^`O@-4W9c0v+FeiKsV3NwoVs(GzJ0U9Ps3kK zdvYmigUQm^fXf{25R+ts#0|4OayaK?W6N&T3ni-2CdnZkP^hx%7e8>hfwtpeqAJxD z6_sO?wx`YovC;^5MeLi7ZNak?#4Wz_H=Rx2YSvN9gruaiRc^gqXq9;9BifD^yqyqf zxu5gq_Oyv$HBjH=n|v0!{jm7#&Xr(|7)XpU?s)HKa{t_zQfI;iCVD92Q{4M@n|)={ zk(eDXBt^gMiZWPq!nF!mB+!H&+IutJ?J4e5*s{pp)t{UG9x|8f4_cEfd}bS2W{m={)& zKA3x;`=G}bI^Br*_B|O58Q1851W0@jb^1Fd5;&+~f{R~d*M>R?41|e_b#3$304F!I z`(X8K;e4a#iop0&AcxX)R;ia)cGG^sFgl1OD0j^EEgHh~y5z!9-)$w;hP|r$cjn1o zTv*#JH^x35m_Rv&%h6m2N|^OIHA-?Ktkyy3DU_E%YS z9ANS}{eoM!OSnb2@|>S0DD@CqpbAh;ge8j>)%+8(&g6|;e^rK!_cT}9@U%ny@I+=< zj1=K-JnK`uh7yplZ|UGw*fdm#*Z<>F&x={4U&9+7j%Ru7!>UG--K5qXQ=x}%o?>(t zuth}RVae`8gkKp%UfpDCz2d_3G zy>q!*=|7FQf#W&dyaVtOR-DTJ7@pmB~b)mYN5Le+XW>ahL!lG5GnvrVK0IA!Vq zPx}Z48%RNr18*#7i_lRlYu4_L6*I-CZ#){J6d*v<@}5bD@CI1D@% z8u8E8-bzE@Q)8GGj9@Tb?!UpQypC;53)uSmGVk>p2a6==TTEe&6;TC_<61E%Nq7|^ zpk))14zC2bqa}2S6p}6N)M)EuzOX{k_>7p4C3Mrgt+!s5OPKQg<POE3I<-vObI zCh~c;>bs(5y_PFF7@6A3G617H#Ga=eLe>wE4238q57^%|-F(<)7R1vO_Y8ICx zAHD^yf?%WMWUC6v86qSHU_69OlYjTpm@APx-OuoqqFrrmIF)tQbf$_<5Kb>AO@`lG z4DmTz5pGxDi9@!@l7OVgx!}rsOlx^e)~FvAF@$suYniR^OgFbpla4PZ{yjTdHvggB zfVOFS{fIWJh-a?RyR=e?k97G~47fuj6_T-w4hTBkU%U#-xzcmus5el@Y&s4$DxB>2 ztd2y2CHF(!H*d}!cv?3S?o_|f@Tk);_Hy0_G=_EoSEWPboh#e zi-o^@UXBp97b~B&Q!>1SpFDUQSYl{qlW(hNd zQC0WCueF$ohaA-(b0^3UOy3De>}6&cz6BTlT{>owqD)6d8;vu8iW;wwKewSi~DzhUKt!xh}C|Vg~w^u^AMT{ z7HiGZ{dy3JgiNc;t`sU3vt$n0dbmR;WbbU0u6cwvd}h-R-dO&j@|Ah4pI<1}{vV7X zv-%01e>l5egqx<|HC0$9=()qYq*Sd8|M1g0Nx&3{9r}-#v{ImAiiMVQ*@;0PffLiW z&rmB67b3)akBIhv2o_LMr^AB1|AQjcihIbCOPt?*aqU_5VN~&35hu3hG1)CJ_(f-o zcj&xn*x1i$;lti;emxI*V61hpzK0||gC~T8cV%&?8b0u4# zLP!s^J{yw#kT$o zMThl_os0OE?1uEhl+Swn(OkCBfyIYuL?Y%t_Sl;8q#4LjgD3MKo-m8#K|EZ%U}Ixs ztTe0Hvm;F<7>cJ*z7)(&iDzHE_}3D-AK63LJ1XdD-nhp$D+jO5H^wq?sX#ouxnm9D zo`3nEK1;UcpS-om%ss&=9GuMC+dND+g!8zBT% zy%W5@u2byGAL^6jif>5KJ?iivEA{#CWMnN3=*12huijd%rJGn|l(y*lw3yF(9Xtv@ zrLNH=V&=+j?)D%fCQUQ@zmyHkcmhu!oh~Y+6M0o;w3|m6%snj{^p|{Zs&XW%-D)j_ zhlvcKX=5EM3QKVvwmV$fno>~2CP`2i1mWp7B&)J+y4i@U9yai_)8)=Hm5)uFri|*1 zLJ6muUubw8*bE0oT5OU6S7#km;x49(<#F3|p?e(5@?JlldoL_oSJ$ z;GoEE zFmg1K-~OlF7Q5Z=vbccE28pPg>yTO^2Kw=epOg(X{15+7j-tU>q5byn{Hv@6c(X+Y^9T^9Y#kC)jtUOi<>xo*Tm|F|VYl$3Tfyx#}e=~bB z*E}2Stm2CZ= zb4T`QJTpX!S+tl zH=&nTUc13@85M6lDOK3!GXbM5Jv(K1 zG(h(Vg{xotVCCitDSvpbbs?B5!6vFSddG3AzMlZgi!`;fU#r%M+Z~+P+P7TUzT2N; ztjM>@&D|cyZ`ao-U}G?tpKc~`v#%oG0*feGi0w*tA2pM&D5 zGFQ~m=>h*k(f#?z%01~NrA;z~k_~XCip>GV9UQ1VwtF8)F5}h|X`W#RcT6PLRAV5E z*BW86Uj-dV3*X#DE%v1}A=nh{tk}En;*|Q?dPl;H=-Pm7L&`{L^iYzH#f5E4+|a9%_(J-#=QjP?AoCPz{>^(?mgz$k_ND+;6egJ zQOmrGFnaK9f_tn~(}W&?X{n+9>OB`gM)W`I@NWG*G*)D-$0^cV9uNF0DDx7QUE+ne zF#Cg}c4cQLNyy0h2qSF3Na@4fdKs(*>HN4h85@Ec7a~>~amQQUHxoXCQK5EG@#%Dt z#{(?AQqUT{`o!*U%r0Y;3$tOXo>{Ti*jsF|Iv_bIdKB|$p&3-|x|dgu@c zCFsD$nt?O&lW&ht(a8XJ9av=WTK)7JcnD>C@w1&!`Q{h*tqfXlpCy1qR{vKdO=`50 zp<*OBtkc_H$AuV%qIa6WO?+A7`dlqxD2k&%%LM#d&`5dX9sS<)*3tto3T z!X|on;-tROAKusKKUVrq%LmK)z67D&-^kypDj#<_fB6LDbJ2sn3w6D-6(#C*-$CVL ziK*ow5n14~te=*@R>NH;EkjIHy{La}?(r42o7(2mz0v?Y~gmLMr`b%48Fr4v7|n~+h3v?Q0z<#w?uw- z7!-Nrn6S&K)%v=KvXlR>XizZHAu&4fHI929En>Ou?O$k{?{!Z;z5aUX2$iF`TrRUYx`ZMRBe!mG!o-I=co5?-iJ zGQMu8G5fn2$9d#Uv)tK))YgD|LdzAx#WS|aWf!gG(|;WO$%fP{viOb~hI8Zi>H)O$^0 z_znAc`1Jq_EA-OxZ}+YbvZbaX!|yX8!{0{SIv9O<%Reem<|&%^82`t_#t!jej)_M* zq896J>NVaDD7Ama@U1C>E&;na;b)I*_FA+Sr|(vnJz%YHl^S8-#B?JDC}_)c7fyRZ z38>^QhZY+AmL@rung(IKVJhfA<7l6eu+|#PH)JUP{KTSNsU;Hbp!T9rmjF@u_K(2W zf@227LYDAE%1F!!9N<4s4ke?9>hOMp3mFGU72F~ z>C)HiJEh|KPm;BYB5xWq1?BeQn)c;4t=+Mo)Hk+GI?RUTR^Ry_olWq6r$6h@7^DiC zmikw6PinOhmjZVv83F3E9~27tEf{Xo6yd=Oi8`l(?VuP6?jD7; zM_g|9(c``a>g!ufROHN02nLl+Tg5I6Kjo%AEK?#2tfKnmGfUr4Gpc%}Ksg?-U*(!I zf0Pp~p**rUC)9dgy2nP?%Lc9K4ott==Chu5e72rGj8>+-3n^9Nj z+PcCYsI%R-<}3Js2aZO#U=RzV6`(v0He}1Wl~EHp0EW#e0)`mv>-1&s4LOojRGtP$5C zR(a)qA9aEcJ0e6a`I39SkS)sibn8Cab68N{oVuu#DnPo?rinE!CNa}LOy<}^*-geE<@#WUj`>d+XIUvic+))|1{b3io|@L(Vw zGo+qdY5X%*G&57Q8U*Nid3r90p6vLahy$+U#VM){@Lc8x@Ka#m1`6dOt*JXqru&P5 zI9RkDcCmAbApM}e11ZX9L>MqUv5TwRB-Bsxm?bEbp8I)C(jT(~#uMjs2ZHC2a=@{z zJ#>Js@@$CEg*I(gzue$c>k8%Pe9j}E*IsgkAJ5RRb-L6z}>9DzTF9Ry4Z1E1@5ME31 zdpA8EWDo8)gP7x>MHsv^70k>8WZ&#{QHk+#Bd&M8cDyA4sN!_v?o4}nctex_eDp)FulVsM{bWz$5Vu2ypt zp!Hb~f8}P=j56y!vInQ~pY4*;bi4sbSNdE}KAs8YYCXa3e~|(olO}@RzO4!fq z4XXImzN{+_b z?Zv1jB0vTO>vSVkUv8#!0SIZdsf}XVYQzn9{tTF$;g&RIfnYIm!oW8?iVmnL;)Kjx z_Q~ghY>z+*)NC4-a16{UXG$!}0%obH|ND=0U^K}(^3CJ5OAdp+;k`7Yl!VXHUTa-1 z0c2{nwCfjlx;<(9_VNpJgJRuOPC#bm`?A*9*hgZK_2;lh@4;I0m>r2PQB5bo;C8O& z%StYX;mLNw&c{#nD>^;M=rTM42$|Ra1XbA%pX~2mx@@2N&;*c^?~bdfwHH%8zY{S_ z<=@Wdihu6OH_Tu_jd!v=23o*SScz#tix|s-fsRo&UD7s~_j+lsiA;8r-HY0huSD76 ztV5E9h1pic)P~)eq`QNg))`7K1H9Rwl;T(KPFlfINJt^;N8)}> zk268^>)z!7mhi{W8a;u3$4`|cU%A=YdN3vn#8pZ%C|cPg*pjk#on{h#E!-EuAHp0e za#V!R>YYf5XpdJHWv7_R00vWi0$8Lk)64mFas;T|-9z@+q8i}I8kxCw5B;=85ZRJ& z;^6h;ouj!3Xd4}17hN<2o{P9g6&N&`joJ?La`$SiJzsqjrjg-v8{gDC>_KKD57s;% z2gfN5=rsXuNNx$Yv%dAD`GUcP|0%-3V$}BI?f?rAiL5<(h9v-i zG=uJu_u1z?HluJ6XidV-_|!;g&GK=t%f;%+4X6;teh6|BogdqBrXV#cv<#~(vNULm zyi`LM3{ctgyDo`6$E!nLtEF`y0RK4l{Q*+Y0alSaxs-J%;?bbCzzq>?-1@R%>qYCG z6)#m};+z+D8*%T&0xJ?^@q3hbyZ=?KaENH~xkQWzkRL^Gij}trHZB5j>d6+4bqA=} zl1K?9%-C@yU(l?F~~ZosV%v@$G~v08JAH z|I1aB{~sC`t0^T5KyPF#MhGWI1<%(VTO$2?J~H>^c}f9TEJRKW{o{^F>~a;DBnL!s z^=rR3O?)t@7CXE9y}~p;;+H5mtx|r5{J$Kq&Kw_B`i{?1uFr4j?dFttL5q^(pAepW zt9=u1CEvriJ+{h}IW(B6BvfL3w5YV+rJj)S&ZTA-lLu(XW~&zAG@ohLKw@XZhoSgo zU4j7t))ru;7uTKQKQdNay-($7%}g-Z<9*A0c;U39v?@?%|C}QiIne+{Vge+z4oDoT zlV82JVxMXbSNF#Y!pIK)-h5n}VFc`0a0aPy0}8xSW8NU_za|Opb>gU2;&&2@Yzqr5 zkv#(~r>lN`IzuLce6pE;QkYeMZ?yrVBP`w3@TR|zfpU0{4YJ{Tnm&J-11ve1);a9* z<4j!dW4?JCV?US<4b-vkGXM83+7>x)z~QeGjPADi-Fw?Ttxj*pD7#&`n{B3!txb!Z6GbCj-G-K7Uu3vKR zLXeXduM8^r_^{by`v=8`g)^>~_mENP?%a25ouSU)E2oaJvCD>Z<>9!9YueTMZ`Hv+ zihy|10g6W_JEbi^mSY$x<#VlfzW-!NiNox7#$oo25v*0Q>^frp_Q9!@9a|uBqHp!4 zy42xS=IC{Tf5S`D6lQ?+VW}^^9gds!aktzr5=fH0arHzIEn#8txAUH)Pqy&w|6Qf9 z9KE-oKDKQ~eHICAqe}-Jg9V4YxZ~!dva53E9{qmHu757SV&8GAe&MM46yoa==Z@WU zX7uPCV1T)AQJ)S+td^7@LkmYaO^5WN{vFAVE;&k{c=xOA5L?YimO_0mOgaOnq&3ztO6S}bDH&0OUsIn;6qpOf|V7FTP(Ks zyrt%onq|)6R8X(O@Oz)SDEXE_ zD{$`CtKq{Abte3$GD6#9c(99VX@uyLyY!=)Ye1KZsOI}+rB62LIrJt zyKEB^Rg$aOw7RPvK)lj(MNU5wND3s zs;tKUa@$Kf>Sj(s2dc>nmm*x$Jm>AQUr+JT+Ud<_skR!Z>npXUuCbK^^?){lfc$N>xz`UsTN%aWO z$l@t)DSNLP=Ap1DBw}A}jg56`ovSrz_hK&QVzzFr;azfHh5h&+5Fv*ivd2@3X4{)j z;CwJtC}=Pky{j)U(0*3j(>?9MKdU~7fdkH@%oVVRkjStNqxOx10l@*@;j&Cs2@kqL zF&Y_?e?fwBw^9i-y!O~Ss88!_P5jxbmIODU2s62$OaUZGP=o25~~dK6CO&Z)%|*bg6dK)MEezl)c<#M3uM}7rB?N<3SJ2b4~30^j5QQAaVPq;>tVm zBYIDNM+Zm;3L6QLYxxJscB*O`3kGZ89K@2B?=AxU)O>FWxcpvFhze?#9Gg4+&nS_u(sa6j|8o|fyd*nbk5BJ zOHGn^yrHxF`|)sIh7D*STkyxwK>(tDdG~`RQ||%_<3EekwrvLR&(X`BlZFo{maF~ zIbRmgsmqJ?y6~)D=BnQ!Cb90FB2CuAs$QAM)%qs#KF)}7Hj_;aoXTLD=NKTb$2+3@ z45YBqrIdo~xEa1xp_@>9^#m%lyIEQz1UIrQi<2#k877F9G!?CgaG;|xnz8+ftrh>) zLBsV1mED`<>2fU_|51GIB1tALMKFXMVZbjz@WZ^Gkm0LWc&Q|7s=DT=Y*6AkClM?E zK&t~Go3Y!4m2l;{H*`~;lyFm_gU7uA06 zc9iLY%t@=8t$KO0gZ=1DxY0jPAQ(v-5hlNue{o&ueAutDCVH#EHJs>o&3!lqqp;*9OIuX()I)_%l6N%gzH$49Pbc-%!=Ne6 z)m}i+D!NuHGKtb_WSXXo?@)hlFC}9yfx#)EC`;h*@DR5jj#;rXu>!F+%Tw-&=o*rp zG_b=TMh1^1JN|7HmHAh4mFLHuxZW#!;o+;D$Z2JBg;V7I@$CSQe(i|1fIi%Z8#AN$ z{P5f1;kT1TCNdsC_y!%XtH1^bEG2UO?(_TxQn}l2IdFPgw*8P9RN3Wm0nf!#pH%pM za=YK!7Pv8$F7tmez$M5YgY!eQrlrDaA~4=D7n|zK!DsCTxATF&W zPnu1WF>jS$Ds~Y)CmVpSH+zeqQ#o+Or)-6DLHVfkTl+l7YeRdJ#E5@8sjZh_1?eDB?L<0`-hZeG4=q0;??(?PA?4!H4z@ zjqi#u)gS2GA5*rlVoOJ^g0nWWPN=A2_rK3RcsK5Nfl8-MWwUR+Tk9^&s;v9yispDZ zoxwG!&%rghT9JD9ifBC3ilBN3DV2eQs^Pe*;b&KuD%nYyjU_L}#k1P+T3?x43C18- zyLV5%P-lYt|L=54&2|_xYi+7_IW^$=6&J3FDWpO`-5Af3(f1)Hm@SeXIA36%Db92J zFB@ms%Q?L=&wY-`2Vh#y_xyGvLKzgqRa;{>cI+Kf|yZv`@OS@%*V6vvoNW{)LqU2pJ$)>B7H+z zR*YI_XA{{E;yr14R>LFwZjoG`UfDHv7sowsT+YI>W0j5YIhZ}e#Y33X<{$I~s400Y zy1Y!8_qn@9F`K%(qBA&o9651fs}dd8Ph({7^`M}FMJufTLD%J}*libvZ{c>;V`(Fw^if?OEYzA<0MZswhvuo>d?Jiv+k_9Y2?F<@jdb+upQvWh_`)w9zm{!0{!hRHTU#eFLMpgekF!rgvpNl4c7 zi;c9}tY{Fl1gkAUF31(MzA_eWrADPQZY>L6<^7r<0^*n!G?;&l(W-ki8tmhjf_ls!2^SXkQym#V7wrw(v!vA zd*FqE*neJkgIQ~)EJ2$dKhRubt7;R~G4&f*8DDa5=1pAxYXZ*Eedqo`wV}NBNfng*jDP?1OvEzm2Bc*kOb#d~9 zXT(6d z?PEUn_2W$bBd-Wyj@j;4uk=Mgdm|j5UBsTBaeb8z0a2hBiEv#|+uGbWR^;CidRVhC zOJf>es+A!WWDQ5h)s$;j&8{_O6?n+t^ZPjWsGhNMTl4209)xoS^lP%+JK_5Eo!SDn zcw%B*3U$dc0{)PY%9SSbw7g%Bl?To}EFOCD#wOv(`&?E_@_nE5S(~W5Uyz(VbAyfW5 z|Ls_}ZrZ!T_TgB~25^Fl#3`Zfl*(HG%s+TwBSLgZ#xWSBkCN{! z6Rf{%VPkgtAN+u4wNgLqhd{8$?tU)-GGQ1wa2zUM0R+CThMHI@u8*;)f>@A&t%v`V zXJt@8i)td!@OjTs89tDnEyb~idbt#mdbj(CI;xG($=s;fo-PmvF`GClYadU)$%fn+ zJ!A-9f9EfHGr_OywKNN8^pW0zI9mW9RPslL4 z+v@i|@*b*EpA?d`ZrxSy9^ytX*+Bn&Ra>XANz(1ruBY6=UOg$6+}RbT^@YzYt`M|B zak6xh37M}&(AKPWUaT@##3-)2I16;}q^oIvPR6v^Y_C<^nW`7qB!6#BTP|CoB(-F& zo*k@%H(pMqN}#{_*~Qok2fv=4_G>ZOZJXYBCkl$8wGoiCdk)&2W^ZAlW~gVIDA4Z$ z3+s33ED)o;zD3c!I28SvsAEA54gYXTah*- znkyDP>u$#_mp&L~eW-n}3PDC~>p9wOj9XEsh5VZ<^?@gT_XmR)0o@xMITDl|5z(%4 zT)Ony+TGn|h8IagDtM?6U?VyrEmnd>m}#S~fQ#5P)-;~>J;}Jdz?n5*HXZ{3Sy{2^qBG4-4k=`8 z-V1I+gF)W1LNi!JO1Bshz!ynV*#1kz-nsluU)na_E7;lDyx9RK{|5+|Z(E03dCHs3 zesDm(_jN_MUf-ufE+1HasJ70uF>)IN;K)c5K&_IU+~ZbokW1Jd0LpwHTf0c7QZv|?L8}qlK0j=U7r6UzUw5Ol#tXop-wj3 zit!+<-1aLlLk7RnpWs&Swwks*qzh z>&dUPZ!vscJ@_13PatKjIVCPdDT--MT34Opmw-meJ> zcvfxqf^SGo$^FKFE7Rx;Pta4%x}A6ScrZwSP2G!cnWP(8T6X9Va*J;-w$E>>6}cd7 z#D*z(4#%{Jd@GmDadcc2Lp}h_CkQ&1^=gH+Bt?sh!sZZCh~lrlh;gm#u=StTg-2OSKrf;3#=l6uQDImz?^Zw`e{@I3W zK>SIrtLwv7j9jm6IQlERFWQRSh`ycj?&^k?)8LEO|wXJ@CxWCJ%FngT$m zbNpYB-Z$3O$+vQda@>(wj$BqQ+u1Tq56{gDX(2uaIU zt+vlLc#!PbDkDdjD5{Rsj9kfXEh|m{0W!AYT(Q__Y7&_MfFKz=#%Z!oOKO7UCV)_x zY1MXg$m@^FiQ`OEL~5p`aJQD=1Q4d?ty=A5w|K6J)Fd(i0KqfUsx{E3B{cy6F=*bZ z)vh>y_lTT2sb~pAX6g!bYw6Ph2v(C7r*@jV_*_yG0FVmA1ej`KvoD&c)P0fAS?ky>bUDT8|N}E7ytmEx0W|RDExqHK!v?A m0CA}>ZNZ~Tg%JoKGXEF3RL9mX<(`fJ0000`0?nb)147$6!6c8jNq`Nyrx=Xr2Qo6hI4!{5V-mmxa z0XXNd_nvuXo?2@SA&T;n=qQ9J5Cox1y%$r4AXs_udjm2o`2OlPm>m3oHxZT-hM58raGCrk-dYNjWyXjMi%CeWMs-l&OBr+tW2!jOx$c_ zG~fwjwjUioo073GveGW#GD<-Z86+hptm>M)pW>qXVw0#f4U(EcMy`baagnD^aL|U0 zzua2Fr8w{LYsyMT$7IrcQhRsNV?{j}&Q<|u{wsyb#X$WM=@%AbUB*5H3cjW9K7swb zsU8P?{LQ;=nsr)czGTS$WRv(!g?NxK7QApZYCR9UFjjVAKq&@zU9gc}BnsXxInPd&M=UPJJ-dSNBEV%8P%=t+ep{rgN>3$qMJnNZqasdGW za&loRYyv_;LLwqwF0P3Zo$1NR$%Tc5@$vD|QKip*PRM>jkw1R?h>kwl9?wfoe#Mbw zW%Kl9P^RC+!R^NLX{a%XfPg@Gnv~C#>^iThDJ8A! zdrO(khxj3N^|-gs3Mqe_x>i&i<1^_sJ6s-Ab!MNO*w3=k;}uyYO~KtMp1=&U&kv8H==K9_EYKrpm@*bNF>oiWMk~nPs9bXZmbkH9z`CPdjc)FC~ z(LLyv1gBB{JG~w^8Nx<}ANUjeWH?Dmjh@ZZ?<9f+by#Wk_8SbEYfBZU3k{cSHgXOp zr>J=JH#Kg%&N{!Wnds=o%WKwL4iC1vy}-jKWZCSU>gwvm#l>YqqJNz6mFx7Dg+1oC zvqZk9`uoevq)Oe2!}{;Q<~xo*jV_0NCn8|LU!6yKC!fKKo=&BIz=p0SF7y2Yc%G5}nI>;)c#fpJmF$S4~^u`!g=KwJ+m=zbS? z9EYnkv^uC$p8q+1`O9|_i>&*xF=Z>Zu&0R$k6Y39d?#@%GDv%_MAbJiu=h7h!*M{Z zTPJS)Jc(1!zuxL^qxhs(_8AN3yK&|Ir@<++IXRu{>M^B$*JSgt?(w~N^XARBUNL25 zWmYcwI|<8I0akzP->!V~`NH@;jmoqJUqfS~r}=4!axb|=tgVdLKi^CcjOSs)D`{#b zB*kBDs|+P^+F-}%^U26II^8;3Tc^4+#K*=4VG!WiooK2sDGaXvFq%xPk%=#(LKX?H zciNdS8*MCz&&yM!X>{LrzZ=xS2^yUQ=2j&~`_02bkJmr{-&facot6sIN#=Vh_vj-w z*0<)vi*V+9Lo|$xBy5hZ6FH~AU}&M*L#uKr0;fk&p9|F;9UWi3;$e3D@OX2+6T)O{ zX#CdBNn3MN40yO{yKhndz`(bNx(h1uwyCM9>7Kdq4n2j#{>J>&)YQB$4S8Q~znQ6I zWq$r;z2tU0W)zF44BRZBBiMk?C%FHgDI)^}HY*#IW#>Mxi)!IyrugZs;NTwCi2ljJ zdlDsU1;g&QK<< zr_bh7nvsEm@u7ceAD>ZQS!HV2^D6Q$LpGOZDL~9y&D{+Q}6CzLw77WJi5;c;+c|_%n+v4tP;c}QO5&p{aORvMqwYsUVW zkdVElBaoJMrh9#77}Fh2$&`9(Ya>!MUR`~*^q?uN(OKq}lswOn?egdL(h+5Dc9xje z^8+xFG22iFKbS>5^c1%v3&rI$T>gz2?Z8@FR}aO4ze@?@nynCp2EAPl{$`D_5=p5$ zJ1;#1m?9FPZZ9$%Xgdmd_#}p_AZdbCJM-cO8$1(zVm?l!X>+8lt@&3C`(UoDtn9_! z{8Wu36OV9Rpvb=yTp#PX6Q;p#nDp#yDo5LwDQ+^1@eMb_>!OH3(LSMKnHpvKDrFrZ zVwol(Avg&0JJVV3*q%0D^%tH}c`__MFNt&S%M;c8&f2J`(KfFJUdLy-F?a`^1>+9J z!#5ASoIDJu@cu_ipAQ8US$mM7U%!6cIv<*jHWEM}t2~^{9X>Z1GV-|*%fm;pRY374 zdmo!M1aCZcy1Bl-j)TC*Kd)w0C7;6c<>HWqgF{_An(V7w(qq=_-uJ2v-Dd29>Vz*I zFPvY08TSeO&bDO?kSQ%YgBH~akYbt<0kOKR76d{3h za`x}vzq7LiwBf0XOBU*OT$VYnDTh*Xu72g`(|E4E+|g2pjxJ9ZYP?XB?sFOfzC?`R z#A5uWMi9ml!&jW0d=}Im7?_8HFhMdF#b!D4;jH($beOnA7f7-+H_m?tw9549eg;}j zR<1wr^VaE>Uj6C$ZiXhW2m8MfpsPANF&Q*x4i%JS6v6o(f9~1Z-BpRFrK4-`rc^)B z0M;iKw2Q8iMe^s!I&rv-TU_`^S2 zeCsLVJ7#M>Ta;+yDNoDv|Jg#7LUMEh{#Eb$r&NAB6-Q$6@I`mHnzqCN-_A*F(GQX# zoeIwaUGf%(A{&(k4!LKs{vOI;A34IaOE{^P4*mHv*4L*5=l0fgF4t+HUVg#|+faEE zMBuy2mXe7Y#Ir+QKFhE3Wgy4aT3t`i&nGu0<1DA*0M8>9t}&&hhF?xocqLU;%a2Md$YJ4Oc^CXpxoMjx z9i7Y$tGs+fkp`p2+eMInd5~Q4Xnawh3<2)*BH=p;ZQtNV-~8>ubdQc1K_7n%$mnu< zzqM4#K8hk)yqz*(mLv8j>#g+t;S@DgVI5u)4saxf%BN~26KkMa8S`@5GfP}4zp>I#d;LHN%J zzaFIf7kMNl%cdy!9#7JWmXc4_1_w{6t3yIf9thCgz2~-ARPJz0ApE~gm>gZ(3{ZfI zxhS?xs%?l6Ls;-pF-f9I>7_B05Ga#6BqNkK*&S|F5fK9Z@JN1t$|e49OXb}TNZu?R zN=Xf$o)#cRF)}hjw%aGM#e0^apFlpp_w;&+gZ9I!rSpHw5`?n3^CM#C;y|!<8LuaM zlPMq75!nII54NtCoL%{PfbZRQz$k;mElzCEMY@7%?>p!u)iS&UOvNNRhG=dMRb)iD zo<^SI@JFMQ`^zPCR3cc2bLGeH`c}pifPu72u51H!vS+NZ4Y%u#RQ z%q*tnEfPB-B4U+yvfagmolL*>O4!ZKO-D!YABLqeo3ySL#))7mcXxNXIEJWOwf;B; zjDw}DaQUZXDVOdM=()8lY_s_0vF5_2M4B=T)bB0LO?mRETPu6?xBJ6_gE+|WMUUE& zSnzJ^K99HFH$VCULy$mu%K6YYaNI_`R=i;&h%v z)=PCS1ngx`)%W?5YIb#ILQo=B}b9pF8!@w|^>wDBQwho#TtjD_h7N3^Kp^|8wD|Oe0yRJ4-$xo{* zHl5v|GSv0FzgTFfuse1+m~V2w?*^mtPUUS0|L*hYQ}kG<^xwvx0p~XSPkGmoYsH&Tplu$YOUdfR0k&S?)*{lnNql%wCA-A9S5HF z8%I$-g7QXSp2FsU&PxG%G_92E{QRxU*Zm#sk`J{`bF&VhX04~EdmLM*OQYgT;df~( zf1bst+t|5!tWl!HYuTAUsPijS;o->DQ%f!`E{;*JnU&siEq73d3J#NYvRpY9w$)Gc z3rzaQ4n)XydHG|3&7*$9oBjK_{>@=F)1wv;%#~K(d=-z?srdcdbt<`zBFc2_>px)l zZ%ueL2W4td`N1K2v^Dnin|zGYgPodPBurx3&ErDtNG86h|5(0Y+{bdVQ2cO_f0I$u^;}y#ZdF+HON)%uPiAXNZ|}AVf_G9# zv|V6qCU;!@Jq>!cAC|w4u1bUxYxK8&ni(NadRVZ(>y)aLy~<~)Onk-h>8wA#?9Df# zq?i~{o|o9-gm_u1Ily&BqCP|A=3T6Gbp3h5seN%Q%*>{vnb*NJ77!T=3+=z{ccG!j zoHkJkA1@T%_3ePp!QQr<8d;?DR??AR5`$>#&9u$@)sGm5i@iF5CJ(h5`d0r}pBKL& zxiCffaM&yso39K1Xg99nw7Qxr6WvTRmfy7h&7x8E`ZXULC+Fp{waZ~!KuW{K-QBeu zb$`MrWmj6BY~oCd0V(7fA8o%j6QUvYOhQ5eI{GKN^J|}Xs#NQ>mfg-;h^K(yyLT3v zGm#yV-<#ae6Fb&l3EJ&!uiieT_~q3F3WZ6=MXc!+F~wOvbMD00u*;gk+-B_Mmi3Uo)TLfUoa2k2m+i12p;KcyI%-GMcF?QgMb9lcI5_mxk|zyroYMKjgK7Ruc-cS2J~B-$ zI8kWy(Z~wdhhIX8X*jKArpDtipn+3PRu)Q+@=yVx-pK4{QVgArX4JDFjJ?DCX>!4q zW#B&^F4ig&^x~*cD{M#^z-Nn#iz_QzET;#C{&29fC~0e)ysLxWXvBc$Un3YWZfxQw z{7eKT4STU_4gj%ChEm~tzrNd~7)qvOGBz?X2>C|g;2lCsORII&Zv%ZWGMX(ez!&f0 zDAC^8-9-&*&+1VKL?=Ll6tGj9U5~M$zcp4_@3F-=uQ#T5s5XT_I@Nj2y7k;<(3M>G z0TF_Q4yYjlo)Wir$xV0NM`yP9&w|$Im;eki6QZKW;{@*uaG5CHZ>+4WKT5}4-Cb>G zlJz_;qI}{`U6pwQ!(^m2>G8P#a=GzP@beQxe0=lV^Gr4N0uB6hGIVy;YErt%DNTI* zxr0}u^Yg{xVH=@|Ii|vla!rkBXlE`5i>S~gDPJR16@TCxd-m=1Z6$4GLIPqqsGxxK zHM>;F$DFtPZakUA#RGNL3+z6nWRFoK^7amYf_*rgKw%J~aay&>`10k;;s*zW`2L)H zQxg+T=d<_F)%GU$JMZM052IyGHy22dph4QjgEwTmcNH@8+x7e`K$UgrE?<6Za$nHa zw5_o&_Laj=O0G|xX+8cF$FXy1E?;U|gX(S2KYw0jNP7Iq?6#9uG@b2z$Mxx|T%MR0 zYV~)k>QP9n_g)nQC85<^b*^<_|N6mfjaPei0TIW;XJg;=J!)w`HIo7*6KFfZpZGrSjW63}{v1GbHdDD&`wX z1|Xp)vl-nmp>8O#$t?KOzryf1EF~T{zPq}O&XMEiZ$Lx}*(6dEiF)%mTW&pnB?X*% zeVxyM)W*)u9Gy;$c6&?&>4NmRz_-Sg?QOe%D>D7{v@efp@GTx8juV_fQTxa_G#~bu?*q@A7800a<{-?iR zZ|70L{&0P2@bPSayusexx9H;-39>QGpf;g-YF;Zm}1X#bUEXw$ff@<&Q zh}XX)oocO@$nWPz1j-+&zKWGQTrU2xbGpgAebe~NJuo?Ix0VEge%Jqw^v1Z}_)wwg zw96x<$HvB1ytz}T%v)1ZB3yw^V{c68PFv%Zo$&a}y1%!#vZloA{4YAm_vxmho7v!X z^XNh2{z)ogbd@4inJqAA5o>d?7tQ-MJjZ+My)YwPn9#C><$S+JS0(q{VXOwX2EBxQ z^%^ekzzQ*(=SyZ2oxUOXx`KlnshMw4_?iGqtcYv6gx9|F=!xA(5NpWd5ikfN?~{?1 z?!6MSN(vyyuXlm>(1CnGoVK8~N6~R@E9UcUA8y;6m4Qq%+Ad^L!Z%8*{6my56N6gDFs0tK(NEjy1( zQZh`DZTUSnS~kq0GOG!7;uM*UlEk;dcmFFKB}<=8Ewv}2RFKMM(_&dH*ulpoDGTY)Mu4#^Io z;YS=5^6yh*C|zom)bwDY{_!ZI?E58fD+DA2#s{zMV4sIcMQuINx5drB3fjx>*{S^? z%3Afl;A1((*Bq4RWQDs9qbu5a#_CfG9+&3Rzeq+}$~gW~2Hlku%pd*eXJoR0Q2`2 zOLiaNzS!G4Jj_)qStsS>J zXIsBqmfFtF&Pv;aL%k_U$H#sh%>0axU!u!KBCtIHodL*hD=%H6lt#I^>kRkgq`DB1 z5Dpf6geocIg8H@n_i&|N_cw)QW@ffbS-Bpc1eJZS%?il!^Aot9=R_0%!DQjw89gTj5 zj;vv#CA)jj3$Dr?YIEUu@zxTKf{Bhd$Il!fTbV{`@sgnWy*-8QZi#4(H3^6KaQ(EC zhx^{qRRF)5$foT58_iBnS5(rg%U9AnsC9%rl@XyP@--y$?4!92h5aWJysuGU2Y!z> zP4I_s;IA}(s0oDzwJ>5FT^^1XZSJ|9_7(GUaBw)_-%((xc8=Vv*9vz2BY2I=YqsN9 z5bEeiVe!n~O7wId*&clrba}lT|Fccd&}$n5bSuRz^_;xo-lLaNJmk~=$27eH_{Jp~ z+i!y>BYsC=LQzj#d??!0s=z+qi)HV86!i)PH(S0K&;~#4L zZxuZCl-OKmx6Zli>Ok%J(An<&GuvqUXB` z6P7?gxJ81$khQN5tD3*1I?U`Mbp+{LlMXYqhQIb$W#(|0N)D1NG4USomx(No=?0fW z0J-Df&}=@QSK@AO87})iD92&>oW@Py(oXb;lWFKx%F(i~*7o&P4*QF2uFPpD5QRDx zjj4Daue>Ji7^m6}%*-o06XxRPmVW5_eXcC1Shp~kEWl33dwYM2S*G7|ad|H1dP5Ih zA1rvJl91%4!R3z$>y(z3mml4P6RmBIKQ|$8aa!qlb>yT-;^p-c7p0{vV1B+4yr1*N z*_8bGZ>`C~HK_pY8hXGws1#6yb(v2UZv)(EVaMm0MhQ(~gXNh!>7g^IF0A)v2RfRh z-ha2I?C97Q^T!{rSCfe??7zPNkmecOX;{V(V!AV#CnC`_GXjiwA^dDHY$e;nzb`1q zgq+^@8|c?=0NPJ!aJk%Cbh<5F_$Z3lCvl*ms#G9v$RK4VMyYYj`cE zK8_r=48M63;S7i4eVKbH10phoCyRuhVMLooJBl2PYn;VIxno89uv#}wV5%y)Ja{*Q zhK`z=+GeqObnFi+&&|$$gNsI)E@SO;aZ`(u1Ay4948MN;I!cKJjUyFcWx1Fa76_G( zSx(M@=@$_6)J_v{nzlcG#ZI?doSFvbi}Xy05L?Ag`6;9jH3?8sW~HaMc6Mevj z-;a%t*cJ^HEMBnZN(TEr8F~e&zT&pP=T~a|emz5Q1vvH1GWz z8pT*0S!y=2tU8<7`X(cyLyVMw#>Co)@GyMIGR!R;*S)J}_SlsFv@$iqrT{Vn$Ah3B z@hy?h%zwTfvRzr*-U4+xPo_bN2s115;|=;_wfW}mT=O`x>iQMRirwve*$$xen&{9h}+aiH9rubC@p!<30H zQT*{_QpGuP8dp5?t>jz|oNe_SlI@qNx~6Z{O9Ruds6mB6^=SB?gJm8NvRj&_+Xxv) zmRD9**VY1H0GIox=koHut%M@Sz)@-AfPM`MBs3rZLd|PS{Tz7*Lr*_o@a7FOuB^?) zJi?>Z0wQ!dBwY2z9tAmQc??f^JVTu!EIUwgB1z>;{8G;K#rankLTPqalvi8`(9zDd zNak$1*IGIE#f5XU3YM~yj>ql(T$2iiAHYhb5#Yk%PWyk+Vgx?U z9m)Xr_txS{YaDuC2qUg^@p_aG!EYXVWa}Gd0<6EYZFzj-OP|xJgyR>a3k@ZY=igpQ z1(5Q|lkn~>FO%sg;nAk_YWq{nrH2I9Jzqni4cn_yRM?cR5zf$wbT~?dCm(h8AU@P9OeWf;nK*;UIEl|$5K@yDto6QIArStTh={NyRuBij9W~1JD!)Fy$LNZA<{fpu<}%|=!iQcxQo@B zx%r4b*h}2$I%70S!Hnz&B7*j_P1sM3A?OCa+J?zR!696PisIzt#3zv@oPy$XP3ndD z+(fBtL3Vz39jFv*Cp9bn245>Jl+3wQR#w5JYmh-gbH*QRP|beY9^7@Y7pWJr*~ayQ zLeig1=vahUN)Ks^5Hg|ow^1?&aF58p3H^Bb%p1do&+RWp3wju2P1C)2K&?`PtcLle zBb9$wa)(vLv^d`^);yUg!`w+H9Jj~{u*6Z+JuvAmSP&GZc1%vk%lojwFgVxZ+_dsr z-?x(O^0T0gd=y#;?epJ1Sp<==>pT)U#h>WuOdaOKouSkQ2;!Jp9S9Ui;mWVYwaU}0MA$_(v84#*&m_0wT5>X=PT})Ui$Qf* zVqN*AQmfr;F9@F~k66TxQu)Tq=;Ugu(djRdLl8tNn7h#MD5TF{?-_z5QKv|4tV$D^ zG~s-xovplV9P1j3R(B26H$4&F+1;7A8YbqjDa{cIQ=FQ*%gJx{4O*0f20H8u?~ z+lY%HvIlv6*wcRTHw5ZP*w)m~ zipquNo2ro>$~)6VCPqemh7DjxA&Y{$G3tfTZypOBgBjJ)I$j_^fM|WrEtd8DN-Sj} zKcb9OwKp7li&n~pW-&S10Qn1r>dwzlg}S4+1kiT^uuHa>2Y%OAo%m<>=6rX>Q0ej` z<}P$_@Tmh2Z64zE?f=?E6kg9G}cK}*hpr|5a@t~cs(Clo|v`!ZhK;`9a04y)e@`jgd^7|GN zTVwWfewfNdL)k zI1=mY{~Ngx%s!aQ%$!KW1_Vvpbb_{pmH{-)Kkm0*K-H)FOrK^87~V?FL<$44IKAyv zt`O8SESe|0ywI?MLP7%g-BBYT;alsoORrU=4o>a>$zzjAUse06`#iJ*rddE>;`O#- zo_tDr>kwpn`%!#P`X<|`eWhmkFUCzoKyN6mT6s;4)m(1P#((lkZ4ng>$v62`6^Ms; zZzpc-*OtFUbIV2?Y2MYGL#>}GJR7%P7pO>FF~@S|b#`|6K3kqg^wxqa*v7?gnyXo8 zc5-O%XjuE_2-sdRPNkRnffzvLLs_*G=veyxLhgkIwdn!IWvY;)qpXrrR6#-V)d)Qe z>&hU@GHHYR3uqb80mUW7Y*Fg6K#sLp?*uBJB^TI-WXw0+C^C3BZ3kK9W|({)*Xx-D z1>3DK_Y&WcZDthL8PdVhzF*H8%|Affk6EpZgln)T`OX(Z9n`#)p`~RKaWs=9);ov< z9i1y-V+IL4g_19{v&ko1&%1{adg7RkM)3uw^OZU#>Efwh^Xb-nBDmoO@!bX?T$i{` z@hPaP8i>Up-_yr7M=YOkCLD{LeKmx>-ZWBe>~;+7z3v-nJK@Yby0Tryxw=3Y7Mf|q z3=M^WW-Oi47Mq5|lfO0K@!NOWzIgEh@iov62v>*Syhu1yR!*hjL+}NWcRgRX$&ZNb zft1e+2KY)`e7r-QE;K^P`t4c;EpWQ4D{~cs0N&9!$FjX+X=N1kB8%%Q`%`qC%Rk)dL~5N(XrkJFfu>*}Bqb$f zsOmVqO!n)jlEsDx)xHxUP~^8a5!Bkz6cQ9v_c!y;YtI>GdzFE^*j5hTDkU-;bHsXZF%tp z4GruE#|(L}qJsD)n=Z7pn^`To#cKVZY`0pYD1#d&%Z6RQKdoPE`i8dNMV{`Q#&Gdi`ssZDKVOM1n?-aY^qy3AmJ~pEQLe9BX0BBnP|GB~qRzwta^! z8EHU#RUn_gy)$I+n+7{XC}375I#rJdPDsC5vGHCE`y|uP&o6Gs6qDeUxv?=&zC5m@ zntY~ULMP_y9T`z1B7V{st9?y;k+8-B$Ip+vU2NO~U!?xbL(X=X$AZHN&UbZ_eB`kR z))S_45mdJ)Clh12k~%tb_`@Vw9#0Qn%zsx%$H>_1eohEgo1r+H@5|zB)iA6{9G?dy zaa!ywf53#Onf%|Msr{V8%=isZ?C&A2A3}u$pY(G3NrCCg}P!A)tLH*lqv&bF{?!%232(ZY?-pty3KhW#L z>}kgMLV$||wf-vyJ$_DbB$yboNM_}K;h50?2D%K!y`|n(pE%U(ZK4>lV03B%dT@>! z3%J&hFd-~l{C+nqA573DR~d8le0{1F{Qs050Q3QfJJbI}MnEyx7xmafg7E#a5%BKr z3-yRFt+(H8HLp%RBILM05;8Z#fe*dqc1)c9h~zPmkZMdK15B zsON$pQPB=OhHPrSCqazZYjB;*;R0Z^;R!`~o)^hK-~2%9L0on%xs3rbiBbvcL*8*_y(io`TMaai%|HPmqr--^E7+siFCa8YbL#q^KdMh`Qmm53l^A!6f$9Y zdc+$=25l7Jdc|!GL75cE$`|eS0i%U~Mk_>pffmfp?zqCCbyZEb^Tm^T?dwK9bD>9E z!W9QM0VKi`Fh9T{(sYQ5K3w!~6Y}j}cix_O4q>Nuqynb~dh5YN4z(;=@DTVYF$4{2 z0d7W@j0h7f_0A?L!~67KGz)@huOA~3p^;oCI#wl6IzO!iN^>Be@dpr?yjtqz%gtlU zHBQeP%xR=QY{~;Tps_Le?gjqSNd_#5blyT4x5tO$7 zd@>gdJy_pjT#&%C+pY7svfCv1MIGKNI~q zcm7F0usM{Rda*jJMxka@X?^~ubV1Z`ACXqN?f&d=%F} z#nxm?9_f!C{fw-5wSxBMe;Ms4IGBG$bhf@{@|<{CunPv91(QRg{5(@-;#F9VS>)N& zju<>SHVfGgYf-1~`7jeggCoAmiqDqN*gHO%EmAUQNMZqPY5q^XB?#xOD0(^~xZMxs z7mKNr0fe6_zSZ-9oiZYuY6FFOh@o$NMYKOXfm$oo85n8|UK5UV%jM*HS637a{20A&P3+!=4Dht!QVN@{QJAS;^;uo%yGHs6c(_xJY+W_>P|Ph?G*Wt<4GLl+b8 zIoq1N^b!1BYq@$4-~?%D>7Td>cGVx@K6lGCViRKa&qaLuFE_Qt zmBn!8Yd6W@e3SOsKB+s{y*E~fju@UNRDPMQ2Tiw?m6fV-v1DIu*7ie8uNDDzbV$mR z{qghgM#QwxyNhQBe{ zA(YsH@x_W&YNSAn?b$4kwXRd5>9Vkhy1xxeke^U%_546vHR5}4aaz>RzDQsA)hU`u z7&&y)+gw*Z{mV#!rMk%$#|PQYg3tFi=d|GX&CNOUU@!z7aV>t8ufqvuLEjrYkTM%6$OeU5&?TQ$7SE8c>3Kb zcGt^PFE=;0CXdU#*{lXl#DY1b|2~N()Q9UB{Ka6!c&<`N2M$oAJlf6saEkp=FP^o1}n7SE&u6Q3@F!{Zp#+F;vQXt<_hge zd)mUJg*TQpx9Ei=u)b!!baEKmOXK0etMcMST^wMd{QU3yTc#gBe^zPG7>)!%kU5h= zEKl(^zJ2r52noQb9``0XWbUPv{Yg__m}W}8E2 zAY7QTxsu$u`C;}>K|Gm&K%m&mqXi})n9uv9v$gdD5cooh+SYOu-5X3%3EP z3ov)3u%p|@TgNfqz74cx7|cflIVh+BnDisyeL+VYp2SrrDsDi?WJm#-=LGW$7Ydj}<*d8y+o1Zgi zIbedW?7FK{$@w8N#sgzj$8RlZWjrqVXvXYhN*XsUmQ4DM-y)iC0R9PtKY(g+Ib58p z_v)FSt;&^48Q461$NEkZ4VBk%t2YdvNsC_HQui(?KIBbz_u~Fv{U&cwKA3cL)e+w~ zn?IeMYipyTK;=2nB5LyDMT|Z<|AXdTSWeFRTx}mz=U)``ySY@i1&9*FG6H5eFr0LoQq zj>)Spq`jDOfI>RI3D2CP?*Cm^7e!iJQX=3jJ3h7>tcC8WcTdL)KCKB03;X$#z-@GV zd=)?j@WOY^hOS*Px@Ln>|4%;)rad@pkFePE>`-eaflkkIDnG zazK9sE(=FP&uNZk-#|ovK>ELC%6m~70btI}L1EO5!Q+d=4;B_O0=THCs1|g)I(E~| zjMCMYr{NKGHyc(bQ;!c7)z#lZL+iXY4-(br5=bmqxpU2S*8A3N0skBj0NY0=lEJ*O zQ}gkoD6&5UdvbEx$8mac0#J8aYXiQWd-|_a!R*?ElV19cc#l@#KwW%1b#rt~l7&(~ z1q-cNPwB$Kr4t1I-2D4UF$C^N7DWRH){%=-r*PifmI2g)na2QB>}k4wg< z(+>9(S)TzK-0a|Bak%O7u+jxuK(HV4S?kO`7#nlgwg2Wm#cy`MCxpP6Du3}7po~Mu zBoe`!sdL~odoky-w=-V>N7L*j{)*rE=|tkW$wFuUxF`)yY6KT51hm^d5h=)f^94ZD zk3jDQ2M2N4?KoT_gx zaPn%+CygIy%XCX;-rL*T$D+Ieh5+KXpEt)cXncAqZHJ8AsR1}7%qTBg?qsh9=Wj`D>xbu$;NqOTJSJV{ z>DfB#tYCDsvvaS%HI&HhW0i4DOANo-+jwJh6F_n?lAm4e`0tKeKQ*#DA8-K5Oh4zIpZ(9nT1T3;_HC;*7yFAk2C zut$qE@13jXNJzIUE7(X#9tCgJ>~A4OT~)`cW$(JS2=-B5P{v;!kxzC{N!WA01G}Z` z)9mc5RNUI>HPCzQ@^DAZwN`)GApCHV3ouz$)^{cJCG-qAp9`|{@?OAyv|+O1Q&!YT zB>b-^W@`I_%@)7D-luZv@4^giyT2yM@vgbOL)E1Pvs(~ z8S(ck`Fri$}PTjyo8VAh2Q&VT3Jy!H`M_9A%s5~#>%Vj^K)jzR&P zMxQ=WOuItq;9%b$_y>ww3K^9E>0eS}aBTO3K&KgFA{tBh4gtjTHjP($8!^zQemZ5DFEHS^>5H z|2hMa43M4j$?;^y$+jbQ(tZ}Urv*>@|?mnutaHw;Ap4Up+J9jHOpt7yZcczsIGg-Kzg@TxNAV zkn7_^K(la8>T#iAAZ+s()}b!t>YwMi(lktJ-tb85icRe4I6O}c){a%h8G3Z-fB#t^ z(&oq8h$n#GpX@K<6E=>lJShCcLiwvYfU_*%?a5dF9esMwj`aWU<7+`AFV`lN*jMG? iKQJIUO38^M&7-2CAT#e+KgNN#ASrQqu~Lx_{{Ij0;-rlL literal 0 HcmV?d00001 diff --git a/doc/fr/images/adao_exporttoyacs.png b/doc/fr/images/adao_exporttoyacs.png new file mode 100644 index 0000000000000000000000000000000000000000..25a98d7227da1e716e52673bea30b3f15fd7eea7 GIT binary patch literal 33514 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 literal 0 HcmV?d00001 diff --git a/doc/fr/images/adao_jdcexample02.png b/doc/fr/images/adao_jdcexample02.png new file mode 100644 index 0000000000000000000000000000000000000000..02e144026b5c9617dc039ccc1343d95a5cf40365 GIT binary patch literal 49322 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 literal 0 HcmV?d00001 diff --git a/doc/fr/images/adao_scriptentry01.png b/doc/fr/images/adao_scriptentry01.png new file mode 100644 index 0000000000000000000000000000000000000000..c2be12dec814605b822099a55671e17c9f2403de GIT binary patch literal 46241 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 tj>VtLVR4~9XFUyhKgoN>W}T6wv?x literal 0 HcmV?d00001 diff --git a/doc/fr/images/eficas_close.png b/doc/fr/images/eficas_close.png new file mode 100644 index 0000000000000000000000000000000000000000..4364ce7fe7d8ef363f0560fb0b4042fee232e748 GIT binary patch literal 1260 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 B2W$WU literal 0 HcmV?d00001 diff --git a/doc/fr/images/eficas_open.png b/doc/fr/images/eficas_open.png new file mode 100644 index 0000000000000000000000000000000000000000..503a0045911aea0af4dfa1562ca1216941935702 GIT binary patch literal 2232 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

+(5_bE!pw~pLxK#0TgOSd>ugK1;-30OdL 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 FV1k}S03QGV literal 0 HcmV?d00001 diff --git a/doc/fr/images/eficas_yacs.png b/doc/fr/images/eficas_yacs.png new file mode 100644 index 0000000000000000000000000000000000000000..12569335b177257350a1ea7d9c9b3c1e4fd49acc GIT binary patch literal 563 zcmV-30?hr1P)2SZ9rc0)JK9JA*r}gyx7(Cb%d-9@ zk(fCMf^N6lYPD?Jj*E)Lq7VXr=Xs9f>|gC4{yyBEZv)_*uj_0W24l>1-6$P>7!5xT zcif$WPY1@4A%s{mC&Bvt{>%07BLIV6Zz|Kf@ZFzbeQ1aFhR)4qlQGt4G~%79IrYE! zim1zbWQiE_LQ6Ft{<<-mf8ZaSS*sA2_f-QpCy%1 zil~$CCrjomA-Z#+ly25T5d~n6?rmlkLQqP>FqBe`v*R;X0{{R3_rj%Y00004XF*Lt006O% z3;baP0005_P)t-s3YqG&U^MqFn6OwDj`yoO(pm&ZPYEyj)U5{MMvwYGjOteC+1rbaHHLUPSD= zT+GVE{Nlv4vaFn%lsrB>EUT%4ASJT^3Zc68*XR7_4xtgft-l9Y6Ie3XuS?6O?EzP!YiOytUptfrjg z;@m7QB=q|HjCx$u&dmJ!#9Ufb{NAjLihTUejNIPT^tx>H?&M@*WE2(@bZ%7Su2h7A zeAL#|l$MM%Hay&>O#I%o^!D`J%B=kM#QfT%?CRvq&djvByriCtL_$2|s!V)-bo9!M z?6OQeG8|-LROG5u{O-Jzj*P^bR7^@t+Z2aoX{N}Xe-rOW29Bfi7gl{OYunj)cUPR7^@l zV>IGcGYOVIUwkjFx4aPLWtU&c^z0y1Tsa3$NVk?v=am`}_3yatPx8Ee<05 z?}ZUZwm+XFD}R3wq;EX2p{8c*gkNC@&vuT{PzB@w3nzZa#K<(=fEu|hL7u$Md1eFIg_cB0Yz*9+&>h*NL0q5TFH~Y$Zs*9>ktem9CQ7zR<8uV& zq1xFV?OE1*v#sIj-IG%(8_+DijY7e&iZst&v8Z|igVXEl9`9RK?MmN2%9otVdqC<#z0O>SBGEUDP#sApIF zDdE%guS{`-T@JakLk=-NIaK;RWsq@*g+y#P*e%cQF#H9~{{Ih7FY)mJ000McNliru Z+zSg0H#aGpR*V1u002ovPDHLkV1hMDZ4Ceb literal 0 HcmV?d00001 diff --git a/doc/fr/images/yacs_containerlog.png b/doc/fr/images/yacs_containerlog.png new file mode 100644 index 0000000000000000000000000000000000000000..0fe0eb66b484627f4a511fde0a0242864373104e GIT binary patch literal 194748 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 UsZ#}f;4zSbtSYQR+VuVZ0$uY>4gdfE literal 0 HcmV?d00001 diff --git a/doc/fr/images/yacs_generatedscheme.png b/doc/fr/images/yacs_generatedscheme.png new file mode 100644 index 0000000000000000000000000000000000000000..240671687ddbd67c6ca69a3a27f7f5f5fa3cf5c8 GIT binary patch literal 105758 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%0D%Y!2Niu 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 literal 0 HcmV?d00001 diff --git a/doc/fr/index.rst b/doc/fr/index.rst new file mode 100644 index 0000000..66c04f2 --- /dev/null +++ b/doc/fr/index.rst @@ -0,0 +1,68 @@ +================================================================================ +Documentation ADAO +================================================================================ + +.. image:: images/ADAO_logo.png + :align: center + :width: 20% + +Le module ADAO fournit des fonctionnalités d'**assimilation des données et +d'optimisation** dans un contexte SALOME. Il est basé sur l'utilisation d'autres +modules, à savoir YACS et EFICAS, et sur l'utilisation d'une bibliothèque +générique sous-jacente d'assimilation de données. + +En bref, l'assimilation des données est un cadre méthodologique pour calculer +l'estimation optimale de la valeur réelle (inaccessible) de l'état d'un système +au cours du temps. Il utilise des informations provenant de mesures +expérimentales, ou observations, et de modèles numériques *a priori*, y compris +des informations sur leurs erreurs. Certaines des méthodes incluses dans ce +cadre sont également connues sous les noms d'*estimation des paramètres*, de +*problèmes inverses*, d'*estimation bayésienne*, d'*interpolation optimale*, +etc. De plus amples détails peuvent être trouvés dans la section +:ref:`section_theory`. + +La documentation de ce module est divisée en plusieurs parties. La première +:ref:`section_intro` est une introduction. La deuxième partie +:ref:`section_theory` présente brièvement l'assimilation de données, +l'optimisation et les concepts. La troisième partie :ref:`section_using` +explique comment utiliser le module ADAO. La quatrième partie +:ref:`section_reference` donne une description détaillée de toutes les commandes +ADAO et des mots-clés. La cinquième partie :ref:`section_examples` donne des +exemples sur l'utilisation d'ADAO. Les utilisateurs intéressés par une +accès rapide au module peuvent sauter cette section, mais un usage utile +du module nécessite de lire et de revenir régulièrement aux troisième et +quatrième parties. La dernière partie :ref:`section_advanced` se focalise sur +des usages avancés du module, sur l'obtention de plus de renseignements, ou sur +l'usage par scripting, sans interface utilisateur graphique (GUI). Enfin, +n'oubliez pas de lire la partie :ref:`section_licence` pour respecter les +exigences de licence du module. + +Dans cette documentation, on utilise les notations standards de l'algèbre +linéaire, de l'assimilation de données (comme décrit dans [Ide97]_) et de +l'optimisation. En particulier, les vecteurs sont écrits horizontalement ou +verticalement sans faire la différence. Les matrices sont écrites soit +normalement, ou avec une notation condensée, consistant à utiliser un espace +pour séparer les valeurs, et un "``;``" pour séparer les lignes de la matrice, +de façon continue sur une ligne. + +Table des matières +------------------ + +.. toctree:: + :maxdepth: 2 + + intro + theory + using + reference + examples + advanced + licence + bibliography + +Index et tables +--------------- + +* :ref:`genindex` +* :ref:`search` +* :ref:`section_glossary` diff --git a/doc/fr/intro.rst b/doc/fr/intro.rst new file mode 100644 index 0000000..88bd094 --- /dev/null +++ b/doc/fr/intro.rst @@ -0,0 +1,26 @@ +.. _section_intro: + +================================================================================ +Introduction à ADAO +================================================================================ + +L'objectif du module est ADAO **d'aider à l'usage de l'assimilation de données +ou de l'optimisation en lien avec d'autres modules ou codes de simulation dans +SALOME**. Le module ADAO fournit une interface à des algorithmes classiques +d'assimilation de données ou d'optimisation, et permet d'intégrer leur usage +dans une étude SALOME. Les modules de calcul ou de simulation doivent fournir +une ou plusieurs méthodes d'appel spécifiques afin d'être appelable dans le +cadre SALOME/ADAO, et tous les modules SALOME peuvent être utilisés grace à +l'intégration dans YACS de ADAO. + +Son principal objectif est de *faciliter l'usage de diverses méthodes standards +d'assimilation de données ou d'optimisation*, tout en restant facile à utiliser +et en fournissant une démarche pour aider à la mise en oeuvre. Pour +l'utilisateur final, qui a préalablement recueilli les informations sur son +problème physique, l'environnement lui permet d'avoir une démarche de type +"souris\&click" pour construire un cas ADAO valide et pour l'évaluer. + +Le module couvre une grande variété d'applications pratiques, de façon robuste, +permettant des applications réelles, mais aussi d'effectuer de l'expérimentation +méthodologique rapide. Son évolutivité, des points de vue méthodologique et +numérique, permettra l'extension de son domaine d'application. diff --git a/doc/fr/reference.rst b/doc/fr/reference.rst new file mode 100644 index 0000000..a77f8d3 --- /dev/null +++ b/doc/fr/reference.rst @@ -0,0 +1,1317 @@ +.. _section_reference: + +================================================================================ +Description de référence des commandes et mots-clés ADAO +================================================================================ + +Cette section présente la description de référence des commandes et mots-clés +ADAO disponibles à travers l'interface graphique (GUI) ou à travers des scripts. +Chaque commande ou mot-clé à définir par l'interface graphique (GUI) a des +propriétés particulières. La première propriété est d'être *requise*, +*optionnelle* ou simplement utile, décrivant un type d'entrée. La seconde +propriété est d'être une variable "ouverte" avec un type fixé mais avec +n'importe quelle valeur autorisée par le type, ou une variable "fermée", limitée +à des valeurs spécifiées. L'éditeur graphique EFICAS disposant de capacités +intrinsèques de validation, les propriétés des commandes ou mots-clés données à +l'aide de l'interface graphique sont automatiquement correctes. + +Les notations mathématiques utilisées ci-dessous sont expliquées dans la section +:ref:`section_theory`. + +Des exemples sur l'usage de ces commandes sont disponibles dans la section +:ref:`section_examples` et dans les fichiers d'exemple installés avec le module +ADAO. + +Liste des types d'entrées possibles +----------------------------------- + +.. index:: single: Dict +.. index:: single: Function +.. index:: single: Matrix +.. index:: single: ScalarSparseMatrix +.. index:: single: DiagonalSparseMatrix +.. index:: single: String +.. index:: single: Script +.. index:: single: Vector + +Chaque variable ADAO présente un pseudo-type qui aide à la remplir et à la +valider. Les différents pseudo-types sont: + +**Dict** + Cela indique une variable qui doit être remplie avec un dictionnaire Python + ``{"clé":"valeur"...}``, usuellement donné soit par une chaîne de caractères + soit par un fichier script. + +**Function** + Cela indique une variable qui doit être donnée comme une fonction Python, + usuellement donnée soit par une chaîne de caractères soit par un fichier + script. + +**Matrix** + Cela indique une variable qui doit être donnée comme une matrice, + usuellement donnée soit par une chaîne de caractères soit par un fichier + script. + +**ScalarSparseMatrix** + Cela indique une variable qui doit être donnée comme un nombre unique (qui + sera utilisé pour multiplier une matrice identité), usuellement donné soit + par une chaîne de caractères soit par un fichier script. + +**DiagonalSparseMatrix** + Cela indique une variable qui doit , (qui sera + utilisé pour remplacer la diagonale d'une matrice identité), usuellement + donné soit par une chaîne de caractères soit par un fichier script. + +**Script** + Cela indique un script donné comme un fichier externe. Il peut être désigné + par un nom de fichier avec chemin complet ou seulement par un nom de fichier + sans le chemin. Si le fichier est donné uniquement par un nom sans chemin, + et si un répertoire d'étude est aussi indiqué, le fichier est recherché dans + le répertoire d'étude donné. + +**String** + Cela indique une chaîne de caractères fournissant une représentation + littérale d'une matrice, d'un vecteur ou d'une collection de vecteurs, comme + par exemple "1 2 ; 3 4" ou "[[1,2],[3,4]]" pour une matrice carrée de taille + 2x2. + +**Vector** + Cela indique une variable qui doit être remplie comme un vecteur, + usuellement donné soit par une chaîne de caractères soit par un fichier + script. + +**VectorSerie** + Cela indique une variable qui doit être remplie comme une liste de vecteurs, + usuellement donnée soit par une chaîne de caractères soit par un fichier + script. + +Lorsqu'une commande ou un mot-clé peut être rempli par un nom de fichier script, +ce script doit présenter une variable ou une méthode que porte le même nom que +la variable à remplir. En d'autres mots, lorsque l'on importe le script dans un +noeud Python de YACS, il doit créer une variable du bon nom dans l'espace de +nommage courant du noeud. + +Description de référence pour les cas de calcul ADAO +---------------------------------------------------- + +Liste des commandes et mots-clés pour un cas de calcul ADAO ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. index:: single: ASSIMILATION_STUDY +.. index:: single: Algorithm +.. index:: single: AlgorithmParameters +.. index:: single: Background +.. index:: single: BackgroundError +.. index:: single: ControlInput +.. index:: single: Debug +.. index:: single: EvolutionError +.. index:: single: EvolutionModel +.. index:: single: InputVariables +.. index:: single: Observation +.. index:: single: ObservationError +.. index:: single: ObservationOperator +.. index:: single: Observers +.. index:: single: OutputVariables +.. index:: single: Study_name +.. index:: single: Study_repertory +.. index:: single: UserDataInit +.. index:: single: UserPostAnalysis + +La première série de commandes est liée à la description d'un cas de calcul, qui +est une procédure d'*Assimilation de Données* ou d'*Optimisation*. Les termes +sont classés par ordre alphabétique, sauf le premier, qui décrit le choix entre +le calcul ou la vérification. Les différentes commandes sont les suivantes: + +**ASSIMILATION_STUDY** + *Commande obligatoire*. C'est la commande générale qui décrit le cas + d'assimilation de données ou d'optimisation. Elle contient hiérarchiquement + toutes les autres commandes. + +**Algorithm** + *Commande obligatoire*. C'est une chaîne de caractère qui indique l'algorithme + d'assimilation de données ou d'optimisation choisi. Les choix sont limités + et disponibles à travers l'interface graphique. Il existe par exemple le + "3DVAR", le "Blue"... Voir plus loin la liste des algorithmes et des + paramètres associés dans la sous-section `Commandes optionnelles et requises + pour les algorithmes de calcul`_. + +**AlgorithmParameters** + *Commande optionnelle*. Elle permet d'ajouter des paramètres optionnels pour + contrôler l'algorithme d'assimilation de données ou d'optimisation. Sa + valeur est définie comme un objet de type "*Dict*". Voir plus loin la liste + des algorithmes et des paramètres associés dans la sous-section `Commandes + optionnelles et requises pour les algorithmes de calcul`_. + +**Background** + *Commande obligatoire*. Elle définit le vecteur d'ébauche ou + d'initialisation, noté précédemment :math:`\mathbf{x}^b`. Sa valeur est + définie comme un objet de type "*Vector*". + +**BackgroundError** + *Commande obligatoire*. Elle définit la matrice de covariance des erreurs + d'ébauche, notée précédemment :math:`\mathbf{B}`. Sa valeur est définie + comme un objet de type "*Matrix*", de type "*ScalarSparseMatrix*", ou de + type "*DiagonalSparseMatrix*". + +**ControlInput** + *Commande optionnelle*. Elle indique le vecteur de contrôle utilisé pour + forcer le modèle d'évolution à chaque pas, usuellement noté + :math:`\mathbf{U}`. Sa valeur est définie comme un objet de type "*Vector*" + ou de type *VectorSerie*. Lorsqu'il n'y a pas de contrôle, sa valeur doit + être une chaîne vide ''. + +**Debug** + *Commande obligatoire*. Elle définit le niveau de sorties et d'informations + intermédiaires de débogage. Les choix sont limités entre 0 (pour False) and + 1 (pour True). + +**EvolutionError** + *Commande optionnelle*. Elle définit la matrice de covariance des erreurs + d'évolution, usuellement notée :math:`\mathbf{Q}`. Sa valeur est définie + comme un objet de type "*Matrix*", de type "*ScalarSparseMatrix*", ou de + type "*DiagonalSparseMatrix*". + +**EvolutionModel** + *Commande optionnelle*. Elle indique l'opérateur d'évolution du modèle, + usuellement noté :math:`M`, qui décrit un pas élémentaire d'évolution. Sa + valeur est définie comme un objet de type "*Function*". Différentes formes + fonctionnelles peuvent être utilisées, comme décrit dans la sous-section + suivante `Exigences pour les fonctions décrivant un opérateur`_. Si un + contrôle :math:`U` est inclus dans le modèle d'évolution, l'opérateur doit + être appliqué à une paire :math:`(X,U)`. + +**InputVariables** + *Commande optionnelle*. Elle permet d'indiquer le nom et la taille des + variables physiques qui sont rassemblées dans le vecteur d'état. Cette + information est destinée à être utilisée dans le traitement algorithmique + interne des données. + +**Observation** + *Commande obligatoire*. Elle définit le vecteur d'observation utilisé en + assimilation de données ou en optimisation, et noté précédemment + :math:`\mathbf{y}^o`. Sa valeur est définie comme un objet de type "*Vector*" + ou de type *VectorSerie*". + +**ObservationError** + *Commande obligatoire*. Elle définit la matrice de covariance des erreurs + d'ébauche, notée précédemment :math:`\mathbf{R}`. Sa valeur est définie + comme un objet de type "*Matrix*", de type "*ScalarSparseMatrix*", ou de + type "*DiagonalSparseMatrix*". + +**ObservationOperator** + *Commande obligatoire*. Elle indique l'opérateur d'observation, notée + précédemment :math:`H`, qui transforme les paramètres d'entrée + :math:`\mathbf{x}` en résultats :math:`\mathbf{y}` qui sont à comparer aux + observations :math:`\mathbf{y}^o`. Sa valeur est définie comme un objet de + type "*Function*". Différentes formes fonctionnelles peuvent être utilisées, + comme décrit dans la sous-section suivante `Exigences pour les fonctions + décrivant un opérateur`_. Si un contrôle :math:`U` est inclus dans le modèle + d'observation, l'opérateur doit être appliqué à une paire :math:`(X,U)`. + +**Observers** + *Commande optionnelle*. Elle permet de définir des observateurs internes, + qui sont des fonctions liées à une variable particulière, qui sont exécutées + chaque fois que cette variable est modifiée. C'est une manière pratique de + suivre des variables d'intérêt durant le processus d'assimilation de données + ou d'optimisation, en l'affichant ou en la traçant, etc. Des exemples + courants (squelettes) sont fournis pour aider l'utilisateur ou pour + faciliter l'élaboration d'un cas. + +**OutputVariables** + *Commande optionnelle*. Elle permet d'indiquer le nom et la taille des + variables physiques qui sont rassemblées dans le vecteur d'observation. + Cette information est destinée à être utilisée dans le traitement + algorithmique interne des données. + +**Study_name** + *Commande obligatoire*. C'est une chaîne de caractères quelconque pour + décrire l'étude ADAO par un nom ou une déclaration. + +**Study_repertory** + *Commande optionnelle*. S'il existe, ce répertoire est utilisé comme base + pour les calculs, et il est utilisé pour trouver les fichiers de script, + donnés par nom sans répertoire, qui peuvent être utilisés pour définir + certaines variables. + +**UserDataInit** + *Commande optionnelle*. Elle permet d'initialiser certains paramètres ou + certaines données automatiquement avant le traitement de données d'entrée + pour l'assimilation de données ou l'optimisation. Pour cela, elle indique un + nom de fichier de script à exécuter avant d'entrer dans l'initialisation des + variables choisies. + +**UserPostAnalysis** + *Commande optionnelle*. Elle permet de traiter des paramètres ou des + résultats après le déroulement de l'algorithme d'assimilation de données ou + d'optimisation. Sa valeur est définie comme un fichier script ou une chaîne + de caractères, permettant de produire directement du code de post-processing + dans un cas ADAO. Des exemples courants (squelettes) sont fournis pour aider + l'utilisateur ou pour faciliter l'élaboration d'un cas. + +Commandes optionnelles et requises pour les algorithmes de calcul ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. index:: single: 3DVAR +.. index:: single: Blue +.. index:: single: ExtendedBlue +.. index:: single: EnsembleBlue +.. index:: single: KalmanFilter +.. index:: single: ExtendedKalmanFilter +.. index:: single: UnscentedKalmanFilter +.. index:: single: LinearLeastSquares +.. index:: single: NonLinearLeastSquares +.. index:: single: ParticleSwarmOptimization +.. index:: single: QuantileRegression + +.. index:: single: AlgorithmParameters +.. index:: single: Bounds +.. index:: single: CostDecrementTolerance +.. index:: single: GradientNormTolerance +.. index:: single: GroupRecallRate +.. index:: single: MaximumNumberOfSteps +.. index:: single: Minimizer +.. index:: single: NumberOfInsects +.. index:: single: ProjectedGradientTolerance +.. index:: single: QualityCriterion +.. index:: single: Quantile +.. index:: single: SetSeed +.. index:: single: StoreInternalVariables +.. index:: single: StoreSupplementaryCalculations +.. index:: single: SwarmVelocity + +Chaque algorithme peut être contrôlé en utilisant des options génériques ou +particulières, données à travers la commande optionnelle "*AlgorithmParameters*" +dans un fichier script ou une chaîne de caractères, à la manière de l'exemple +qui suit dans un fichier:: + + AlgorithmParameters = { + "Minimizer" : "LBFGSB", + "MaximumNumberOfSteps" : 25, + "StoreSupplementaryCalculations" : ["APosterioriCovariance","OMA"], + } + +Cette section décrit les options disponibles algorithme par algorithme. De plus, +pour chaque algorithme, les commandes/mots-clés obligatoires sont indiqués. Si +une option est spécifiée par l'utilisateur pour un algorithme qui ne la supporte +pas, cette option est simplement laissée inutilisée et ne bloque pas le +traitement. La signification des acronymes ou des noms particuliers peut être +trouvée dans l':ref:`genindex` ou dans le :ref:`section_glossary`. + +**"Blue"** + + *Commandes obligatoires* + *"Background", "BackgroundError", + "Observation", "ObservationError", + "ObservationOperator"* + + StoreInternalVariables + Cette clé booléenne permet de stocker les variables internes par défaut, + principalement l'état courant lors d'un processus itératif. Attention, cela + peut être un choix numériquement coûteux dans certains cas de calculs. La + valeur par défaut est "False". + + StoreSupplementaryCalculations + Cette liste indique les noms des variables supplémentaires qui peuvent être + disponibles à la fin de l'algorithme. Cela implique potentiellement des + calculs coûteux. La valeur par défaut est une liste vide, aucune de ces + variables n'étant calculée et stockée par défaut. Les noms possibles sont + dans la liste suivante : ["APosterioriCovariance", "BMA", "OMA", "OMB", + "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency"]. + +**"ExtendedBlue"** + + *Commandes obligatoires* + *"Background", "BackgroundError", + "Observation", "ObservationError", + "ObservationOperator"* + + StoreInternalVariables + Cette clé booléenne permet de stocker les variables internes par défaut, + principalement l'état courant lors d'un processus itératif. Attention, cela + peut être un choix numériquement coûteux dans certains cas de calculs. La + valeur par défaut est "False". + + StoreSupplementaryCalculations + Cette liste indique les noms des variables supplémentaires qui peuvent être + disponibles à la fin de l'algorithme. Cela implique potentiellement des + calculs coûteux. La valeur par défaut est une liste vide, aucune de ces + variables n'étant calculée et stockée par défaut. Les noms possibles sont + dans la liste suivante : ["APosterioriCovariance", "BMA", "OMA", "OMB", + "Innovation", "SigmaBck2", "SigmaObs2", "MahalanobisConsistency"]. + +**"LinearLeastSquares"** + + *Commandes obligatoires* + *"Observation", "ObservationError", + "ObservationOperator"* + + StoreInternalVariables + Cette clé booléenne permet de stocker les variables internes par défaut, + principalement l'état courant lors d'un processus itératif. Attention, cela + peut être un choix numériquement coûteux dans certains cas de calculs. La + valeur par défaut est "False". + + StoreSupplementaryCalculations + Cette liste indique les noms des variables supplémentaires qui peuvent être + disponibles à la fin de l'algorithme. Cela implique potentiellement des + calculs coûteux. La valeur par défaut est une liste vide, aucune de ces + variables n'étant calculée et stockée par défaut. Les noms possibles sont + dans la liste suivante : ["OMA"]. + +**"3DVAR"** + + *Commandes obligatoires* + *"Background", "BackgroundError", + "Observation", "ObservationError", + "ObservationOperator"* + + Minimizer + Cette clé permet de changer le minimiseur pour l'optimiseur. Le choix par + défaut est "LBFGSB", et les choix possibles sont "LBFGSB" (minimisation non + linéaire sous contraintes, see [Byrd95]_ and [Zhu97]_), "TNC" (minimisation + non linéaire sous contraintes), "CG" (minimisation non linéaire sans + contraintes), "BFGS" (minimisation non linéaire sans contraintes), "NCG" + (minimisation de type gradient conjugué de Newton). On conseille de + conserver la valeur par défaut. + + Bounds + Cette clé permet de définir des bornes supérieure et inférieure pour + chaque variable d'état optimisée. Les bornes peuvent être données par une + liste de liste de paires de bornes inférieure/supérieure pour chaque + variable, avec une valeur ``None`` chaque fois qu'il n'y a pas de borne. Les + bornes peuvent toujours être spécifiées, mais seuls les optimiseurs sous + contraintes les prennent en compte. + + MaximumNumberOfSteps + Cette clé indique le nombre maximum d'itérations possibles en optimisation + itérative. Le défaut est 15000, qui est très similaire à une absence de + limite sur les itérations. Il est ainsi recommandé d'adapter ce paramètre + aux besoins pour des problèmes réels. Pour certains optimiseurs, le nombre + de pas effectif d'arrêt peut être légèrement différent de la limite à cause + d'exigences de contrôle interne de l'algorithme. + + CostDecrementTolerance + Cette clé indique une valeur limite, conduisant à arrêter le processus + itératif d'optimisation lorsque la fonction coût décroît moins que cette + tolérance au dernier pas. Le défaut est de 1.e-7, et il est recommandé + de l'adapter aux besoins pour des problèmes réels. + + ProjectedGradientTolerance + Cette clé indique une valeur limite, conduisant à arrêter le processus + itératif d'optimisation lorsque toutes les composantes du gradient projeté + sont en-dessous de cette limite. C'est utilisé uniquement par les + optimiseurs sous contraintes. Le défaut est -1, qui désigne le défaut + interne de chaque optimiseur (usuellement 1.e-5), et il n'est pas recommandé + de le changer. + + GradientNormTolerance + Cette clé indique une valeur limite, conduisant à arrêter le processus + itératif d'optimisation lorsque la norme du gradient est en dessous de cette + limite. C'est utilisé uniquement par les optimiseurs sans contraintes. Le + défaut est 1.e-5 et il n'est pas recommandé de le changer. + + StoreInternalVariables + Cette clé booléenne permet de stocker les variables internes par défaut, + principalement l'état courant lors d'un processus itératif. Attention, cela + peut être un choix numériquement coûteux dans certains cas de calculs. La + valeur par défaut est "False". + + StoreSupplementaryCalculations + Cette liste indique les noms des variables supplémentaires qui peuvent être + disponibles à la fin de l'algorithme. Cela implique potentiellement des + calculs coûteux. La valeur par défaut est une liste vide, aucune de ces + variables n'étant calculée et stockée par défaut. Les noms possibles sont + dans la liste suivante : ["APosterioriCovariance", "BMA", "OMA", "OMB", + "Innovation", "SigmaObs2", "MahalanobisConsistency"]. + +**"NonLinearLeastSquares"** + + *Commandes obligatoires* + *"Background", + "Observation", "ObservationError", + "ObservationOperator"* + + Minimizer + Cette clé permet de changer le minimiseur pour l'optimiseur. Le choix par + défaut est "LBFGSB", et les choix possibles sont "LBFGSB" (minimisation non + linéaire sous contraintes, voir [Byrd95]_ and [Zhu97]_), "TNC" (minimisation + non linéaire sous contraintes), "CG" (minimisation non linéaire sans + contraintes), "BFGS" (minimisation non linéaire sans contraintes), "NCG" + (minimisation de type gradient conjugué de Newton). On conseille de + conserver la valeur par défaut. + + Bounds + Cette clé permet de définir des bornes supérieure et inférieure pour + chaque variable d'état optimisée. Les bornes peuvent être données par une + liste de liste de paires de bornes inférieure/supérieure pour chaque + variable, avec une valeur ``None`` chaque fois qu'il n'y a pas de borne. Les + bornes peuvent toujours être spécifiées, mais seuls les optimiseurs sous + contraintes les prennent en compte. + + MaximumNumberOfSteps + Cette clé indique le nombre maximum d'itérations possibles en optimisation + itérative. Le défaut est 15000, qui est très similaire à une absence de + limite sur les itérations. Il est ainsi recommandé d'adapter ce paramètre + aux besoins pour des problèmes réels. Pour certains optimiseurs, le nombre + de pas effectif d'arrêt peut être légèrement différent de la limite à cause + d'exigences de contrôle interne de l'algorithme. + + CostDecrementTolerance + Cette clé indique une valeur limite, conduisant à arrêter le processus + itératif d'optimisation lorsque la fonction coût décroît moins que cette + tolérance au dernier pas. Le défaut est de 1.e-7, et il est recommandé + de l'adapter aux besoins pour des problèmes réels. + + ProjectedGradientTolerance + Cette clé indique une valeur limite, conduisant à arrêter le processus + itératif d'optimisation lorsque toutes les composantes du gradient projeté + sont en-dessous de cette limite. C'est utilisé uniquement par les + optimiseurs sous contraintes. Le défaut est -1, qui désigne le défaut + interne de chaque optimiseur (usuellement 1.e-5), et il n'est pas recommandé + de le changer. + + GradientNormTolerance + Cette clé indique une valeur limite, conduisant à arrêter le processus + itératif d'optimisation lorsque la norme du gradient est en dessous de cette + limite. C'est utilisé uniquement par les optimiseurs sans contraintes. Le + défaut est 1.e-5 et il n'est pas recommandé de le changer. + + StoreInternalVariables + Cette clé booléenne permet de stocker les variables internes par défaut, + principalement l'état courant lors d'un processus itératif. Attention, cela + peut être un choix numériquement coûteux dans certains cas de calculs. La + valeur par défaut est "False". + + StoreSupplementaryCalculations + Cette liste indique les noms des variables supplémentaires qui peuvent être + disponibles à la fin de l'algorithme. Cela implique potentiellement des + calculs coûteux. La valeur par défaut est une liste vide, aucune de ces + variables n'étant calculée et stockée par défaut. Les noms possibles sont + dans la liste suivante : ["APosterioriCovariance", "BMA", "OMA", "OMB", + "Innovation", "SigmaObs2", "MahalanobisConsistency"]. + +**"EnsembleBlue"** + + *Commandes obligatoires* + *"Background", "BackgroundError", + "Observation", "ObservationError", + "ObservationOperator"* + + SetSeed + Cette clé permet de donner un nombre entier pour fixer la graine du + générateur aléatoire utilisé pour générer l'ensemble. Un valeur pratique est + par exemple 1000. Par défaut, la graine est laissée non initialisée, et elle + utilise ainsi l'initialisation de l'ordinateur. + +**"KalmanFilter"** + + *Commandes obligatoires* + *"Background", "BackgroundError", + "Observation", "ObservationError", + "ObservationOperator"* + + EstimationOf + Cette clé permet de choisir le type d'estimation à réaliser. Cela peut être + soit une estimation de l'état, avec la valeur "State", ou une estimation de + paramètres, avec la valeur "Parameters". Le choix par défaut est "State". + + StoreInternalVariables + Cette clé booléenne permet de stocker les variables internes par défaut, + principalement l'état courant lors d'un processus itératif. Attention, cela + peut être un choix numériquement coûteux dans certains cas de calculs. La + valeur par défaut est "False". + + StoreSupplementaryCalculations + Cette liste indique les noms des variables supplémentaires qui peuvent être + disponibles à la fin de l'algorithme. Cela implique potentiellement des + calculs coûteux. La valeur par défaut est une liste vide, aucune de ces + variables n'étant calculée et stockée par défaut. Les noms possibles sont + dans la liste suivante : ["APosterioriCovariance", "BMA", "Innovation"]. + +**"ExtendedKalmanFilter"** + + *Commandes obligatoires* + *"Background", "BackgroundError", + "Observation", "ObservationError", + "ObservationOperator"* + + Bounds + Cette clé permet de définir des bornes supérieure et inférieure pour chaque + variable d'état optimisée. Les bornes peuvent être données par une liste de + liste de paires de bornes inférieure/supérieure pour chaque variable, avec + une valeur extrême chaque fois qu'il n'y a pas de borne. Les bornes peuvent + toujours être spécifiées, mais seuls les optimiseurs sous contraintes les + prennent en compte. + + ConstrainedBy + Cette clé permet de définir la méthode pour prendre en compte les bornes. Les + méthodes possibles sont dans la liste suivante : ["EstimateProjection"]. + + EstimationOf + Cette clé permet de choisir le type d'estimation à réaliser. Cela peut être + soit une estimation de l'état, avec la valeur "State", ou une estimation de + paramètres, avec la valeur "Parameters". Le choix par défaut est "State". + + StoreInternalVariables + Cette clé booléenne permet de stocker les variables internes par défaut, + principalement l'état courant lors d'un processus itératif. Attention, cela + peut être un choix numériquement coûteux dans certains cas de calculs. La + valeur par défaut est "False". + + StoreSupplementaryCalculations + Cette liste indique les noms des variables supplémentaires qui peuvent être + disponibles à la fin de l'algorithme. Cela implique potentiellement des + calculs coûteux. La valeur par défaut est une liste vide, aucune de ces + variables n'étant calculée et stockée par défaut. Les noms possibles sont + dans la liste suivante : ["APosterioriCovariance", "BMA", "Innovation"]. + +**"UnscentedKalmanFilter"** + + *Commandes obligatoires* + *"Background", "BackgroundError", + "Observation", "ObservationError", + "ObservationOperator"* + + Bounds + Cette clé permet de définir des bornes supérieure et inférieure pour chaque + variable d'état optimisée. Les bornes peuvent être données par une liste de + liste de paires de bornes inférieure/supérieure pour chaque variable, avec + une valeur extrême chaque fois qu'il n'y a pas de borne. Les bornes peuvent + toujours être spécifiées, mais seuls les optimiseurs sous contraintes les + prennent en compte. + + ConstrainedBy + Cette clé permet de définir la méthode pour prendre en compte les bornes. Les + méthodes possibles sont dans la liste suivante : ["EstimateProjection"]. + + EstimationOf + Cette clé permet de choisir le type d'estimation à réaliser. Cela peut être + soit une estimation de l'état, avec la valeur "State", ou une estimation de + paramètres, avec la valeur "Parameters". Le choix par défaut est "State". + + Alpha, Beta, Kappa, Reconditioner + Ces clés sont des paramètres de mise à l'échelle interne. "Alpha" requiert + une valeur comprise entre 1.e-4 et 1. "Beta" a une valeur optimale de 2 pour + une distribution *a priori* gaussienne. "Kappa" requiert une valeur entière, + dont la bonne valeur par défaut est obtenue en la mettant à 0. + "Reconditioner" requiert une valeur comprise entre 1.e-3 et 10, son défaut + étant 1. + + StoreInternalVariables + Cette clé booléenne permet de stocker les variables internes par défaut, + principalement l'état courant lors d'un processus itératif. Attention, cela + peut être un choix numériquement coûteux dans certains cas de calculs. La + valeur par défaut est "False". + + StoreSupplementaryCalculations + Cette liste indique les noms des variables supplémentaires qui peuvent être + disponibles à la fin de l'algorithme. Cela implique potentiellement des + calculs coûteux. La valeur par défaut est une liste vide, aucune de ces + variables n'étant calculée et stockée par défaut. Les noms possibles sont + dans la liste suivante : ["APosterioriCovariance", "BMA", "Innovation"]. + +**"ParticleSwarmOptimization"** + + *Commandes obligatoires* + *"Background", "BackgroundError", + "Observation", "ObservationError", + "ObservationOperator"* + + MaximumNumberOfSteps + Cette clé indique le nombre maximum d'itérations possibles en optimisation + itérative. Le défaut est 50, qui est une limite arbitraire. Il est ainsi + recommandé d'adapter ce paramètre aux besoins pour des problèmes réels. + + NumberOfInsects + Cette clé indique le nombre d'insectes ou de particules dans l'essaim. La + valeur par défaut est 100, qui est une valeur par défaut usuelle pour cet + algorithme. + + SwarmVelocity + Cette clé indique la part de la vitesse d'insecte qui est imposée par + l'essaim. C'est une valeur réelle positive. Le défaut est de 1. + + GroupRecallRate + Cette clé indique le taux de rappel vers le meilleur insecte de l'essaim. + C'est une valeur réelle comprise entre 0 et 1. Le défaut est de 0.5. + + QualityCriterion + Cette clé indique le critère de qualité, qui est minimisé pour trouver + l'estimation optimale de l'état. Le défaut est le critère usuel de + l'assimilation de données nommé "DA", qui est le critère de moindres carrés + pondérés augmentés. Les critères possibles sont dans la liste suivante, dans + laquelle les noms équivalents sont indiqués par "=" : + ["AugmentedPonderatedLeastSquares"="APLS"="DA", + "PonderatedLeastSquares"="PLS", "LeastSquares"="LS"="L2", + "AbsoluteValue"="L1", "MaximumError"="ME"] + + SetSeed + Cette clé permet de donner un nombre entier pour fixer la graine du + générateur aléatoire utilisé pour générer l'ensemble. Un valeur pratique est + par exemple 1000. Par défaut, la graine est laissée non initialisée, et elle + utilise ainsi l'initialisation par défaut de l'ordinateur. + + StoreInternalVariables + Cette clé booléenne permet de stocker les variables internes par défaut, + principalement l'état courant lors d'un processus itératif. Attention, cela + peut être un choix numériquement coûteux dans certains cas de calculs. La + valeur par défaut est "False". + + StoreSupplementaryCalculations + Cette liste indique les noms des variables supplémentaires qui peuvent être + disponibles à la fin de l'algorithme. Cela implique potentiellement des + calculs coûteux. La valeur par défaut est une liste vide, aucune de ces + variables n'étant calculée et stockée par défaut. Les noms possibles sont + dans la liste suivante : ["BMA", "OMA", "OMB", "Innovation"]. + +**"QuantileRegression"** + + *Commandes obligatoires* + *"Background", + "Observation", + "ObservationOperator"* + + Quantile + Cette clé permet de définir la valeur réelle du quantile recherché, entre 0 + et 1. La valeur par défaut est 0.5, correspondant à la médiane. + + Minimizer + Cette clé permet de choisir l'optimiseur pour l'optimisation. Le choix par + défaut et le seul disponible est "MMQR" (Majorize-Minimize for Quantile + Regression). + + MaximumNumberOfSteps + Cette clé indique le nombre maximum d'itérations possibles en optimisation + itérative. Le défaut est 15000, qui est très similaire à une absence de + limite sur les itérations. Il est ainsi recommandé d'adapter ce paramètre + aux besoins pour des problèmes réels. + + CostDecrementTolerance + Cette clé indique une valeur limite, conduisant à arrêter le processus + itératif d'optimisation lorsque la fonction coût décroît moins que cette + tolérance au dernier pas. Le défaut est de 1.e-6, et il est recommandé de + l'adapter aux besoins pour des problèmes réels. + + StoreInternalVariables + Cette clé booléenne permet de stocker les variables internes par défaut, + principalement l'état courant lors d'un processus itératif. Attention, cela + peut être un choix numériquement coûteux dans certains cas de calculs. La + valeur par défaut est "False". + + StoreSupplementaryCalculations + Cette liste indique les noms des variables supplémentaires qui peuvent être + disponibles à la fin de l'algorithme. Cela implique potentiellement des + calculs coûteux. La valeur par défaut est une liste vide, aucune de ces + variables n'étant calculée et stockée par défaut. Les noms possibles sont + dans la liste suivante : ["BMA", "OMA", "OMB", "Innovation"]. + +Description de référence pour les cas de vérification ADAO +---------------------------------------------------------- + +Liste des commandes et mots-clés pour un cas de vérification ADAO ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. index:: single: CHECKING_STUDY +.. index:: single: Algorithm +.. index:: single: AlgorithmParameters +.. index:: single: CheckingPoint +.. index:: single: Debug +.. index:: single: ObservationOperator +.. index:: single: Study_name +.. index:: single: Study_repertory +.. index:: single: UserDataInit + +Le second jeu de commandes est liée à la description d'un cas de vérification, +qui est une procédure pour vérifier les propriétés requises ailleurs sur +l'information par un cas de calcul. Les termes sont classés par ordre +alphabétique, sauf le premier, qui décrit le choix entre le calcul ou la +vérification. Les différentes commandes sont les suivantes: + +**CHECKING_STUDY** + *Commande obligatoire*. C'est la commande générale qui décrit le cas de + vérification. Elle contient hiérarchiquement toutes les autres commandes. + +**Algorithm** + *Commande obligatoire*. C'est une chaîne de caractère qui indique + l'algorithme de test choisi. Les choix sont limités et disponibles à travers + l'interface graphique. Il existe par exemple "FunctionTest", + "AdjointTest"... Voir plus loin la liste des algorithmes et des paramètres + associés dans la sous-section `Commandes optionnelles et requises pour les + algorithmes de vérification`_. + +**AlgorithmParameters** + *Commande optionnelle*. Elle permet d'ajouter des paramètres optionnels pour + contrôler l'algorithme d'assimilation de données ou d'optimisation. Sa + valeur est définie comme un objet de type "*Dict*". Voir plus loin la liste + des algorithmes et des paramètres associés dans la sous-section `Commandes + optionnelles et requises pour les algorithmes de vérification`_. + +**CheckingPoint** + *Commande obligatoire*. Elle définit le vecteur utilisé, noté précédemment + :math:`\mathbf{x}`. Sa valeur est définie comme un objet de type "*Vector*". + +**Debug** + *Commande obligatoire*. Elle définit le niveau de sorties et d'informations + intermédiaires de débogage. Les choix sont limités entre 0 (pour False) et + 1 (pour True). + +**ObservationOperator** + *Commande obligatoire*. Elle indique l'opérateur d'observation, notée + précédemment :math:`H`, qui transforme les paramètres d'entrée + :math:`\mathbf{x}` en résultats :math:`\mathbf{y}` qui sont à comparer aux + observations :math:`\mathbf{y}^o`. Sa valeur est définie comme un objet de + type "*Function*". Différentes formes fonctionnelles peuvent être utilisées, + comme décrit dans la sous-section suivante `Exigences pour les fonctions + décrivant un opérateur`_. Si un contrôle :math:`U` est inclus dans le modèle + d'observation, l'opérateur doit être appliqué à une paire :math:`(X,U)`. + +**Study_name** + *Commande obligatoire*. C'est une chaîne de caractères quelconque pour + décrire l'étude ADAO par un nom ou une déclaration. + +**Study_repertory** + *Commande optionnelle*. S'il existe, ce répertoire est utilisé comme base + pour les calculs, et il est utilisé pour trouver les fichiers de script, + donnés par nom sans répertoire, qui peuvent être utilisés pour définir + certaines variables. + +**UserDataInit** + *Commande optionnelle*. Elle permet d'initialiser certains paramètres ou + certaines données automatiquement avant le traitement de données d'entrée + pour l'assimilation de données ou l'optimisation. Pour cela, elle indique un + nom de fichier de script à exécuter avant d'entrer dans l'initialisation des + variables choisies. + +Commandes optionnelles et requises pour les algorithmes de vérification ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. index:: single: AdjointTest +.. index:: single: FunctionTest +.. index:: single: GradientTest +.. index:: single: LinearityTest + +.. index:: single: AlgorithmParameters +.. index:: single: AmplitudeOfInitialDirection +.. index:: single: EpsilonMinimumExponent +.. index:: single: InitialDirection +.. index:: single: ResiduFormula +.. index:: single: SetSeed + +On rappelle que chaque algorithme peut être contrôlé en utilisant des options +génériques ou particulières, données à travers la commande optionnelle +"*AlgorithmParameters*", à la manière de l'exemple qui suit dans un fichier:: + + AlgorithmParameters = { + "AmplitudeOfInitialDirection" : 1, + "EpsilonMinimumExponent" : -8, + } + +Si une option est spécifiée par l'utilisateur pour un algorithme qui ne la +supporte pas, cette option est simplement laissée inutilisée et ne bloque pas le +traitement. La signification des acronymes ou des noms particuliers peut être +trouvée dans l':ref:`genindex` ou dans le :ref:`section_glossary`. De plus, pour +chaque algorithme, les commandes/mots-clés sont donnés, décrits dans `Liste des +commandes et mots-clés pour un cas de vérification ADAO`_. + +**"AdjointTest"** + + *Commandes obligatoires* + *"CheckingPoint", + "ObservationOperator"* + + AmplitudeOfInitialDirection + Cette clé indique la mise à l'échelle de la perturbation initiale construite + comme un vecteur utilisé pour la dérivée directionnelle autour du point + nominal de vérification. La valeur par défaut est de 1, ce qui signifie pas + de mise à l'échelle. + + EpsilonMinimumExponent + Cette clé indique la valeur de l'exposant minimal du coefficient en + puissance de 10 qui doit être utilisé pour faire décroître le multiplicateur + de l'incrément. La valeur par défaut est de -8, et elle doit être entre 0 et + -20. Par exemple, la valeur par défaut conduit à calculer le résidu de la + formule avec un incrément fixe multiplié par 1.e0 jusqu'à 1.e-8. + + InitialDirection + Cette clé indique la direction vectorielle utilisée pour la dérivée + directionnelle autour du point nominal de vérification. Cela doit être un + vecteur. Si elle n'est pas spécifiée, la direction par défaut est une + perturbation par défaut autour de zéro de la même taille vectorielle que le + point de vérification. + + SetSeed + Cette clé permet de donner un nombre entier pour fixer la graine du + générateur aléatoire utilisé pour générer l'ensemble. Un valeur pratique est + par exemple 1000. Par défaut, la graine est laissée non initialisée, et elle + utilise ainsi l'initialisation par défaut de l'ordinateur. + +**"FunctionTest"** + + *Commandes obligatoires* + *"CheckingPoint", + "ObservationOperator"* + + NumberOfPrintedDigits + Cette clé indique le nombre de décimales de précision pour les affichages de + valeurs réelles. La valeur par défaut est de 5, avec un minimum de 0. + + NumberOfRepetition + Cette clé indique le nombre de fois où répéter l'évaluation de la fonction. + La valeur vaut 1. + + SetDebug + Cette clé requiert l'activation, ou pas, du mode de débogage durant + l'évaluation de la fonction. La valeur par défaut est "True", les choix sont + "True" ou "False". + +**"GradientTest"** + + *Commandes obligatoires* + *"CheckingPoint", + "ObservationOperator"* + + AmplitudeOfInitialDirection + Cette clé indique la mise à l'échelle de la perturbation initiale construite + comme un vecteur utilisé pour la dérivée directionnelle autour du point + nominal de vérification. La valeur par défaut est de 1, ce qui signifie pas + de mise à l'échelle. + + EpsilonMinimumExponent + Cette clé indique la valeur de l'exposant minimal du coefficient en + puissance de 10 qui doit être utilisé pour faire décroître le multiplicateur + de l'incrément. La valeur par défaut est de -8, et elle doit être entre 0 et + -20. Par exemple, la valeur par défaut conduit à calculer le résidu de la + formule avec un incrément fixe multiplié par 1.e0 jusqu'à 1.e-8. + + InitialDirection + Cette clé indique la direction vectorielle utilisée pour la dérivée + directionnelle autour du point nominal de vérification. Cela doit être un + vecteur. Si elle n'est pas spécifiée, la direction par défaut est une + perturbation par défaut autour de zéro de la même taille vectorielle que le + point de vérification. + + ResiduFormula + Cette clé indique la formule de résidu qui doit être utilisée pour le test. + Le choix par défaut est "Taylor", et les choix possibles sont "Taylor" + (résidu du développement de Taylor de l'opérateur, qui doit décroître comme + le carré de la perturbation) et "Norm" (résidu obtenu en prenant la norme du + développement de Taylor à l'ordre 0, qui approxime le gradient, et qui doit + rester constant). + + SetSeed + Cette clé permet de donner un nombre entier pour fixer la graine du + générateur aléatoire utilisé pour générer l'ensemble. Un valeur pratique est + par exemple 1000. Par défaut, la graine est laissée non initialisée, et elle + utilise ainsi l'initialisation par défaut de l'ordinateur. + +**"LinearityTest"** + + *Commandes obligatoires* + *"CheckingPoint", + "ObservationOperator"* + + AmplitudeOfInitialDirection + Cette clé indique la mise à l'échelle de la perturbation initiale construite + comme un vecteur utilisé pour la dérivée directionnelle autour du point + nominal de vérification. La valeur par défaut est de 1, ce qui signifie pas + de mise à l'échelle. + + EpsilonMinimumExponent + Cette clé indique la valeur de l'exposant minimal du coefficient en + puissance de 10 qui doit être utilisé pour faire décroître le multiplicateur + de l'incrément. La valeur par défaut est de -8, et elle doit être entre 0 et + -20. Par exemple, la valeur par défaut conduit à calculer le résidu de la + formule avec un incrément fixe multiplié par 1.e0 jusqu'à 1.e-8. + + InitialDirection + Cette clé indique la direction vectorielle utilisée pour la dérivée + directionnelle autour du point nominal de vérification. Cela doit être un + vecteur. Si elle n'est pas spécifiée, la direction par défaut est une + perturbation par défaut autour de zero de la même taille vectorielle que le + point de vérification. + + ResiduFormula + Cette clé indique la formule de résidu qui doit être utilisée pour le test. + Le choix par défaut est "CenteredDL", et les choix possibles sont + "CenteredDL" (résidu de la différence entre la fonction au point nominal et + ses valeurs avec des incréments positif et négatif, qui doit rester très + faible), "Taylor" (résidu du développement de Taylor de l'opérateur + normalisé par sa valeur nominal, qui doit rester très faible), + "NominalTaylor" (résidu de l'approximation à l'ordre 1 de l'opérateur, + normalisé au point nominal, qui doit rester proche de 1), et + "NominalTaylorRMS" (résidu de l'approximation à l'ordre 1 de l'opérateur, + normalisé par l'écart quadratique moyen (RMS) au point nominal, qui doit + rester proche de 0). + + SetSeed + Cette clé permet de donner un nombre entier pour fixer la graine du + générateur aléatoire utilisé pour générer l'ensemble. Un valeur pratique est + par exemple 1000. Par défaut, la graine est laissée non initialisée, et elle + utilise ainsi l'initialisation par défaut de l'ordinateur. + +Exigences pour les fonctions décrivant un opérateur +--------------------------------------------------- + +Les opérateurs d'observation et d'évolution sont nécessaires pour mettre en +oeuvre les procédures d'assimilation de données ou d'optimisation. Ils +comprennent la simulation physique par des calculs numériques, mais aussi le +filtrage et de restriction pour comparer la simulation à l'observation. +L'opérateur d'évolution est ici considéré dans sa forme incrémentale, qui +représente la transition entre deux états successifs, et il est alors similaire +à l'opérateur d'observation. + +Schématiquement, un opérateur doit donner une solution étant donné les +paramètres d'entrée. Une partie des paramètres d'entrée peut être modifiée au +cours de la procédure d'optimisation. Ainsi, la représentation mathématique d'un +tel processus est une fonction. Il a été brièvement décrit dans la section +:ref:`section_theory` et il est généralisée ici par la relation: + +.. math:: \mathbf{y} = O( \mathbf{x} ) + +entre les pseudo-observations :math:`\mathbf{y}` et les paramètres +:math:`\mathbf{x}` en utilisant l'opérateur d'observation ou d'évolution +:math:`O`. La même représentation fonctionnelle peut être utilisée pour le +modèle linéaire tangent :math:`\mathbf{O}` de :math:`O` et son adjoint +:math:`\mathbf{O}^*`, qui sont aussi requis par certains algorithmes +d'assimilation de données ou d'optimisation. + + +Ensuite, **pour décrire complètement un opérateur, l'utilisateur n'a qu'à +fournir une fonction qui réalise uniquement l'opération fonctionnelle de manière +complète**. + +Cette fonction est généralement donnée comme un script qui peut être exécuté +dans un noeud YACS. Ce script peut aussi, sans différences, lancer des codes +externes ou utiliser des appels et des méthodes internes SALOME. Si l'algorithme +nécessite les 3 aspects de l'opérateur (forme directe, forme tangente et forme +adjointe), l'utilisateur doit donner les 3 fonctions ou les approximer. + +Il existe 3 méthodes effectives pour l'utilisateur de fournir une représentation +fonctionnelle de l'opérateur. Ces méthodes sont choisies dans le champ "*FROM*" +de chaque opérateur ayant une valeur "*Function*" comme "*INPUT_TYPE*", comme le +montre la figure suivante: + + .. eficas_operator_function: + .. image:: images/eficas_operator_function.png + :align: center + :width: 100% + .. centered:: + **Choisir une représentation fonctionnelle de l'opérateur** + +Première forme fonctionnelle : utiliser "*ScriptWithOneFunction*" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. index:: single: ScriptWithOneFunction +.. index:: single: DirectOperator +.. index:: single: DifferentialIncrement +.. index:: single: CenteredFiniteDifference + +La première consiste à ne fournir qu'une seule fonction potentiellement non +linéaire, et d'approximer les opérateurs tangent et adjoint. Ceci est fait en +utilisant le mot-clé "*ScriptWithOneFunction*" pour la description de +l'opérateur choisi dans l'interface graphique ADAO. L'utilisateur doit fournir +la fonction dans un script, avec un nom obligatoire "*DirectOperator*". Par +exemple, le script peut suivre le modèle suivant:: + + def DirectOperator( X ): + """ Direct non-linear simulation operator """ + ... + ... + ... + return Y=O(X) + +Dans ce cas, l'utilisateur doit aussi fournir une valeur pour l'incrément +différentiel (ou conserver la valeur par défaut), en utilisant dans l'interface +graphique (GUI) le mot-clé "*DifferentialIncrement*", qui a une valeur par +défaut de 1%. Ce coefficient est utilisé dans l'approximation différences finies +pour construire les opérateurs tangent et adjoint. L'ordre de l'approximation +différences finies peut aussi être choisi à travers l'interface, en utilisant le +mot-clé "*CenteredFiniteDifference*", avec 0 pour un schéma non centré du +premier ordre (qui est la valeur par défaut), et avec 1 pour un schéma centré du +second ordre (qui coûte numériquement deux fois plus cher que le premier ordre). + +Cette première forme de définition de l'opérateur permet aisément de tester la +forme fonctionnelle avant son usage dans un cas ADAO, réduisant notablement la +complexité de l'implémentation de l'opérateur. + +**Avertissement important :** le nom "*DirectOperator*" est obligatoire, et le +type de l'argument X peut être une liste, un vecteur ou une matrice Numpy 1D. +L'utilisateur doit traiter ces cas dans sa fonction. + +Seconde forme fonctionnelle : utiliser "*ScriptWithFunctions*" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. index:: single: ScriptWithFunctions +.. index:: single: DirectOperator +.. index:: single: TangentOperator +.. index:: single: AdjointOperator + +**En général, il est recommandé d'utiliser la première forme fonctionnelle +plutôt que la seconde. Un petit accroissement de performances n'est pas une +bonne raison pour utiliser l'implémentation détaillée de cette seconde forme +fonctionnelle.** + +La seconde consiste à fournir directement les trois opérateurs liés :math:`O`, +:math:`\mathbf{O}` et :math:`\mathbf{O}^*`. C'est effectué en utilisant le +mot-clé "*ScriptWithFunctions*" pour la description de l'opérateur choisi dans +l'interface graphique (GUI) d'ADAO. L'utilisateur doit fournir trois fonctions +dans un script, avec trois noms obligatoires "*DirectOperator*", +"*TangentOperator*" et "*AdjointOperator*". Par exemple, le script peut suivre +le squelette suivant:: + + def DirectOperator( X ): + """ Direct non-linear simulation operator """ + ... + ... + ... + return something like Y + + def TangentOperator( (X, dX) ): + """ Tangent linear operator, around X, applied to dX """ + ... + ... + ... + return something like Y + + def AdjointOperator( (X, Y) ): + """ Adjoint operator, around X, applied to Y """ + ... + ... + ... + return something like X + +Un nouvelle fois, cette seconde définition d'opérateur permet aisément de tester +les formes fonctionnelles avant de les utiliser dans le cas ADAO, réduisant la +complexité de l'implémentation de l'opérateur. + +Pour certains algorithmes, il faut que les fonctions tangente et adjointe puisse +renvoyer les matrices équivalentes à l'opérateur linéaire. Dans ce cas, lorsque, +respectivement, les arguments ``dX`` ou ``Y`` valent ``None``, l'utilisateur +doit renvoyer la matrice associée. + +**Avertissement important :** les noms "*DirectOperator*", "*TangentOperator*" +et "*AdjointOperator*" sont obligatoires, et le type des arguments ``X``, Y``, +``dX`` peut être une liste, un vecteur ou une matrice Numpy 1D. L'utilisateur +doit traiter ces cas dans ses fonctions. + +Troisième forme fonctionnelle : utiliser "*ScriptWithSwitch*" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. index:: single: ScriptWithSwitch +.. index:: single: DirectOperator +.. index:: single: TangentOperator +.. index:: single: AdjointOperator + +**Il est recommandé de ne pas utiliser cette troisième forme fonctionnelle sans +une solide raison numérique ou physique. Un accroissement de performances n'est +pas une bonne raison pour utiliser la complexité de cette troisième forme +fonctionnelle. Seule une impossibilité à utiliser les première ou seconde formes +justifie l'usage de la troisième.** + +La troisième forme donne de plus grandes possibilités de contrôle de l'exécution +des trois fonctions représentant l'opérateur, permettant un usage et un contrôle +avancés sur chaque exécution du code de simulation. C'est réalisable en +utilisant le mot-clé "*ScriptWithSwitch*" pour la description de l'opérateur à +travers l'interface graphique (GUI) d'ADAO. L'utilisateur doit fournir un script +unique aiguillant, selon un contrôle, l'exécution des formes directe, tangente +et adjointe du code de simulation. L'utilisateur peut alors, par exemple, +utiliser des approximations pour les codes tangent et adjoint, ou introduire une +plus grande complexité du traitement des arguments des fonctions. Mais cette +démarche sera plus difficile à implémenter et à déboguer. + +Toutefois, si vous souhaitez utiliser cette troisième forme, on recommande de se +baser sur le modèle suivant pour le script d'aiguillage. Il nécessite un fichier +script ou un code externe nommé ici "*Physical_simulation_functions.py*", +contenant trois fonctions nommées "*DirectOperator*", "*TangentOperator*" and +"*AdjointOperator*" comme précédemment. Voici le squelette d'aiguillage:: + + import Physical_simulation_functions + import numpy, logging + # + method = "" + for param in computation["specificParameters"]: + if param["name"] == "method": + method = param["value"] + if method not in ["Direct", "Tangent", "Adjoint"]: + raise ValueError("No valid computation method is given") + logging.info("Found method is \'%s\'"%method) + # + logging.info("Loading operator functions") + Function = Physical_simulation_functions.DirectOperator + Tangent = Physical_simulation_functions.TangentOperator + Adjoint = Physical_simulation_functions.AdjointOperator + # + logging.info("Executing the possible computations") + data = [] + if method == "Direct": + logging.info("Direct computation") + Xcurrent = computation["inputValues"][0][0][0] + data = Function(numpy.matrix( Xcurrent ).T) + if method == "Tangent": + logging.info("Tangent computation") + Xcurrent = computation["inputValues"][0][0][0] + dXcurrent = computation["inputValues"][0][0][1] + data = Tangent(numpy.matrix(Xcurrent).T, numpy.matrix(dXcurrent).T) + if method == "Adjoint": + logging.info("Adjoint computation") + Xcurrent = computation["inputValues"][0][0][0] + Ycurrent = computation["inputValues"][0][0][1] + data = Adjoint((numpy.matrix(Xcurrent).T, numpy.matrix(Ycurrent).T)) + # + logging.info("Formatting the output") + it = numpy.ravel(data) + outputValues = [[[[]]]] + for val in it: + outputValues[0][0][0].append(val) + # + result = {} + result["outputValues"] = outputValues + result["specificOutputInfos"] = [] + result["returnCode"] = 0 + result["errorMessage"] = "" + +Toutes les modifications envisageables peuvent être faites à partir de cette +hypothèse de squelette. + +Cas spécial d'un opérateur d'évolution avec contrôle +++++++++++++++++++++++++++++++++++++++++++++++++++++ + +Dans certains cas, l'opérateur d'évolution ou d'observation doit être contrôlé +par un contrôle d'entrée externe, qui est donné *a priori*. Dans ce cas, la +forme générique du modèle incrémental est légèrement modifié comme suit: + +.. math:: \mathbf{y} = O( \mathbf{x}, \mathbf{u}) + +où :math:`\mathbf{u}` est le contrôle sur l'incrément d'état. Dans ce cas, +l'opérateur direct doit être appliqué à une paire de variables :math:`(X,U)`. +Schématiquement, l'opérateur doit être constuit comme suit:: + + def DirectOperator( (X, U) ): + """ Direct non-linear simulation operator """ + ... + ... + ... + return something like X(n+1) or Y(n+1) + +Les opérateurs tangent et adjoint ont la même signature que précédemment, en +notant que les dérivées doivent être faites seulement partiellement par rapport +à :math:`\mathbf{x}`. Dans un tel cas de contrôle explicite, seule la deuxième +forme fonctionnelle (en utilisant "*ScriptWithFunctions*") et la troisième forme +fonctionnelle (en utilisant "*ScriptWithSwitch*") peuvent être utilisées. + +Exigences pour décrire les matrices de covariance +------------------------------------------------- + +De multiples matrices de covariance sont nécessaires pour mettre en oeuvre des +procédures d'assimilation des données ou d'optimisation. Les principales sont la +matrice de covariance des erreurs d'ébauche, notée :math:`\mathbf{B}`, et la +matrice de covariance des erreurs d'observation, notée :math:`\mathbf{R}`. Une +telle matrice doit être une matrice carré symétrique semi-définie positive. + +Il y a 3 méthodes pratiques pour l'utilisateur pour fournir une matrice de +covariance. Ces méthodes sont choisies à l'aide du mot-clé "*INPUT_TYPE*" de +chaque matrice de covariance, comme montré dans la figure qui suit : + + .. eficas_covariance_matrix: + .. image:: images/eficas_covariance_matrix.png + :align: center + :width: 100% + .. centered:: + **Choisir la représentation d'une matrice de covariance** + +Première forme matricielle : utiliser la représentation "*Matrix*" +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. index:: single: Matrix +.. index:: single: BackgroundError +.. index:: single: EvolutionError +.. index:: single: ObservationError + +La première forme est le défaut et la plus générale. La matrice de covariance +:math:`\mathbf{M}` doit être entièrement spécifiée. Même si la matrice est +symétrique par nature, la totalité de la matrice :math:`\mathbf{M}` doit être +donnée. + +.. math:: \mathbf{M} = \begin{pmatrix} + m_{11} & m_{12} & \cdots & m_{1n} \\ + m_{21} & m_{22} & \cdots & m_{2n} \\ + \vdots & \vdots & \vdots & \vdots \\ + m_{n1} & \cdots & m_{nn-1} & m_{nn} + \end{pmatrix} + + +Cela peut être réalisé soit par un vecteur ou une matrice Numpy, soit par une +liste de listes de valeurs (c'est-à-dire une liste de lignes). Par exemple, une +matrice simple diagonale unitaire de covariances des erreurs d'ébauche +:math:`\mathbf{B}` peut être décrite dans un fichier de script Python par:: + + BackgroundError = [[1, 0 ... 0], [0, 1 ... 0] ... [0, 0 ... 1]] + +ou:: + + BackgroundError = numpy.eye(...) + +Seconde forme matricielle : utiliser la représentation "*ScalarSparseMatrix*" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. index:: single: ScalarSparseMatrix +.. index:: single: BackgroundError +.. index:: single: EvolutionError +.. index:: single: ObservationError + +Au contraire, la seconde forme matricielle est une méthode très simplifiée pour +définir une matrice. La matrice de covariance :math:`\mathbf{M}` est supposée +être un multiple positif de la matrice identité. Cette matrice peut alors être +spécifiée uniquement par le multiplicateur :math:`m`: + +.. math:: \mathbf{M} = m \times \begin{pmatrix} + 1 & 0 & \cdots & 0 \\ + 0 & 1 & \cdots & 0 \\ + \vdots & \vdots & \vdots & \vdots \\ + 0 & \cdots & 0 & 1 + \end{pmatrix} + +Le multiplicateur :math:`m` doit être un nombre réel ou entier positif (s'il est +négatif, ce qui est impossible, il est convertit en nombre positif). Par +exemple, une matrice simple diagonale unitaire de covariances des erreurs +d'ébauche :math:`\mathbf{B}` peut être décrite dans un fichier de script Python +par:: + + BackgroundError = 1. + +ou, mieux, par un "*String*" directement dans le cas ADAO. + +Troisième forme matricielle : utiliser la représentation "*DiagonalSparseMatrix*" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + +.. index:: single: DiagonalSparseMatrix +.. index:: single: BackgroundError +.. index:: single: EvolutionError +.. index:: single: ObservationError + +La troisième forme est aussi une méthode simplifiée pour fournir la matrice, +mais un peu plus puissante que la seconde. La matrice de covariance +:math:`\mathbf{M}` est toujours considérée comme diagonale, mais l'utilisateur +doit spécifier toutes les valeurs positives situées sur la diagonale. La matrice +peut alors être définie uniquement par un vecteur :math:`\mathbf{V}` qui se +retrouve ensuite sur la diagonale: + +.. math:: \mathbf{M} = \begin{pmatrix} + v_{1} & 0 & \cdots & 0 \\ + 0 & v_{2} & \cdots & 0 \\ + \vdots & \vdots & \vdots & \vdots \\ + 0 & \cdots & 0 & v_{n} + \end{pmatrix} + +Cela peut être réalisé soit par vecteur ou une matrice Numpy, soit par +une liste, soit par une liste de listes de valeurs positives (dans tous les cas, +si certaines valeurs sont négatives, elles sont converties en valeurs +positives). Par exemple, un matrice simple diagonale unitaire des covariances +des erreurs d'ébauche :math:`\mathbf{B}` peut être décrite dans un fichier de +script Python par:: + + BackgroundError = [1, 1 ... 1] + +ou:: + + BackgroundError = numpy.ones(...) diff --git a/doc/fr/resources/ADAO.png b/doc/fr/resources/ADAO.png new file mode 100644 index 0000000000000000000000000000000000000000..6b465d7e9092398da5d82377a68c8843d0e41844 GIT binary patch literal 5479 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 literal 0 HcmV?d00001 diff --git a/doc/fr/resources/ADAO_small_rouge.png b/doc/fr/resources/ADAO_small_rouge.png new file mode 100644 index 0000000000000000000000000000000000000000..b600e06a5ff9a35a68db887fca80ae382ecaaa1f GIT binary patch literal 645 zcmV;00($+4P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00I9100I92Ixr!b00007bV*G`2ipP| z2_GU%s~)KU00IR`L_t(I%Z<|8YtL~Q2k_VTxBYBIyK#Y>o3qUpyC5QlxNy2~Ar~%) zXzd?xxOSr?IbFICDG8IDGLg2B#*LDVmcs>Wk+jp};`dp8`?b|R_4M?4-iPn=Jl{_i z!~>kc4D7%bW1n}piq6Cp#3^DPkr9Z^#4jR>qKDX%IC-Lys3Hs!JBiE0M`Bwt* zCYC1ANurmiB^n5Cli*w;4-gwt?MdpSj+jQACZ-cpQYVLr@|S706)BhD1RmodZlt-} z@EdFJJw*dF5jmoh_?qHf>Y$k@Ck~YC<3hqai1Jq$!rYQ==P?-rI9P(UVve&!}tDCIM1iiRy)dUN9no9gx(^9 zmMY%lM{@sEGiwXqh6@XD2Zv~DW#x||gD*>XF|Xun^VzkJTl29WEm&NDx?dKaeh&Ij zQIDGc+P7uYY^LHT12Y*qj*24lPlc3&M^!ZLrFJ_VX^i$+H2lCOwzhKb=6`Jjxz9xg zU5l7Ao7HQ1QC;}S{TcZt^fGsl&fCfOIp>eCx;q&Rpge6l%NVMo?=Jblk?UCanoB#F zu#Y1xEbL3b{Ym2eV-X)kG>fN`#Q9^QBRBH-jup->7x6^IvO-~qXq;Ne<1)BbFQRf} f@mV%LaS;CivPK(m^@j@B00000NkvXXu0mjfDV8F+ literal 0 HcmV?d00001 diff --git a/doc/fr/resources/ADAO_small_vert.png b/doc/fr/resources/ADAO_small_vert.png new file mode 100644 index 0000000000000000000000000000000000000000..765f713c4b3f1707ecb4a84965641e9e47bb1f15 GIT binary patch literal 896 zcmV-`1AqL9P)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L00I9100I92Ixr!b00007bV*G`2ipP| z2^S;tb)+`{00RI?L_t(I%Z-xVYZPY`#((eZWU^mw+)c*prkN&g(*)O#SQ?8-#F`R9 zC6Hb;6hx{Zl-`IaRuKFL)JyNAP@%OKMFkOx))3J&rBRe5t(8PKQL>ud%}O>i&YHNH z%=BV4aTLLGdCqx$@5}QX(L2@aWCyY&&m{51eAIN+5Zw{wU8Rrfq%Nf>OckiO**q%NfpvOstQ>Haj5V>>*(^_0ZH1Um?Y7~=-v<}gxzG!H;{Qy2i@5hM;K0LcEC zcBvde8D3zV>ev*Zxp9e2%UM`rQ(JcK?DAvb>4i22BLXC+`w z+Zw#8mrz59NOQzBuIsHs`$|K21afV6?K?An{N`9-aZdF;&45JtSLweP;7wxwe zo!coYh9_J-8JlnUhXeWm^NM!`U|gHRyf^Dwu6{m8#|L>{ + + + + + + + + + + + + + image/svg+xml + + + + + + + DA + + DA + + DA + D A + + + diff --git a/doc/fr/theory.rst b/doc/fr/theory.rst new file mode 100644 index 0000000..2683cf8 --- /dev/null +++ b/doc/fr/theory.rst @@ -0,0 +1,314 @@ +.. _section_theory: + +================================================================================ +Une brève introduction à l'Assimilation de Données et à l'Optimisation +================================================================================ + +.. index:: single: Data Assimilation +.. index:: single: Assimilation de données +.. index:: single: état vrai +.. index:: single: observation +.. index:: single: a priori + +L'**assimilation de données** est un cadre général pour le calcul de +l'estimation optimale de l'état réel d'un système, au cours du temps si +nécessaire. Il utilise les valeurs obtenues en combinant des observations et des +modèles *a priori*, incluant de plus des informations sur leurs erreurs. + +En d'autres termes, l'assimilation de données rassemble les données mesurées +d'un système, qui sont les observations, avec une connaissance physique et +mathématique *a priori* du système, intégrée dans les modèles numériques, afin +d'obtenir la meilleure estimation possible de l'état réel du système et de ses +propriétés stochastiques. On note que cet état réel (ou "état" vrai") ne peut +être atteint, mais peut seulement être estimé. De plus, malgré le fait que les +informations utilisées sont stochastiques par nature, l'assimilation de données +fournit des techniques déterministes afin de réaliser l'estimation de manière +très efficace. + +L'assimilation de données cherchant l'estimation la **meilleure possible**, la +démarche technique sous-jacente intègre toujours de l'optimisation afin de +trouver cette estimation : des méthodes d'optimisation choisies sont toujours +intégrés dans les algorithmes d'assimilation de données. Par ailleurs, les +méthodes d'optimisation peuvent être vues dans ADAO comme un moyen d'étendre les +applications d'assimilation de données. Elles seront présentées de cette façon +dans la section pour `Approfondir l'estimation d'état par des méthodes +d'optimisation`_, mais elles sont beaucoup plus générale et peuvent être +utilisés sans les concepts d'assimilation de données. + +Deux types principaux d'applications existent en l'assimilation des données, qui +sont couvert par le même formalisme : l'**identification de paramètres** et la +**reconstruction de champs**. Avant d'introduire la `Description simple du cadre +méthodologique de l'assimilation de données`_ dans une prochaine section, nous +décrivons brièvement ces deux types d'applications. A la fin de ce chapitre, +quelques références permettent d'`Approfondir le cadre méthodologique de +l'assimilation de données`_ et d'`Approfondir l'estimation d'état par des +méthodes d'optimisation`_. + +Reconstruction de champs ou interpolation de données +---------------------------------------------------- + +.. index:: single: reconstruction de champs +.. index:: single: interpolation de données + +La reconstruction de champs consiste à trouver, à partir d'un nombre restreint +de mesures réelles, le champs physique qui est le plus *consistant* avec ces +mesures. + +La consistance est à comprendre en termes d'interpolation, c'est-à-dire que le +champ que l'on cherche à reconstruire, en utilisant de l'assimilation de données +sur les mesures, doit s'adapter au mieux aux mesures, tout en restant contraint +par la simulation globale du champ. Le champ calculé est donc une estimation *a +priori* du champ que l'on cherche à identifier. + +Si le système évolue dans le temps, la reconstruction doit être établie à chaque +pas de temps, du champ dans son ensemble. Le processus d'interpolation est dans +ce cas plus compliqué car il est temporel, et plus seulement en termes de +valeurs instantanées du champ. + +Un exemple simple de reconstruction de champs provient de la météorologie, dans +laquelle on recherche les valeurs de variables comme la température ou la +pression en tout point du domaine spatial. On dispose de mesures instantanées de +ces quantités en certains points, mais aussi d'un historique de ces mesures. De +plus, ces variables sont contraintes par les équations d'évolution de +l'atmosphère, qui indiquent par exemple que la pression en un point ne peut pas +prendre une valeur quelconque indépendamment de la valeur au même point à un +temps précédent. On doit donc faire la reconstruction d'un champ en tout point +de l'espace, de manière "consistante" avec les équations d'évolution et avec les +mesures aux précédents pas de temps. + +Identification de paramètres, ajustement de modèles, calibration +---------------------------------------------------------------- + +.. index:: single: identification de paramètres +.. index:: single: ajustement de modèles +.. index:: single: calibration +.. index:: single: ébauche +.. index:: single: régularisation + +L'identification de paramètres par assimilation de données est une forme de +calibration d'état qui utilise simultanément les mesures physiques et une +estimation *a priori* des paramètres (appelée l'"*ébauche*") d'état que l'on +cherche à identifier, ainsi qu'une caractérisation de leurs erreurs. De ce point +de vue, cette démarche utilise toutes les informations disponibles sur le +système physique (même si les hypothèses sur les erreurs sont relativement +restrictives) pour trouver l'"*estimation optimale*" de l'état vrai. On peut +noter, en termes d'optimisation, que l'ébauche réalise la régularisation +mathématique du problème principal d'identification de paramètres. + +En pratique, les deux incrément observés "*calculs-ébauche*" et +"*calculs-mesures*" sont combinés pour construire la correction de calibration +des paramètres ou des conditions initiales. L'ajout de ces deux incréments +requiert une pondération relative, qui est choisie pour refléter la confiance +que l'on donne à chaque information utilisée. Cette confiance est représentée +par la covariance des erreurs sur l'ébauche et sur les observations. Ainsi +l'aspect stochastique des informations, mesuré *a priori*, est essentiel pour +construire une fonction d'erreur pour la calibration. + +Un exemple simple d'identification de paramètres provient de tout type de +simulation physique impliquant un modèle paramétré. Par exemple, une simulation +de mécanique statique d'une poutre contrainte par des forces est décrite par les +paramètres de la poutre, comme un coefficient de Young, ou par l'intensité des +forces appliquées. Le problème d'estimation de paramètres consiste à chercher +par exemple la bonne valeur du coefficient de Young de telle manière à ce que la +simulation de la poutre corresponde aux mesures, en y incluant la connaissance +des erreurs. + +Description simple du cadre méthodologique de l'assimilation de données +----------------------------------------------------------------------- + +.. index:: single: ébauche +.. index:: single: covariances d'erreurs d'ébauche +.. index:: single: covariances d'erreurs d'observation +.. index:: single: covariances + +On peut décrire ces démarches de manière simple. Par défaut, toutes les +variables sont des vecteurs, puisqu'il y a plusieurs paramètres à ajuster. + +Selon les notations standard en assimilation de données, on note +:math:`\mathbf{x}^a` les paramètres optimaux qui doivent être déterminés par +calibration, :math:`\mathbf{y}^o` les observations (ou les mesures +expérimentales) auxquelles on doit comparer les sorties de simulation, +:math:`\mathbf{x}^b` l'ébauche (valeurs *a priori*, ou valeurs de +régularisation) des paramètres cherchés, :math:`\mathbf{x}^t` les paramètres +inconnus idéaux qui donneraient exactement les observations (en supposant que +toutes les erreurs soient nulles et que le modèle soit exact) en sortie. + +Dans le cas le plus simple, qui est statique, les étapes de simulation et +d'observation peuvent être combinées en un unique opérateur d'observation noté +:math:`H` (linéaire ou non-linéaire). Il transforme les paramètres +:math:`\mathbf{x}` en entrée en résultats :math:`\mathbf{y}` qui peuvent être +directement comparés aux observations :math:`\mathbf{y}^o`. De plus, on utilise +l'opérateur linéarisé :math:`\mathbf{H}` pour représenter l'effet de l'opérateur +complet :math:`H` autour d'un point de linéarisation (et on omettra ensuite de +mentionner :math:`H` même si l'on peut le conserver). En réalité, on a déjà +indiqué que la nature stochastique des variables est essentielle, provenant du +fait que le modèle, l'ébauche et les observations sont tous incorrects. On +introduit donc des erreurs d'observations additives, sous la forme d'un vecteur +aléatoire :math:`\mathbf{\epsilon}^o` tel que : + +.. math:: \mathbf{y}^o = \mathbf{H} \mathbf{x}^t + \mathbf{\epsilon}^o + +Les erreurs représentées ici ne sont pas uniquement celles des observations, ce +sont aussi celles de la simulation. On peut toujours considérer que ces erreurs +sont de moyenne nulle. On peut alors définir une matrice :math:`\mathbf{R}` des +covariances d'erreurs d'observation par : + +.. math:: \mathbf{R} = E[\mathbf{\epsilon}^o.{\mathbf{\epsilon}^o}^T] + +L'ébauche peut aussi être écrite comme une fonction de la valeur vraie, en +introduisant le vecteur d'erreurs :math:`\mathbf{\epsilon}^b` tel que : + +.. math:: \mathbf{x}^b = \mathbf{x}^t + \mathbf{\epsilon}^b + +où les erreurs sont aussi supposées de moyenne nulle, de la même manière que +pour les observations. On définit la matrice :math:`\mathbf{B}` des covariances +d'erreurs d'ébauche par : + +.. math:: \mathbf{B} = E[\mathbf{\epsilon}^b.{\mathbf{\epsilon}^b}^T] + +L'estimation optimale des paramètres vrais :math:`\mathbf{x}^t`, étant donné +l'ébauche :math:`\mathbf{x}^b` et les observations :math:`\mathbf{y}^o`, est +ainsi l'"*analyse*" :math:`\mathbf{x}^a` et provient de la minimisation d'une +fonction d'erreur (en assimilation variationnelle) ou d'une correction de +filtrage (en assimilation par filtrage). + +En **assimilation variationnelle**, dans un cas statique, on cherche +classiquement à minimiser la fonction :math:`J` suivante : + +.. math:: J(\mathbf{x})=(\mathbf{x}-\mathbf{x}^b)^T.\mathbf{B}^{-1}.(\mathbf{x}-\mathbf{x}^b)+(\mathbf{y}^o-\mathbf{H}.\mathbf{x})^T.\mathbf{R}^{-1}.(\mathbf{y}^o-\mathbf{H}.\mathbf{x}) + +qui est usuellement désignée comme la fonctionnelle "*3D-VAR*". Comme les +matrices de covariance :math:`\mathbf{B}` et :math:`\mathbf{R}` sont +proportionnelles aux variances d'erreurs, leur présente dans les deux termes de +la fonctionnelle :math:`J` permet effectivement de pondérer les différences par +la confiance dans les erreurs d'ébauche ou d'observations. Le vecteur +:math:`\mathbf{x}` des paramètres réalisant le minimum de cette fonction +constitue ainsi l'analyse :math:`\mathbf{x}^a`. C'est à ce niveau que l'on doit +utiliser tout la panoplie des méthodes de minimisation de fonctions connues par +ailleurs en optimisation (voir aussi la section `Approfondir l'estimation d'état +par des méthodes d'optimisation`_). Selon la taille du vecteur +:math:`\mathbf{x}` des paramètres à identifier, et la disponibilité du gradient +ou de la hessienne de :math:`J`, il est judicieux d'adapter la méthode +d'optimisation choisie (gradient, Newton, quasi-Newton...). + +En **assimilation par filtrage**, dans ce cas simple usuellement dénommé +"*BLUE*" (pour "*Best Linear Unbiased Estimator*"), l'analyse +:math:`\mathbf{x}^a` est donnée comme une correction de l'ébauche +:math:`\mathbf{x}^b` par un terme proportionnel à la différence entre les +observations :math:`\mathbf{y}^o` et les calculs :math:`\mathbf{H}\mathbf{x}^b` : + +.. math:: \mathbf{x}^a = \mathbf{x}^b + \mathbf{K}(\mathbf{y}^o - \mathbf{H}\mathbf{x}^b) + +où :math:`\mathbf{K}` est la matrice de gain de Kalman, qui s'exprime à l'aide +des matrices de covariance sous la forme suivante : + +.. math:: \mathbf{K} = \mathbf{B}\mathbf{H}^T(\mathbf{H}\mathbf{B}\mathbf{H}^T+\mathbf{R})^{-1} + +L'avantage du filtrage est le calcul explicite du gain, pour produire ensuite la +matrice *a posteriori* de covariance d'analyse. + +Dans ce cas statique simple, on peut montrer, sous une hypothèse de +distributions gaussiennes d'erreurs, que les deux approches *variationnelle* et +*de filtrage* sont équivalentes. + +On indique que ces méthodes de "*3D-VAR*" et de "*BLUE*" peuvent être étendues à +des problèmes dynamiques, sous les noms respectifs de "*4D-VAR*" et de "*filtre +de Kalman*". Elles peuvent prendre en compte l'opérateur d'évolution pour +établir aux bons pas de temps une analyse de l'écart entre les observations et +les simulations et pour avoir, à chaque instant, la propagation de l'ébauche à +travers le modèle d'évolution. Un grand nombre de variantes ont été développées +pour accroître la qualité numérique des méthodes ou pour prendre en compte des +contraintes informatiques comme la taille ou la durée des calculs. + +Approfondir le cadre méthodologique de l'assimilation de données +---------------------------------------------------------------- + +.. index:: single: estimation d'état +.. index:: single: estimation de paramètres +.. index:: single: problèmes inverses +.. index:: single: estimation bayésienne +.. index:: single: interpolation optimale +.. index:: single: régularisation mathématique +.. index:: single: méthodes de régularisation +.. index:: single: méthodes de lissage + +Pour obtenir de plus amples informations sur les techniques d'assimilation de +données, le lecteur pour consulter les documents introductifs comme [Argaud09]_, +des supports de formations ou de cours comme [Bouttier99]_ et [Bocquet04]_ +(ainsi que d'autres documents issus des applications des géosciences), ou des +documents généraux comme [Talagrand97]_, [Tarantola87]_, [Kalnay03]_, [Ide97]_ +et [WikipediaDA]_. + +On note que l'assimilation de données n'est pas limitée à la météorologie ou aux +géo-sciences, mais est largement utilisée dans d'autres domaines scientifiques. +Il y a de nombreux champs d'applications scientifiques et technologiques dans +lesquels l'utilisation efficace des données observées, mais incomplètes, est +cruciale. + +Certains aspects de l'assimilation de données sont aussi connus sous les noms +d'*estimation d'état*, d'*estimation de paramètres*, de *problèmes inverses*, +d'*estimation bayésienne*, d'*interpolation optimale*, de *régularisation +mathématique*, de *lissage de données*, etc. Ces termes peuvent être utilisés +dans les recherches bibliographiques. + +Approfondir l'estimation d'état par des méthodes d'optimisation +--------------------------------------------------------------- + +.. index:: single: estimation d'état +.. index:: single: méthodes d'optimisation + +Comme vu précédemment, dans un cas de simulation statique, l'assimilation +variationnelle de données nécessite de minimiser la fonction objectif :math:`J`: + +.. math:: J(\mathbf{x})=(\mathbf{x}-\mathbf{x}^b)^T.\mathbf{B}^{-1}.(\mathbf{x}-\mathbf{x}^b)+(\mathbf{y}^o-\mathbf{H}.\mathbf{x})^T.\mathbf{R}^{-1}.(\mathbf{y}^o-\mathbf{H}.\mathbf{x}) + +qui est dénommée la fonctionnelle du "*3D-VAR*". Elle peut être vue comme la +forme étendue d'une *minimisation moindres carrés*, obtenue en ajoutant un terme +de régularisation utilisant :math:`\mathbf{x}-\mathbf{x}^b`, et en pondérant les +différences par les deux matrices de covariances :math:`\mathbf{B}` et +:math:`\mathbf{R}`. La minimisation de la fonctionnelle :math:`J` conduit à la +*meilleure* estimation de l'état `\mathbf{x}`. + +Les possibilités d'extension de cette estimation d'état, en utilisant de manière +plus explicite des méthodes d'optimisation et leurs propriétés, peuvent être +imaginées de deux manières. + +En premier lieu, les méthodes classiques d'optimisation impliquent l'usage de +méthodes de minimisation variées basées sur un gradient. Elles sont extrêmement +efficaces pour rechercher un minimum local isolé. Mais elles nécessitent que la +fonctionnelle :math:`J` soit suffisamment régulière et différentiable, et elles +ne sont pas en mesure de saisir des propriétés globales du problème de +minimisation, comme par exemple : minimum global, ensemble de solutions +équivalentes dues à une sur-paramétrisation, multiples minima locaux, etc. **Une +méthode pour étendre les possibilités d'estimation consiste donc à utiliser +l'ensemble des méthodes d'optimisation existantes, permettant la minimisation +globale, diverses propriétés de robustesse de la recherche, etc**. Il existe de +nombreuses méthodes de minimisation, comme les méthodes stochastiques, +évolutionnaires, les heuristiques et méta-heuristiques pour les problèmes à +valeurs réelles, etc. Elles peuvent traiter des fonctionnelles :math:`J` en +partie irrégulières ou bruitées, peuvent caractériser des minima locaux, etc. Le +principal désavantage de ces méthodes est un coût numérique souvent bien +supérieur pour trouver les estimations d'états, et pas de garantie de +convergence en temps fini. Ici, on ne mentionne que des méthodes qui sont +disponibles dans le module ADAO : la *régression de quantile (Quantile +Regression)* [WikipediaQR]_ and l'*optimisation par essaim de particules +(Particle Swarm Optimization)* [WikipediaPSO]_. + +En second lieu, les méthodes d'optimisation cherchent usuellement à minimiser +des mesures quadratiques d'erreurs, car les propriétés naturelles de ces +fonctions objectifs sont bien adaptées à l'optimisation classique par gradient. +Mais d'autres mesures d'erreurs peuvent être mieux adaptées aux problèmes de +simulation de la physique réelle. Ainsi, **une autre manière d'étendre les +possibilités d'estimation consiste à utiliser d'autres mesures d'erreurs à +réduire**. Par exemple, on peut citer l'**erreur absolue**, l'**erreur +maximale**, etc. Ces mesures d'erreurs ne sont pas différentiables, mais +certaines méthodes d'optimisation peuvent les traiter: heuristiques et +méta-heuristiques pour les problèmes à valeurs réelles, etc. Comme précédemment, +le principal désavantage de ces méthodes est un coût numérique souvent bien +supérieur pour trouver les estimations d'états, et pas de garantie de +convergence en temps fini. Ici, on ne mentionne encore que des méthodes qui sont +disponibles dans le module ADAO : l'*optimisation par essaim de particules +(Particle Swarm Optimization)* [WikipediaPSO]_. + +Le lecteur intéressé par le sujet de l'optimisation pourra utilement commencer +sa recherche grâce au point d'entrée [WikipediaMO]_. diff --git a/doc/fr/using.rst b/doc/fr/using.rst new file mode 100644 index 0000000..cc73884 --- /dev/null +++ b/doc/fr/using.rst @@ -0,0 +1,232 @@ +.. _section_using: + +================================================================================ +Utiliser le module ADAO +================================================================================ + +.. |eficas_new| image:: images/eficas_new.png + :align: middle + :scale: 50% +.. |eficas_save| image:: images/eficas_save.png + :align: middle + :scale: 50% +.. |eficas_saveas| image:: images/eficas_saveas.png + :align: middle + :scale: 50% +.. |eficas_yacs| image:: images/eficas_yacs.png + :align: middle + :scale: 50% +.. |yacs_compile| image:: images/yacs_compile.png + :align: middle + :scale: 50% + +Cette section présente l'usage du module ADAO dans la plateforme SALOME. Il est +complété par la description détaillée de l'ensemble des commandes et mots-clés +dans la section :ref:`section_reference`, par des procédures avancées d'usage +dans la section :ref:`section_advanced`, et par des exemples dans la section +:ref:`section_examples`. + +Procédure logique pour construire un cas ADAO +--------------------------------------------- + +La construction d'un cas ADAO suit une démarche simple pour définir l'ensemble +des données d'entrée, et ensuite générer un diagramme complet d'exécution +utilisé dans YACS. De nombreuses variations existent pour la définition des +données d'entrée, mais la séquence logique reste inchangée. + +De manière générale, l'utilisateur doit connaître ses données d'entrées, +requises pour mettre au point une étude d'assimilation de données. Ces données +peuvent être disponibles dans SALOME ou non. + +**Fondamentalement, la procédure d'utilisation de ADAO comprend les étapes +suivantes:** + +#. **Activez le module ADAO et utiliser l'éditeur graphique (GUI),** +#. **Construire et/ou modifier le cas ADAO et l'enregistrer,** +#. **Exporter le cas ADAO comme un schéma YACS,** +#. **Compléter et modifier le schéma YACS, et l'enregistrer,** +#. **Exécutez le cas YACS et obtenir les résultats.** + +Chaque étape est détaillée dans la section suivante. + +ÉTAPE 1 : Activer le module ADAO et utiliser l'interface graphique d'édition (GUI) +---------------------------------------------------------------------------------- + +Comme toujours pour un module, il doit être préalablement activé en +sélectionnant le bouton de module approprié (ou le menu) dans la barre d'outils +de SALOME. S'il n'existe aucune étude SALOME chargée, un menu contextuel +apparaît, permettant de choisir entre la création d'une nouvelle étude, ou +l'ouverture d'une étude déjà existante: + + .. _adao_activate1: + .. image:: images/adao_activate.png + :align: center + .. centered:: + **Activation du module ADAO dans SALOME** + +En choisissant le bouton "*Nouveau*", un éditeur intégré de cas EFICAS [#]_ sera +ouvert, en même temps que le "*navigateur d'objets*" standard. On peut alors +cliquer sur le bouton "*Nouveau*"(ou choisir l'entrée "*Nouveau*" dans le dans +le menu principal "*ADAO*") pour créer un nouveau cas ADAO, et on obtient : + + .. _adao_viewer: + .. image:: images/adao_viewer.png + :align: center + :width: 100% + .. centered:: + **L'éditeur EFICAS pour la définition des cas dans le module ADAO** + +ÉTAPE 2 : Créer et modifier le cas ADAO, et l'enregistrer +--------------------------------------------------------- + +Pour construire un cas en utilisant EFICAS, on doit passer par une série de +sous-étapes, en choisissant, à chaque étape, un mot-clé puis en remplissant ses +valeurs. + +L'éditeur structuré indique des types hiérarchiques, des valeurs ou des +mots-clés autorisés. Les mots-clés incomplets ou incorrects sont identifiés par +un indicateur d'erreur visuel rouge. Les valeurs possibles sont indiquées pour +les mots-clés par la définition d'une liste limitée de valeurs, et les entrées +adaptées sont données pour les autres mots-clés. Des messages d'aide sont +fournis de manière contextuelle aux places réservées de l'éditeur. + +Un nouveau cas est mis en place avec la liste minimale des commandes. Toutes les +commandes ou les mots-clés obligatoires sont déjà présents, aucun d'eux ne peut +être supprimé. Des mots-clés optionnels peuvent être ajoutés en les choisissant +dans une liste de suggestions de ceux autorisés pour la commande principale, par +exemple la commande "*ASSIMILATION_STUDY*". À titre d'exemple, on peut ajouter +un mot-clé "*AlgorithmParameters*", comme décrit dans la dernière partie de la +section :ref:`section_examples`. + +A la fin de ces actions, lorsque tous les champs ou les mots-clés ont été +correctement définis, chaque ligne de l'arborescence des commandes doit +présenter un drapeau vert. Cela signifie que l'ensemble du cas est valide et +dûment rempli (et qu'il peut être sauvegardé). + + .. _adao_jdcexample00: + .. image:: images/adao_jdcexample01.png + :align: center + :scale: 75% + .. centered:: + **Exemple d'un cas ADAO valide** + +Au final, il faut enregistrer le cas ADAO en utilisant le bouton "*Enregistrer*" +|eficas_save|, ou le bouton "*Enregistrer sous*" |eficas_saveas|, ou en +choisissant l'entrée "*Enregistrer/ Enregistrer sous*" dans le menu "*ADAO*". Il +est alors demandé un emplacement, à choisir dans l'arborescence des fichiers, et +un nom, qui sera complété par l'extension "*.comm*" utilisée pour les fichiers +JDC d'EFICAS. Cette action va générer une paire de fichiers décrivant le cas +ADAO, avec le même nom de base, le premier présentant une extension "*.comm*" et +le second une extension "*.py*" [#]_. + +ÉTAPE 3 : Exporter le cas ADAO comme un schéma YACS +--------------------------------------------------- + +Lorsque le cas ADAO est complété, il doit être converti ou exporté sous la forme +d'un schéma YACS [#]_ pour pouvoir exécuter le calcul d'assimilation de +données. Cela peut être réalisé facilement en utilisant le bouton "*Exporter +vers YACS*" |eficas_yacs|, ou de manière équivalente en choisissant l'entrée +"*Exporter vers YACS*" dans le menu principal "*ADAO*", ou dans le menu +contextuel du cas dans le navigateur d'objets SALOME. + + .. _adao_exporttoyacs01: + .. image:: images/adao_exporttoyacs.png + :align: center + :scale: 75% + .. centered:: + **Sous-menu "Exporter vers YACS" pour générer le schéma YACS à partir d'un cas ADAO** + +Cela conduit à générer automatiquement un schéma YACS, et à activer le module +YACS sur ce schéma. Le fichier YACS, associé au schéma, est stocké dans le même +répertoire et avec le même nom de base de fichier que le cas ADAO enregistré, +changeant simplement son extension en "*.xml*". Attention, *si le nom de fichier +XML existe déjà, le fichier est écrasé sans avertissement sur le remplacement du +fichier XML*. + +ÉTAPE 4 : Compléter et modifier le schéma YACS, et l'enregistrer +---------------------------------------------------------------- + +.. index:: single: Analysis + +Lorsque le schéma YACS est généré et ouvert dans SALOME à travers le l'interface +graphique du module YACS, on peut modifier ou compléter le schéma comme tout +schéma YACS standard. Des noeuds ou des blocs peuvent être ajoutés, copiés ou +modifiés pour élaborer une analyse complexe, ou pour insérer des capacités +d'assimilation de données ou d'optimisation dans des schémas de calculs YACS +plus complexes. + +Le principal complément nécessaire dans un schéma YACS est une étape de +post-processing. L'évaluation du résultat doit être réalisé dans le contexte +physique de simulation utilisé par la procédure d'assimilation de données. Le +post-processing peut être fournit à travers le mot-clé "*UserPostAnalysis*" +d'ADAO sous la forme d'un fichier de script ou d'une chaîne de caractères, par +des patrons ("templates"), ou peut être construit comme des noeuds YACS. Ces +deux manières de construire le post-processing peuvent utiliser toutes les +capacités de SALOME. + +Dans le détail, le schéma YACS dispose d'un port de sortie "*algoResults*" dans +le bloc de calcul, qui donne accès à un objet de type "*pyobj*" nommé ci-aprés +"*ADD*", qui contient tous les résultats de calcul. Ces résultats peuvent être +obtenus en récupérant les variables nommées stockées au cours des calculs. +L'information principale est la variable "*Analysis*", qui peut être obtenue par +une commande python (par exemple dans un noeud script intégré ("in-line script +node") ou un script fourni à travers le mot-clé "*UserPostAnalysis*":: + + Analysis = ADD.get("Analysis")[:] + +"*Analysis*" est un objet complexe, similaire à une liste de valeurs calculées à +chaque étape du calcul d'assimilation. Pour obtenir et afficher l'évaluation +optimale de l'état par assimilation de données, dans un script fournit par +l'intermédiaire du mot-clé "*UserPostAnalysis*", on peut utiliser:: + + Xa = ADD.get("Analysis")[-1] + print "Optimal state:", Xa + print + +Cette variable ``Xa`` est un vecteur de valeurs, qui représente la solution du +problème d'évaluation par assimilation de données ou par optimisation, notée +:math:`\mathbf{x}^a` dans la section :ref:`section_theory`. + +Une telle méthode peut être utilisée pour imprimer les résultats, ou pour les +convertir dans des structures qui peuvent être nécessaires à un post-processing +natif ou externe à SALOME. Un exemple simple est disponible dans la section +:ref:`section_examples`. + +ÉTAPE 5 : Exécuter le schéma YACS et obtenir les résultats +---------------------------------------------------------- + +Le schéma YACS est maintenant complet et peut être exécuté. La paramétrisation +et l'exécution de ce cas YACS est entièrement compatible avec la manière +standard de traiter un schéma YACS, comme décrit dans le *Guide de l'utilisateur +du module YACS*. + +Pour rappeler la manière la plus simple de procéder, le schéma YACS doit être +compilé en utilisant le bouton |yacs_compile|, ou l'entrée équivalente du menu +YACS, pour préparer le schéma à son exécution. Ensuite, le schéma compilé peut +être démarré, exécuté pas à pas ou en utilisant des points d'arrêt, etc. + +La sortie standard est restituée dans la "*fenêtre de sortie de YACS*" (ou +"*YACS Container Log*"), à laquelle on accède par un clic droit sur la fenêtre +"*proc*" dans l'interface graphique YACS. Les erreurs sont présentées soit +dans la "*fenêtre de sortie de YACS*", ou à la ligne de commande dans la fenêtre +de commandes (si l'environnement SALOME a été lancé par une commande explicite, +et non par un menu ou une icône de bureau). Par exemple, la sortie de l'exemple +simple ci-dessus est de la forme suivante:: + + Entering in the assimilation study + Name is set to........: Test + Algorithm is set to...: Blue + Launching the analyse + + Optimal state: [0.5, 0.5, 0.5] + +présentée dans la "*fenêtre de sortie de YACS*". + +L'exécution peut aussi être conduite en utilisant un script de commandes shell, +comme décrit dans la section :ref:`section_advanced`. + +.. [#] Pour de plus amples informations sur EFICAS, voir le *module EFICAS* et son aide disponible dans l'environnement SALOME. + +.. [#] Pour de plus amples informations sur YACS, voir le *Guide utilisateur du module YACS* disponible dans le menu principal *Aide* de l'environnement SALOME. + +.. [#] Ce fichier python intermédiaire peut aussi être utilisé comme décrit dans la section :ref:`section_advanced`. diff --git a/resources/SalomeApp.xml b/resources/SalomeApp.xml index 0fc539e..4b62768 100644 --- a/resources/SalomeApp.xml +++ b/resources/SalomeApp.xml @@ -34,6 +34,7 @@

- + +
-- 2.39.2