documentation du module ADAO, et de se reporter si nécessaire à l'interface
graphique (GUI), pour disposer de l'ensemble des éléments permettant de
renseigner correctement les commandes. Les notions générales et termes utilisés
-ici sont définis dans :ref:`section_theory`.
+ici sont définis dans :ref:`section_theory`. Comme dans l'interface graphique,
+on note que la démarche en TUI est destinée à créer et gérer un unique cas de
+calcul.
.. _subsection_tui_creating:
usage dans les commandes elle-mêmes.
Ensuite, le cas doit être construit par une préparation et un enregistrement
-des données définissant l'étude. L'ordre de ces commande n'a pas d'importance,
-il suffit que les concepts requis par l'algorithme utilisé soient présentes. On
+des données définissant l'étude. L'ordre de ces commandes n'a pas d'importance,
+il suffit que les concepts requis par l'algorithme utilisé soient présents. On
se reportera à :ref:`section_reference` et à ses sous-parties pour avoir le
détail des commandes par algorithme. Ici, on définit successivement
l'algorithme d'assimilation de données ou d'optimisation choisi et ses
est privé au sens courant de programmation ("*private*"). Néanmoins, l'absence
d'un tel signe au début d'un nom ne le désigne pas comme public. De manière
générale, en Python, et contrairement à d'autres langages, on peut accéder aux
-objets ou aux fonction privés. Cela peut parfois être utile, mais un tel usage
+objets ou aux fonctions privés. Cela peut parfois être utile, mais un tel usage
dans vos codes conduira à des plantages sans avertissement lors de futures
versions. Il est donc fortement recommandé de ne pas le faire.
l'exécution.
.. index:: single: Observer
+.. index:: single: Observer Template
.. index:: single: setObserver
+.. index:: single: setObserver Template
**setObserver** (*Variable, Template, String, Script, Info*)
Cette commande permet de définir un *observer* sur une variable courante ou
"*Info*" contient une chaîne de caractère d'information ou une chaine vide.
.. index:: single: UserPostAnalysis
+.. index:: single: UserPostAnalysis Template
.. index:: single: setUserPostAnalysis
.. index:: single: setUserPostAnalysis Template
**setUserPostAnalysis** (*Template, String, Script*)
Cette commande permet de définir le traitement des paramètres ou des
résultats après le déroulement de l'algorithme de calcul. Sa valeur est
- définie comme nom de patron prédéfini, un fichier script ou une chaîne de
- caractères. Cela permet de produire directement du code de post-processing
- dans un cas ADAO. On peut d'utiliser les patrons disponibles par l'argument
- "*Template*" (qui peut valoir "*AnalysisPrinter*", "*AnalysisSaver*" et
- "*AnalysisPrinterAndSaver*"). Dans le cas d'une définition par "*Script*",
- le fichier indiqué doit contenir uniquement les commandes que l'on aurait
- pu mettre à la suite de l'exécution du calcul.
+ définie soit par un nom de patron prédéfini, soit par un nom de fichier
+ script, soit par une chaîne de caractères. Cela permet de produire
+ directement du code de post-processing dans un cas ADAO. On peut d'utiliser
+ les patrons disponibles par l'argument "*Template*" (qui peut valoir
+ "*AnalysisPrinter*", "*AnalysisSaver*" et "*AnalysisPrinterAndSaver*").
+ Dans le cas d'une définition par "*Script*", le fichier indiqué doit
+ contenir uniquement les commandes que l'on aurait pu mettre à la suite de
+ l'exécution du calcul. Remarque importante : ce traitement n'est exécuté
+ que lorsque le cas est exécuté en TUI ou exporté en YACS.
Effectuer le calcul
+++++++++++++++++++
autre les commandes établissant le cas de calcul en cours. Certains
formats ne sont disponibles qu'en entrée ou qu'en sortie.
+De plus, on peut obtenir une information simple sur le cas d'étude tel que
+défini par l'utilisateur en utilisant directement la commande "*print*" de Python
+sur le cas, à toute étape lors de sa construction. Par exemple::
+
+ from numpy import array, matrix
+ from adao import adaoBuilder
+ case = adaoBuilder.New()
+ case.set( 'AlgorithmParameters', Algorithm='3DVAR' )
+ case.set( 'Background', Vector=[0, 1, 2] )
+ print(case)
+
+dont le résultat est ici::
+
+ ================================================================================
+ ADAO Study report
+ ================================================================================
+
+ - AlgorithmParameters command has been set with values:
+ Algorithm='3DVAR'
+
+ - Background command has been set with values:
+ Vector=[0, 1, 2]
+
.. _subsection_tui_advanced:
Exemples plus avancés de cas de calcul TUI ADAO
#. que l'utilisateur dispose en Python d'une fonction de simulation physique appelée ``simulation``, préalablement (bien) testée, qui transforme les 3 paramètres en résultats similaires aux observations,
#. que l'exploitation indépendante, que l'utilisateur veut faire, est représentée ici par l'affichage simple de l'état initial, de l'état optimal, de la simulation en ce point, des états intermédiaires et du nombre d'itérations d'optimisation.
-Pour effectuer de manière simple cet essai de cas de calcul TUI, on se donne par
-exemple les entrées suivantes, parfaitement arbitraires, en construisant les
-observations par simulation pour se placer dans un cas d'expériences jumelles::
+Pour effectuer de manière simple cet essai de cas de calcul TUI, on se donne
+par exemple les entrées suivantes, parfaitement arbitraires, en construisant
+les observations par simulation pour se placer dans un cas d'expériences
+jumelles (pour mémoire, voir la démarche :ref:`section_methodology_twin`)::
#
# Construction artificielle d'un exemple de données utilisateur