information, or how to use it without the graphical user interface (GUI).
Exporting an ADAO command file (JDC) to YACS in console mode
---------------------------------------------------------------------------------
+------------------------------------------------------------
An export command can use the Python file generated by the editor used to build
the ADAO command file (JDC). If the ADAO command file is named "Study1.comm",
is already running.
Running an ADAO calculation scheme in YACS in console mode
---------------------------------------------------------------------------------
+----------------------------------------------------------
This section describes how to execute in console mode a YACS calculation scheme,
obtained using the ADAO "Export to YACS" function. It uses the standard YACS
is already running.
Getting more information when running an assimilation calculation
---------------------------------------------------------------------------------
+-----------------------------------------------------------------
When running, the ADAO module is logging useful data and messages. There are two
ways to obtain theses informations.
keyword requires a Python dictionary, containing some key/value pairs.
For example, with a 3DVAR algorithm, the possible keys are "*Minimizer*",
-"*MaximumNumberOfSteps*", and "*Bounds*":
+"*MaximumNumberOfSteps*", "ProjectedGradientTolerance", "GradientNormTolerance"
+and "*Bounds*":
-#. The "*Minimizer*" key allows to choose the optimisation minimizer, the
- default choice being "LBFGSB", and the possible ones "LBFGSB" (nonlinear
+#. The "*Minimizer*" key allows to choose the optimisation 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"
- (non-linear unconstrained minimizer).
+ (nonlinear unconstrained minimizer), "NCG" (Newton CG minimizer).
#. The "*MaximumNumberOfSteps*" key indicates the maximum number of iterations
allowed for iterative optimisation. The default is 15000, which very
similar of no limit on iterations. It is then recommended to adapt this
parameter to the needs on real problems.
+#. The "ProjectedGradientTolerance" key indicates a limit value, leading to
+ stop successfully the iterative optimisation process when all the components
+ of the projected gradient are under this limit.
+#. The "GradientNormTolerance" key indicates a limit value, leading to stop
+ successfully the iterative optimisation process when the norm of the
+ gradient is under this limit.
#. The "*Bounds*" 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 there is no bound.
+ time there is no bound. The bounds can always be specified, but they are
+ taken into account only by the constrained minimizers.
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.
+the "BFGS" or "CG" minimisation algorithm for the 3DVAR algorithm. For
+constrained optimisation, the minimizer "LBFGSB" is often more robust, but the
+"TNC" is always more performant.
This dictionary has to be defined, for example, in an external Python script
file, using the mandatory variable name "*AlgorithmParameters*" for the