# ADAO documentation¶

**The ADAO module provides data assimilation and optimization** features in
Python [Python] or SALOME context [Salome].

Briefly stated, Data Assimilation is a methodological framework to compute the
optimal estimate of the inaccessible true value of a system state, eventually
over time. It uses information coming from experimental measurements or
observations, and from numerical *a priori* models, including information about
their errors. Parts of the framework are also known under the names of
*calibration*, *adjustment*, *state estimation*, *parameter estimation*,
*parameter adjustment*, *inverse problems*, *Bayesian estimation*, *optimal
interpolation*, *mathematical regularization*, *meta-heuristics for
optimization*, *model reduction*, *data smoothing*, etc. More details can be
found in the section [DocT] A brief introduction to Data Assimilation and Optimization. The ADAO module currently offers
more than one hundred different algorithmic methods and allows the study of
about 350 distinct applied problems.

The documentation for this module is divided into several major categories,
related to the theoretical documentation (indicated in the section title by
**[DocT]**), to the user documentation (indicated in the section title by
**[DocU]**), and to the reference documentation (indicated in the section title
by **[DocR]**).

The first part is the Introduction to ADAO. The second part introduces [DocT] A brief introduction to Data Assimilation and Optimization, and their concepts, and the next part describes the [DocT] Methodology to elaborate a Data Assimilation or Optimization study. For a standard user, the next parts describe examples on ADAO usage as [DocU] Tutorials on using the ADAO module in SALOME or [DocU] Tutorials on using the ADAO module in Python, then indicates the [DocU] Advanced usage of the ADAO module, with how to obtain additional information or how to use non-GUI command execution scripting. Users interested in quick use of the module can stop before reading the rest, but a valuable use of the module requires to read and come back regularly to these parts. The following parts describe [DocR] Graphical User Interface for ADAO (GUI/EFICAS) and [DocR] Textual User Interface for ADAO (TUI/API). The last main part gives a detailed [DocR] Reference description of the ADAO commands and keywords, with three essential main sub-parts describing the details of commands and options of the algorithms. A Glossary, some Notations and common conventions, a Bibliography and an extensive index are included in the document. And, to comply with the module requirements, be sure to read the part License and requirements.

- 1. Introduction to ADAO
- 2.
**[DocT]**A brief introduction to Data Assimilation and Optimization- 2.1. Fields reconstruction or measures interpolation
- 2.2. Parameters identification, models adjustment, or calibration
- 2.3. Joint estimation of states and parameters
- 2.4. Simple description of the data assimilation methodological framework
- 2.5. A schematic view of Data Assimilation and Optimization approaches
- 2.6. An overview of reduction methods and of reduced optimization
- 2.7. Going further in the data assimilation framework
- 2.8. Going further in the state estimation by optimization methods
- 2.9. Going further in data assimilation for dynamics

- 3.
**[DocT]**Methodology to elaborate a Data Assimilation or Optimization study - 4.
**[DocU]**Tutorials on using the ADAO module in SALOME - 5.
**[DocU]**Tutorials on using the ADAO module in Python - 6.
**[DocU]**Advanced usage of the ADAO module- 6.1. Converting and executing an ADAO command file (JDC) using a Shell script
- 6.2. Running an ADAO calculation scheme in YACS using the text user mode (YACS TUI)
- 6.3. Running an ADAO calculation in R environment using the TUI ADAO interface
- 6.4. Using the ADAO EFICAS graphical interface as an ADAO TUI command
- 6.5. Change the default execution mode of nodes in YACS
- 6.6. Getting information on special variables during the ADAO calculation
- 6.7. Getting more information when running a calculation
- 6.8. Accelerating numerical derivatives calculations by using a parallel mode
- 6.9. Convergence control for calculation cases and iterative algorithms
- 6.10. Switching from a version of ADAO to a newer one

- 7.
**[DocR]**Graphical User Interface for ADAO (GUI/EFICAS) - 8.
**[DocR]**Textual User Interface for ADAO (TUI/API) - 9.
**[DocR]**Reference description of the ADAO commands and keywords - 10.
**[DocR]**General entries and outputs - 11.
**[DocR]**Special entries: measurements, functions, matrices, “*observer*”, post-processing- 11.1. Requirements for observation or experimental measurements description
- 11.2. Requirements for functions describing an operator
- 11.3. Requirements to describe covariance matrices
- 11.4. Requirements for functions describing an “
*observer*” - 11.5. Requirements to describe a post-processing after an ADAO calculation

- 12.
**[DocR]**Data assimilation or optimization calculation cases- 12.1. Calculation algorithm “
*3DVAR*” - 12.2. Calculation algorithm “
*4DVAR*” - 12.3. Calculation algorithm “
*Blue*” - 12.4. Calculation algorithm “
*DerivativeFreeOptimization*” - 12.5. Calculation algorithm “
*DifferentialEvolution*” - 12.6. Calculation algorithm “
*EnsembleBlue*” - 12.7. Calculation algorithm “
*EnsembleKalmanFilter*” - 12.8. Calculation algorithm “
*ExtendedBlue*” - 12.9. Calculation algorithm “
*ExtendedKalmanFilter*” - 12.10. Calculation algorithm “
*KalmanFilter*” - 12.11. Calculation algorithm “
*LinearLeastSquares*” - 12.12. Calculation algorithm “
*NonLinearLeastSquares*” - 12.13. Calculation algorithm “
*ParticleSwarmOptimization*” - 12.14. Calculation algorithm “
*QuantileRegression*” - 12.15. Calculation algorithm “
*TabuSearch*” - 12.16. Calculation algorithm “
*UnscentedKalmanFilter*” - 12.17. List of commands and keywords for data assimilation or optimisation case

- 12.1. Calculation algorithm “
- 13.
**[DocR]**Checking cases- 13.1. Checking algorithm “
*AdjointTest*” - 13.2. Checking algorithm “
*FunctionTest*” - 13.3. Checking algorithm “
*GradientTest*” - 13.4. Checking algorithm “
*InputValuesTest*” - 13.5. Checking algorithm “
*LinearityTest*” - 13.6. Checking algorithm “
*LocalSensitivityTest*” - 13.7. Checking algorithm “
*ObserverTest*” - 13.8. Checking algorithm “
*ParallelFunctionTest*” - 13.9. Checking algorithm “
*SamplingTest*” - 13.10. Checking algorithm “
*TangentTest*” - 13.11. List of commands and keywords for an ADAO checking case

- 13.1. Checking algorithm “
- 14. License and requirements
- 15. Bibliography
- 16. Notations and common conventions
- 17. Glossary
- 18. Index