14.7. Checking algorithm “LocalSensitivityTest”¶
14.7.1. Description¶
This algorithm allows to calculate the value of the Jacobian of the operator
with respect to the input variables
. This operator
appears in the relation:
(see [DocT] A brief introduction to Data Assimilation and Optimization for further explanations). This Jacobian is the
linearized operator (or the tangent one) of the
near the chosen checking point.
14.7.2. Optional and required commands¶
The general required commands, available in the editing user graphical or textual interface, are the following:
- CheckingPoint
Vector. The variable indicates the vector used as the state around which to perform the required check, noted
and similar to the background
. It is defined as a “Vector” or “VectorSerie” type object. Its availability in output is conditioned by the boolean “Stored” associated with input.
- Observation
List of vectors. The variable indicates the observation vector used for data assimilation or optimization, and usually noted
. Its value is defined as an object of type “Vector” if it is a single observation (temporal or not) or “VectorSeries” if it is a succession of observations. Its availability in output is conditioned by the boolean “Stored” associated in input.
Remark : the observation in only used to enforce dimension checking, so one
can give unrealistic vector of the right size.
Example : numpy.ones(<number of observations>)
- ObservationOperator
Operator. The variable indicates the observation operator, usually noted as
, which transforms the input parameters
to results
to be compared to observations
. Its value is defined as a “Function” type object or a “Matrix” type one. In the case of “Function” type, different functional forms can be used, as described in the section Requirements for functions describing an operator. If there is some control
included in the observation, the operator has to be applied to a pair
.
The general optional commands, available in the editing user graphical or textual interface, are indicated in List of commands and keywords for an ADAO checking case. Moreover, the parameters of the command “AlgorithmParameters” allow to choose the specific options, described hereafter, of the algorithm. See Description of options of an algorithm by “AlgorithmParameters” for the good use of this command.
The options are the following:
- SetDebug
Boolean value. This variable leads to the activation, or not, of the debug mode during the function or operator evaluation. The default is “False”, the choices are “True” or “False”.
Example:
{"SetDebug":False}
- StoreSupplementaryCalculations
List of names. This list indicates the names of the supplementary variables, that can be available during or at the end of the algorithm, if they are initially required by the user. Their avalability involves, potentially, costly calculations or memory consumptions. The default is then a void list, none of these variables being calculated and stored by default (excepted the unconditionnal variables). The possible names are in the following list (the detailed description of each named variable is given in the following part of this specific algorithmic documentation, in the sub-section “Information and variables available at the end of the algorithm”): [ “CurrentState”, “JacobianMatrixAtCurrentState”, “SimulatedObservationAtCurrentState”, ].
Example :
{"StoreSupplementaryCalculations":["CurrentState", "Residu"]}
14.7.3. Information and variables available at the end of the algorithm¶
At the output, after executing the algorithm, there are information and
variables originating from the calculation. The description of
Variables and informations available at the output show the way to obtain them by the method
named get
, of the variable “ADD” of the post-processing in graphical
interface, or of the case in textual interface. The input variables, available
to the user at the output in order to facilitate the writing of post-processing
procedures, are described in the Inventory of potentially available information at the output.
Permanent outputs (non conditional)
The unconditional outputs of the algorithm are the following:
- JacobianMatrixAtCurrentState
List of matrices. Each element is the jacobian matrix of partial derivatives of the output of the observation operator with respect to the input parameters, one column of derivatives per parameter. It is calculated at the current state.
Example:
GradH = ADD.get("JacobianMatrixAtCurrentState")[-1]
Set of on-demand outputs (conditional or not)
The whole set of algorithm outputs (conditional or not), sorted by alphabetical order, is the following:
- CurrentState
List of vectors. Each element is a usual state vector used during the iterative algorithm procedure.
Example:
Xs = ADD.get("CurrentState")[:]
- JacobianMatrixAtCurrentState
List of matrices. Each element is the jacobian matrix of partial derivatives of the output of the observation operator with respect to the input parameters, one column of derivatives per parameter. It is calculated at the current state.
Example:
GradH = ADD.get("JacobianMatrixAtCurrentState")[-1]
- SimulatedObservationAtCurrentState
List of vectors. Each element is an observed vector simulated by the observation operator from the current state, that is, in the observation space.
Example:
hxs = ADD.get("SimulatedObservationAtCurrentState")[-1]
14.7.4. See also¶
References to other sections: