From: Jean-Philippe ARGAUD Date: Tue, 4 Jun 2024 17:01:11 +0000 (+0200) Subject: Documentation update with features and review corrections X-Git-Tag: V9_13_0a1~3 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=ce9c4ed7212b5c80efb2c58cc0e8e02d552e04af;p=modules%2Fadao.git Documentation update with features and review corrections --- diff --git a/doc/en/ref_algorithm_3DVAR.rst b/doc/en/ref_algorithm_3DVAR.rst index 9169cd2..a11b92c 100644 --- a/doc/en/ref_algorithm_3DVAR.rst +++ b/doc/en/ref_algorithm_3DVAR.rst @@ -92,6 +92,8 @@ Posteriori* estimator"), which coincide in this particular case. .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnBoth.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_4DVAR.rst b/doc/en/ref_algorithm_4DVAR.rst index 2b1f119..8ff0d71 100644 --- a/doc/en/ref_algorithm_4DVAR.rst +++ b/doc/en/ref_algorithm_4DVAR.rst @@ -55,6 +55,8 @@ similar to the one of Kalman filters, specially the .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnBoth.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_Blue.rst b/doc/en/ref_algorithm_Blue.rst index dbc1062..1201154 100644 --- a/doc/en/ref_algorithm_Blue.rst +++ b/doc/en/ref_algorithm_Blue.rst @@ -76,6 +76,8 @@ method is not proposed nor recommended. .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_DerivativeFreeOptimization.rst b/doc/en/ref_algorithm_DerivativeFreeOptimization.rst index 6d80050..d9c0b54 100644 --- a/doc/en/ref_algorithm_DerivativeFreeOptimization.rst +++ b/doc/en/ref_algorithm_DerivativeFreeOptimization.rst @@ -53,6 +53,8 @@ assimilation. .. include:: snippets/FeaturePropParallelFree.rst +.. include:: snippets/FeaturePropConvergenceOnBoth.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_DifferentialEvolution.rst b/doc/en/ref_algorithm_DifferentialEvolution.rst index b0d185f..ac0ce9d 100644 --- a/doc/en/ref_algorithm_DifferentialEvolution.rst +++ b/doc/en/ref_algorithm_DifferentialEvolution.rst @@ -50,6 +50,8 @@ least squares function, classically used in data assimilation. .. include:: snippets/FeaturePropDerivativeFree.rst +.. include:: snippets/FeaturePropConvergenceOnNumbers.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_EnsembleBlue.rst b/doc/en/ref_algorithm_EnsembleBlue.rst index d1bbb88..d328445 100644 --- a/doc/en/ref_algorithm_EnsembleBlue.rst +++ b/doc/en/ref_algorithm_EnsembleBlue.rst @@ -49,6 +49,8 @@ linearity of the observation operator with the help of the .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_EnsembleKalmanFilter.rst b/doc/en/ref_algorithm_EnsembleKalmanFilter.rst index 0421aee..e0cee3f 100644 --- a/doc/en/ref_algorithm_EnsembleKalmanFilter.rst +++ b/doc/en/ref_algorithm_EnsembleKalmanFilter.rst @@ -99,6 +99,8 @@ obtain a less costly data assimilation with (hopefully) the same quality. .. include:: snippets/FeaturePropParallelAlgorithm.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_ExtendedBlue.rst b/doc/en/ref_algorithm_ExtendedBlue.rst index b5c51bb..628c316 100644 --- a/doc/en/ref_algorithm_ExtendedBlue.rst +++ b/doc/en/ref_algorithm_ExtendedBlue.rst @@ -61,6 +61,8 @@ state error covariance is not updated. .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_ExtendedKalmanFilter.rst b/doc/en/ref_algorithm_ExtendedKalmanFilter.rst index 2a091a6..399c5ce 100644 --- a/doc/en/ref_algorithm_ExtendedKalmanFilter.rst +++ b/doc/en/ref_algorithm_ExtendedKalmanFilter.rst @@ -89,6 +89,8 @@ recommended). .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_KalmanFilter.rst b/doc/en/ref_algorithm_KalmanFilter.rst index 8ac9ff7..3152292 100644 --- a/doc/en/ref_algorithm_KalmanFilter.rst +++ b/doc/en/ref_algorithm_KalmanFilter.rst @@ -86,6 +86,8 @@ can verify the linearity of the operators with the help of a .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_LinearLeastSquares.rst b/doc/en/ref_algorithm_LinearLeastSquares.rst index c779acd..6a01d81 100644 --- a/doc/en/ref_algorithm_LinearLeastSquares.rst +++ b/doc/en/ref_algorithm_LinearLeastSquares.rst @@ -61,6 +61,8 @@ In all cases, it is recommended to prefer at least a .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_NonLinearLeastSquares.rst b/doc/en/ref_algorithm_NonLinearLeastSquares.rst index 6bbf909..39ba20c 100644 --- a/doc/en/ref_algorithm_NonLinearLeastSquares.rst +++ b/doc/en/ref_algorithm_NonLinearLeastSquares.rst @@ -59,6 +59,8 @@ for its stability as for its behavior during optimization. .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnBoth.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_ParticleSwarmOptimization.rst b/doc/en/ref_algorithm_ParticleSwarmOptimization.rst index 3448ba7..311e987 100644 --- a/doc/en/ref_algorithm_ParticleSwarmOptimization.rst +++ b/doc/en/ref_algorithm_ParticleSwarmOptimization.rst @@ -137,6 +137,8 @@ prohibitive optimization time length. .. include:: snippets/FeaturePropParallelAlgorithm.rst +.. include:: snippets/FeaturePropConvergenceOnNumbers.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_QuantileRegression.rst b/doc/en/ref_algorithm_QuantileRegression.rst index 257d9c8..9879ee5 100644 --- a/doc/en/ref_algorithm_QuantileRegression.rst +++ b/doc/en/ref_algorithm_QuantileRegression.rst @@ -43,6 +43,8 @@ quantiles conditions. .. include:: snippets/FeaturePropDerivativeNeeded.rst +.. include:: snippets/FeaturePropConvergenceOnBoth.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_TabuSearch.rst b/doc/en/ref_algorithm_TabuSearch.rst index ecc0965..ef7c58f 100644 --- a/doc/en/ref_algorithm_TabuSearch.rst +++ b/doc/en/ref_algorithm_TabuSearch.rst @@ -57,6 +57,8 @@ Positions already explored are kept in a list of finite length. .. include:: snippets/FeaturePropDerivativeFree.rst +.. include:: snippets/FeaturePropConvergenceOnNumbers.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/ref_algorithm_UnscentedKalmanFilter.rst b/doc/en/ref_algorithm_UnscentedKalmanFilter.rst index 650ca8a..ad93014 100644 --- a/doc/en/ref_algorithm_UnscentedKalmanFilter.rst +++ b/doc/en/ref_algorithm_UnscentedKalmanFilter.rst @@ -104,6 +104,8 @@ algorithms: .. include:: snippets/FeaturePropParallelAlgorithm.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/en/snippets/FeaturePropConvergenceOnBoth.rst b/doc/en/snippets/FeaturePropConvergenceOnBoth.rst new file mode 100644 index 0000000..eec4679 --- /dev/null +++ b/doc/en/snippets/FeaturePropConvergenceOnBoth.rst @@ -0,0 +1,17 @@ +.. index:: single: Convergence on residue or number criteria + +- The methods proposed by this algorithm **achieve their convergence on one or + more residue or number criteria**. In practice, there may be several + convergence criteria active simultaneously. + + The residue can be a conventional measure based on a gap (e.g. + "*calculation-measurement gap*"), or be a significant value for the algorithm + (e.g. "*nullity of gradient*"). + + The number is frequently a significant value for the algorithm, such as a + number of iterations or a number of evaluations, but it can also be, for + example, a number of generations for an evolutionary algorithm. + + Convergence thresholds need to be carefully adjusted, to reduce the gobal + calculation cost, or to ensure that convergence is adapted to the physical + case encountered. diff --git a/doc/en/snippets/FeaturePropConvergenceOnNumbers.rst b/doc/en/snippets/FeaturePropConvergenceOnNumbers.rst new file mode 100644 index 0000000..e9140a4 --- /dev/null +++ b/doc/en/snippets/FeaturePropConvergenceOnNumbers.rst @@ -0,0 +1,13 @@ +.. index:: single: Convergence on number criteria + +- The methods proposed by this algorithm **achieve their convergence on one or + more number criteria**. In practice, there may be simultaneously several + convergence criteria. + + The number is frequently a significant value for the algorithm, such as a + number of iterations or a number of evaluations, but it can also be, for + example, a number of generations for an evolutionary algorithm. + + Convergence thresholds need to be carefully adjusted, to reduce the gobal + calculation cost, or to ensure that convergence is adapted to the physical + case encountered. diff --git a/doc/en/snippets/FeaturePropConvergenceOnResidue.rst b/doc/en/snippets/FeaturePropConvergenceOnResidue.rst new file mode 100644 index 0000000..cd50ab8 --- /dev/null +++ b/doc/en/snippets/FeaturePropConvergenceOnResidue.rst @@ -0,0 +1,13 @@ +.. index:: single: Convergence on residue criteria + +- The methods proposed by this algorithm **achieve their convergence on one or + more residue criteria**. In practice, there may be several convergence + criteria active simultaneously. + + The residue can be a conventional measure based on a gap (e.g. + "*calculation-measurement gap*"), or be a significant value for the algorithm + (e.g. "*nullity of gradient*"). + + Convergence thresholds need to be carefully adjusted, to reduce the gobal + calculation cost, or to ensure that convergence is adapted to the physical + case encountered. diff --git a/doc/en/snippets/FeaturePropConvergenceOnStatic.rst b/doc/en/snippets/FeaturePropConvergenceOnStatic.rst new file mode 100644 index 0000000..eedb65b --- /dev/null +++ b/doc/en/snippets/FeaturePropConvergenceOnStatic.rst @@ -0,0 +1,9 @@ +.. index:: single: Convergence on static criteria + +- The methods proposed by this algorithm **achieve their convergence on one or + more static criteria, fixed by some particular algorithmic properties**. In + practice, there may be several convergence criteria active simultaneously. + + The more frequent algorithmic property is the one of direct calculations, + which evaluate the converged solution without any controllable iteration. + There is no convergence threshold to be adjusted in this case. diff --git a/doc/en/snippets/FeaturePropParallelAlgorithm.rst b/doc/en/snippets/FeaturePropParallelAlgorithm.rst index a8908e7..398508f 100644 --- a/doc/en/snippets/FeaturePropParallelAlgorithm.rst +++ b/doc/en/snippets/FeaturePropParallelAlgorithm.rst @@ -2,6 +2,6 @@ - The methods proposed by this algorithm **have internal parallelism**, and can therefore take advantage of computational distribution resources. The - potential interaction between the internal parallelism of the methods and the - parallelism that may be present in the user's observation or evolution - operators must therefore be carefully tuned. + potential interaction, between the parallelism of the numerical derivation, + and the parallelism that may be present in the observation or evolution + operators embedding user codes, must therefore be carefully tuned. diff --git a/doc/en/snippets/FeaturePropParallelDerivativesOnly.rst b/doc/en/snippets/FeaturePropParallelDerivativesOnly.rst index 5e2c03d..c038e2e 100644 --- a/doc/en/snippets/FeaturePropParallelDerivativesOnly.rst +++ b/doc/en/snippets/FeaturePropParallelDerivativesOnly.rst @@ -2,6 +2,6 @@ - The methods proposed by this algorithm **have no internal parallelism, but use the numerical derivation of operator(s), which can be parallelized**. The - potential interaction between the parallelism of the numerical derivation and - the parallelism that may be present in the user's observation or evolution - operators must therefore be carefully tuned. + potential interaction, between the parallelism of the numerical derivation, + and the parallelism that may be present in the observation or evolution + operators embedding user codes, must therefore be carefully tuned. diff --git a/doc/en/snippets/FeaturePropParallelFree.rst b/doc/en/snippets/FeaturePropParallelFree.rst index 192e9a4..a4dc53a 100644 --- a/doc/en/snippets/FeaturePropParallelFree.rst +++ b/doc/en/snippets/FeaturePropParallelFree.rst @@ -1,7 +1,7 @@ -.. index:: single: Absence of algorithmic parallelism +.. index:: single: No algorithmic parallelism -- The methods proposed by this algorithm **have no internal parallelism**, and - therefore cannot take advantage of computer resources for distributing - calculations. The methods are sequential, and any use of parallelism - resources is therefore reserved for the user's observation or evolution - operators. +- The methods proposed by this algorithm **have no internal parallelism or + numerical derivation of operator(s)**, and therefore cannot take advantage of + computer resources for distributing calculations. The methods are sequential, + and any use of parallelism resources is therefore reserved for observation or + evolution operators, i.e. user codes. diff --git a/doc/en/snippets/Header2Algo12.rst b/doc/en/snippets/Header2Algo12.rst index 709ef70..f2fc77d 100644 --- a/doc/en/snippets/Header2Algo12.rst +++ b/doc/en/snippets/Header2Algo12.rst @@ -1,8 +1,8 @@ -Some noteworthy properties of the implemented algorithm -+++++++++++++++++++++++++++++++++++++++++++++++++++++++ +Some noteworthy properties of the implemented methods ++++++++++++++++++++++++++++++++++++++++++++++++++++++ To complete the description, we summarize here a few notable properties of the -algorithm or of its implementation. These properties may have an influence on -how it is used or on its computational performance. For further information, -please refer to the more comprehensive references given at the end of this -algorithm description. +algorithm methods or of their implementations. These properties may have an +influence on how it is used or on its computational performance. For further +information, please refer to the more comprehensive references given at the end +of this algorithm description. diff --git a/doc/fr/ref_algorithm_3DVAR.rst b/doc/fr/ref_algorithm_3DVAR.rst index 646b438..1dfdfcb 100644 --- a/doc/fr/ref_algorithm_3DVAR.rst +++ b/doc/fr/ref_algorithm_3DVAR.rst @@ -100,6 +100,8 @@ cas précis. .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnBoth.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_4DVAR.rst b/doc/fr/ref_algorithm_4DVAR.rst index 6bd3313..af774ae 100644 --- a/doc/fr/ref_algorithm_4DVAR.rst +++ b/doc/fr/ref_algorithm_4DVAR.rst @@ -56,6 +56,8 @@ l':ref:`section_ref_algorithm_UnscentedKalmanFilter`. .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnBoth.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_Blue.rst b/doc/fr/ref_algorithm_Blue.rst index 3fe8c63..debc87e 100644 --- a/doc/fr/ref_algorithm_Blue.rst +++ b/doc/fr/ref_algorithm_Blue.rst @@ -77,6 +77,8 @@ cette méthode n'est donc pas proposée. .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_DerivativeFreeOptimization.rst b/doc/fr/ref_algorithm_DerivativeFreeOptimization.rst index 9bb5a17..9c90e05 100644 --- a/doc/fr/ref_algorithm_DerivativeFreeOptimization.rst +++ b/doc/fr/ref_algorithm_DerivativeFreeOptimization.rst @@ -54,6 +54,8 @@ augmentés, classiquement utilisée en assimilation de données. .. include:: snippets/FeaturePropParallelFree.rst +.. include:: snippets/FeaturePropConvergenceOnBoth.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_DifferentialEvolution.rst b/doc/fr/ref_algorithm_DifferentialEvolution.rst index 43c3a36..7365bff 100644 --- a/doc/fr/ref_algorithm_DifferentialEvolution.rst +++ b/doc/fr/ref_algorithm_DifferentialEvolution.rst @@ -52,6 +52,8 @@ en assimilation de données. .. include:: snippets/FeaturePropDerivativeFree.rst +.. include:: snippets/FeaturePropConvergenceOnNumbers.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_EnsembleBlue.rst b/doc/fr/ref_algorithm_EnsembleBlue.rst index ca4fcaa..61d4ae9 100644 --- a/doc/fr/ref_algorithm_EnsembleBlue.rst +++ b/doc/fr/ref_algorithm_EnsembleBlue.rst @@ -49,6 +49,8 @@ l':ref:`section_ref_algorithm_LinearityTest`. .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_EnsembleKalmanFilter.rst b/doc/fr/ref_algorithm_EnsembleKalmanFilter.rst index 71cdc51..44b3da5 100644 --- a/doc/fr/ref_algorithm_EnsembleKalmanFilter.rst +++ b/doc/fr/ref_algorithm_EnsembleKalmanFilter.rst @@ -103,6 +103,8 @@ moyens pour obtenir une assimilation de données plus économique et de qualité .. include:: snippets/FeaturePropParallelAlgorithm.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_ExtendedBlue.rst b/doc/fr/ref_algorithm_ExtendedBlue.rst index 357f44d..0681d28 100644 --- a/doc/fr/ref_algorithm_ExtendedBlue.rst +++ b/doc/fr/ref_algorithm_ExtendedBlue.rst @@ -63,6 +63,8 @@ sur les états n'est pas remise à jour. .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_ExtendedKalmanFilter.rst b/doc/fr/ref_algorithm_ExtendedKalmanFilter.rst index 66cc9b6..dd8574d 100644 --- a/doc/fr/ref_algorithm_ExtendedKalmanFilter.rst +++ b/doc/fr/ref_algorithm_ExtendedKalmanFilter.rst @@ -90,6 +90,8 @@ défaut), ou être conduit sans aucune contrainte (cette variante est nommée .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_KalmanFilter.rst b/doc/fr/ref_algorithm_KalmanFilter.rst index 19492cf..5fba764 100644 --- a/doc/fr/ref_algorithm_KalmanFilter.rst +++ b/doc/fr/ref_algorithm_KalmanFilter.rst @@ -87,6 +87,8 @@ opérateurs à l'aide d'un :ref:`section_ref_algorithm_LinearityTest`. .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_LinearLeastSquares.rst b/doc/fr/ref_algorithm_LinearLeastSquares.rst index 4fba77c..c42f72f 100644 --- a/doc/fr/ref_algorithm_LinearLeastSquares.rst +++ b/doc/fr/ref_algorithm_LinearLeastSquares.rst @@ -62,6 +62,8 @@ Dans tous les cas, il est recommandé de lui préférer au minimum un .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_NonLinearLeastSquares.rst b/doc/fr/ref_algorithm_NonLinearLeastSquares.rst index 13e0125..36d6da1 100644 --- a/doc/fr/ref_algorithm_NonLinearLeastSquares.rst +++ b/doc/fr/ref_algorithm_NonLinearLeastSquares.rst @@ -60,6 +60,8 @@ comportement lors de l'optimisation. .. include:: snippets/FeaturePropParallelDerivativesOnly.rst +.. include:: snippets/FeaturePropConvergenceOnBoth.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_ParticleSwarmOptimization.rst b/doc/fr/ref_algorithm_ParticleSwarmOptimization.rst index 77d75e5..7a836fa 100644 --- a/doc/fr/ref_algorithm_ParticleSwarmOptimization.rst +++ b/doc/fr/ref_algorithm_ParticleSwarmOptimization.rst @@ -144,6 +144,8 @@ pour éviter une durée d'optimisation rédhibitoire. .. include:: snippets/FeaturePropParallelAlgorithm.rst +.. include:: snippets/FeaturePropConvergenceOnNumbers.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_QuantileRegression.rst b/doc/fr/ref_algorithm_QuantileRegression.rst index 8fa169d..b4a7642 100644 --- a/doc/fr/ref_algorithm_QuantileRegression.rst +++ b/doc/fr/ref_algorithm_QuantileRegression.rst @@ -43,6 +43,8 @@ paramètres de modèles satisfaisant aux conditions de quantiles. .. include:: snippets/FeaturePropDerivativeNeeded.rst +.. include:: snippets/FeaturePropConvergenceOnBoth.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_TabuSearch.rst b/doc/fr/ref_algorithm_TabuSearch.rst index 93562bd..6015052 100644 --- a/doc/fr/ref_algorithm_TabuSearch.rst +++ b/doc/fr/ref_algorithm_TabuSearch.rst @@ -59,6 +59,8 @@ liste de longueur finie. .. include:: snippets/FeaturePropDerivativeFree.rst +.. include:: snippets/FeaturePropConvergenceOnNumbers.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/ref_algorithm_UnscentedKalmanFilter.rst b/doc/fr/ref_algorithm_UnscentedKalmanFilter.rst index 63f6f25..4eacc78 100644 --- a/doc/fr/ref_algorithm_UnscentedKalmanFilter.rst +++ b/doc/fr/ref_algorithm_UnscentedKalmanFilter.rst @@ -106,6 +106,8 @@ algorithmes : .. include:: snippets/FeaturePropParallelAlgorithm.rst +.. include:: snippets/FeaturePropConvergenceOnStatic.rst + .. ------------------------------------ .. .. include:: snippets/Header2Algo02.rst diff --git a/doc/fr/snippets/FeaturePropConvergenceOnBoth.rst b/doc/fr/snippets/FeaturePropConvergenceOnBoth.rst new file mode 100644 index 0000000..066a91e --- /dev/null +++ b/doc/fr/snippets/FeaturePropConvergenceOnBoth.rst @@ -0,0 +1,17 @@ +.. index:: single: Convergence sur critère(s) de résidu ou de nombre + +- Les méthodes proposées par cet algorithme **atteignent leur convergence sur + un ou plusieurs critères de résidu ou de nombre**. En pratique, il peut y + avoir plusieurs critères de convergence actifs simultanément. + + Le résidu peut être une mesure standard basée sur un écart ("*écart + calculs-mesures*" par exemple), ou une valeur remarquable lié à l'algorithme + ("*nullité d'un gradient*" par exemple). + + Le nombre est fréquemment un élément remarquable lié à l'algorithme, comme un + nombre d'itérations ou un nombre d'évaluations, mais cela peut aussi être par + exemple un nombre de générations pour un algorithme évolutionnaire. + + Il convient de régler soigneusement les seuils de convergence, pour limiter + le coût calcul global de l'algorithme, ou pour assurer une adaptation de la + convergence au cas physique traité. diff --git a/doc/fr/snippets/FeaturePropConvergenceOnNumbers.rst b/doc/fr/snippets/FeaturePropConvergenceOnNumbers.rst new file mode 100644 index 0000000..924a2bb --- /dev/null +++ b/doc/fr/snippets/FeaturePropConvergenceOnNumbers.rst @@ -0,0 +1,13 @@ +.. index:: single: Convergence sur critère(s) de nombre + +- Les méthodes proposées par cet algorithme **atteignent leur convergence sur + un ou plusieurs critères de nombre**. En pratique, il peut y avoir plusieurs + critères de convergence actifs simultanément. + + Le nombre est fréquemment un élément remarquable lié à l'algorithme, comme un + nombre d'itérations ou un nombre d'évaluations, mais cela peut aussi être, + par exemple, un nombre de générations pour un algorithme évolutionnaire. + + Il convient de régler soigneusement les seuils de convergence, pour limiter + le coût calcul global de l'algorithme, ou pour assurer une adaptation de la + convergence au cas physique traité. diff --git a/doc/fr/snippets/FeaturePropConvergenceOnResidue.rst b/doc/fr/snippets/FeaturePropConvergenceOnResidue.rst new file mode 100644 index 0000000..d81333d --- /dev/null +++ b/doc/fr/snippets/FeaturePropConvergenceOnResidue.rst @@ -0,0 +1,13 @@ +.. index:: single: Convergence sur critère(s) de résidu + +- Les méthodes proposées par cet algorithme **atteignent leur convergence sur + un ou plusieurs critères de résidu**. En pratique, il peut y avoir plusieurs + critères de convergence actifs simultanément. + + Le résidu peut être une mesure standard basée sur un écart ("*écart + calculs-mesures*" par exemple), ou être une valeur remarquable lié à + l'algorithme ("*nullité d'un gradient*" par exemple). + + Il convient de régler soigneusement les seuils de convergence, pour limiter + le coût calcul global de l'algorithme, ou pour assurer une adaptation de la + convergence au cas physique traité. diff --git a/doc/fr/snippets/FeaturePropConvergenceOnStatic.rst b/doc/fr/snippets/FeaturePropConvergenceOnStatic.rst new file mode 100644 index 0000000..f5b2705 --- /dev/null +++ b/doc/fr/snippets/FeaturePropConvergenceOnStatic.rst @@ -0,0 +1,10 @@ +.. index:: single: Convergence sur critère(s) statique(s) + +- Les méthodes proposées par cet algorithme **atteignent leur convergence sur + un ou plusieurs critères statiques, fixés par des propriétés algorithmiques + particulières**. En pratique, il peut y avoir plusieurs critères de + convergence actifs simultanément. + + La propriété algorithmique la plus courante est celle des calculs directs, + qui évaluent la solution à convergence sans itération contrôlable. Il n'y a + aucun seuil de convergence à régler dans ce cas. diff --git a/doc/fr/snippets/FeaturePropGlobalOptimization.rst b/doc/fr/snippets/FeaturePropGlobalOptimization.rst index f095661..496ab4f 100644 --- a/doc/fr/snippets/FeaturePropGlobalOptimization.rst +++ b/doc/fr/snippets/FeaturePropGlobalOptimization.rst @@ -4,5 +4,5 @@ **recherche globale du minimum**, permettant en théorie d'atteindre un état globalement optimal sur le domaine de recherche. Cette optimalité globale est néanmoins obtenue "*à convergence*", ce qui signifie en temps long ou infini - lors d'une optimisation itérative *à valeurs réelles* (par opposition *à - valeurs entières*). + lors d'une optimisation itérative "*à valeurs réelles*" (par opposition à "*à + valeurs entières*"). diff --git a/doc/fr/snippets/FeaturePropParallelAlgorithm.rst b/doc/fr/snippets/FeaturePropParallelAlgorithm.rst index a78f27f..0a8a2a9 100644 --- a/doc/fr/snippets/FeaturePropParallelAlgorithm.rst +++ b/doc/fr/snippets/FeaturePropParallelAlgorithm.rst @@ -4,5 +4,5 @@ interne**, et peuvent donc profiter de ressources informatiques de répartition de calculs. L'interaction potentielle, entre le parallélisme interne des méthodes, et le parallélisme éventuellement présent dans les - opérateurs d'observation ou d'évolution de l'utilisateur, doit donc être - soigneusement réglée. + opérateurs d'observation ou d'évolution intégrant les codes de l'utilisateur, + doit donc être soigneusement réglée. diff --git a/doc/fr/snippets/FeaturePropParallelDerivativesOnly.rst b/doc/fr/snippets/FeaturePropParallelDerivativesOnly.rst index 939db42..1691e8a 100644 --- a/doc/fr/snippets/FeaturePropParallelDerivativesOnly.rst +++ b/doc/fr/snippets/FeaturePropParallelDerivativesOnly.rst @@ -4,5 +4,5 @@ interne, mais utilisent la dérivation numérique d'opérateur(s) qui est, elle, parallélisable**. L'interaction potentielle, entre le parallélisme de la dérivation numérique, et le parallélisme éventuellement présent dans les - opérateurs d'observation ou d'évolution de l'utilisateur, doit donc être - soigneusement réglée. + opérateurs d'observation ou d'évolution intégrant les codes de l'utilisateur, + doit donc être soigneusement réglée. diff --git a/doc/fr/snippets/FeaturePropParallelFree.rst b/doc/fr/snippets/FeaturePropParallelFree.rst index 76234aa..b82ace0 100644 --- a/doc/fr/snippets/FeaturePropParallelFree.rst +++ b/doc/fr/snippets/FeaturePropParallelFree.rst @@ -1,7 +1,8 @@ .. index:: single: Parallélisme algorithmique absent - Les méthodes proposées par cet algorithme **ne présentent pas de parallélisme - interne**, et ne peuvent donc profiter de ressources informatiques de - répartition de calculs. Les méthodes sont séquentielles, et un usage éventuel - des ressources du parallélisme est donc réservé aux opérateurs d'observation - ou d'évolution de l'utilisateur. + interne ni de dérivation numérique d'opérateur(s)**, et ne peuvent donc + profiter de ressources informatiques de répartition de calculs. Les méthodes + sont séquentielles, et un usage éventuel des ressources du parallélisme est + donc réservé aux opérateurs d'observation ou d'évolution, donc aux codes de + l'utilisateur. diff --git a/doc/fr/snippets/Header2Algo12.rst b/doc/fr/snippets/Header2Algo12.rst index ad8d63e..c5bfbcd 100644 --- a/doc/fr/snippets/Header2Algo12.rst +++ b/doc/fr/snippets/Header2Algo12.rst @@ -1,8 +1,8 @@ -Quelques propriétés notables de l'algorithme implémenté -+++++++++++++++++++++++++++++++++++++++++++++++++++++++ +Quelques propriétés notables des méthodes implémentées +++++++++++++++++++++++++++++++++++++++++++++++++++++++ Pour compléter la description on synthétise ici quelques propriétés notables, -de l'algorithme ou de son implémentation. Ces propriétés peuvent avoir une -influence sur la manière de l'utiliser ou sur ses performances de calcul. Pour -de plus amples renseignements, on se reportera aux références plus complètes -indiquées à la fin du descriptif de cet algorithme. +des méthodes de l'algorithme ou de leurs implémentations. Ces propriétés +peuvent avoir une influence sur la manière de l'utiliser ou sur ses +performances de calcul. Pour de plus amples renseignements, on se reportera aux +références plus complètes indiquées à la fin du descriptif de cet algorithme. diff --git a/src/daComposant/daAlgorithms/3DVAR.py b/src/daComposant/daAlgorithms/3DVAR.py index b3f2dd9..e466e76 100644 --- a/src/daComposant/daAlgorithms/3DVAR.py +++ b/src/daComposant/daAlgorithms/3DVAR.py @@ -199,6 +199,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): "NonLocalOptimization", "DerivativeNeeded", "ParallelDerivativesOnly", + "ConvergenceOnBoth", ), ) diff --git a/src/daComposant/daAlgorithms/4DVAR.py b/src/daComposant/daAlgorithms/4DVAR.py index 8122ea8..04ef0db 100644 --- a/src/daComposant/daAlgorithms/4DVAR.py +++ b/src/daComposant/daAlgorithms/4DVAR.py @@ -149,6 +149,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): "NonLocalOptimization", "DerivativeNeeded", "ParallelDerivativesOnly", + "ConvergenceOnBoth", ), ) diff --git a/src/daComposant/daAlgorithms/Blue.py b/src/daComposant/daAlgorithms/Blue.py index 4aa52a1..7c74683 100644 --- a/src/daComposant/daAlgorithms/Blue.py +++ b/src/daComposant/daAlgorithms/Blue.py @@ -135,6 +135,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): "LocalOptimization", "DerivativeNeeded", "ParallelDerivativesOnly", + "ConvergenceOnStatic", ), ) diff --git a/src/daComposant/daAlgorithms/DerivativeFreeOptimization.py b/src/daComposant/daAlgorithms/DerivativeFreeOptimization.py index b9abbc2..5f34955 100644 --- a/src/daComposant/daAlgorithms/DerivativeFreeOptimization.py +++ b/src/daComposant/daAlgorithms/DerivativeFreeOptimization.py @@ -135,6 +135,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): "NonLocalOptimization", "DerivativeFree", "ParallelFree", + "ConvergenceOnBoth", ), ) diff --git a/src/daComposant/daAlgorithms/DifferentialEvolution.py b/src/daComposant/daAlgorithms/DifferentialEvolution.py index 0c00797..9d1ab15 100644 --- a/src/daComposant/daAlgorithms/DifferentialEvolution.py +++ b/src/daComposant/daAlgorithms/DifferentialEvolution.py @@ -157,6 +157,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): features=( "NonLocalOptimization", "DerivativeFree", + "ConvergenceOnNumbers", ), ) diff --git a/src/daComposant/daAlgorithms/EnsembleBlue.py b/src/daComposant/daAlgorithms/EnsembleBlue.py index 8255216..ec9142d 100644 --- a/src/daComposant/daAlgorithms/EnsembleBlue.py +++ b/src/daComposant/daAlgorithms/EnsembleBlue.py @@ -68,6 +68,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): "LocalOptimization", "DerivativeNeeded", "ParallelDerivativesOnly", + "ConvergenceOnStatic", ), ) diff --git a/src/daComposant/daAlgorithms/EnsembleKalmanFilter.py b/src/daComposant/daAlgorithms/EnsembleKalmanFilter.py index 270364f..f17ce2d 100644 --- a/src/daComposant/daAlgorithms/EnsembleKalmanFilter.py +++ b/src/daComposant/daAlgorithms/EnsembleKalmanFilter.py @@ -192,6 +192,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): "LocalOptimization", "DerivativeFree", "ParallelAlgorithm", + "ConvergenceOnStatic", ), ) diff --git a/src/daComposant/daAlgorithms/ExtendedBlue.py b/src/daComposant/daAlgorithms/ExtendedBlue.py index 2a584ef..d934938 100644 --- a/src/daComposant/daAlgorithms/ExtendedBlue.py +++ b/src/daComposant/daAlgorithms/ExtendedBlue.py @@ -135,6 +135,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): "LocalOptimization", "DerivativeNeeded", "ParallelDerivativesOnly", + "ConvergenceOnStatic", ), ) diff --git a/src/daComposant/daAlgorithms/ExtendedKalmanFilter.py b/src/daComposant/daAlgorithms/ExtendedKalmanFilter.py index 269fc03..2d73578 100644 --- a/src/daComposant/daAlgorithms/ExtendedKalmanFilter.py +++ b/src/daComposant/daAlgorithms/ExtendedKalmanFilter.py @@ -111,6 +111,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): "LocalOptimization", "DerivativeNeeded", "ParallelDerivativesOnly", + "ConvergenceOnStatic", ), ) diff --git a/src/daComposant/daAlgorithms/KalmanFilter.py b/src/daComposant/daAlgorithms/KalmanFilter.py index 5d1b19e..ffbd367 100644 --- a/src/daComposant/daAlgorithms/KalmanFilter.py +++ b/src/daComposant/daAlgorithms/KalmanFilter.py @@ -98,6 +98,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): "LocalOptimization", "DerivativeNeeded", "ParallelDerivativesOnly", + "ConvergenceOnStatic", ), ) diff --git a/src/daComposant/daAlgorithms/LinearLeastSquares.py b/src/daComposant/daAlgorithms/LinearLeastSquares.py index 7f86dc6..b3f74bf 100644 --- a/src/daComposant/daAlgorithms/LinearLeastSquares.py +++ b/src/daComposant/daAlgorithms/LinearLeastSquares.py @@ -90,6 +90,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): "LocalOptimization", "DerivativeNeeded", "ParallelDerivativesOnly", + "ConvergenceOnStatic", ), ) diff --git a/src/daComposant/daAlgorithms/NonLinearLeastSquares.py b/src/daComposant/daAlgorithms/NonLinearLeastSquares.py index 371fd30..9b44908 100644 --- a/src/daComposant/daAlgorithms/NonLinearLeastSquares.py +++ b/src/daComposant/daAlgorithms/NonLinearLeastSquares.py @@ -152,6 +152,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): "LocalOptimization", "DerivativeNeeded", "ParallelDerivativesOnly", + "ConvergenceOnBoth", ), ) diff --git a/src/daComposant/daAlgorithms/ParticleSwarmOptimization.py b/src/daComposant/daAlgorithms/ParticleSwarmOptimization.py index 8ff0219..843d04a 100644 --- a/src/daComposant/daAlgorithms/ParticleSwarmOptimization.py +++ b/src/daComposant/daAlgorithms/ParticleSwarmOptimization.py @@ -191,6 +191,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): "NonLocalOptimization", "DerivativeFree", "ParallelAlgorithm", + "ConvergenceOnNumbers", ), ) diff --git a/src/daComposant/daAlgorithms/QuantileRegression.py b/src/daComposant/daAlgorithms/QuantileRegression.py index 3fc63ce..1c7ae5f 100644 --- a/src/daComposant/daAlgorithms/QuantileRegression.py +++ b/src/daComposant/daAlgorithms/QuantileRegression.py @@ -105,6 +105,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): features=( "LocalOptimization", "DerivativeNeeded", + "ConvergenceOnBoth", ), ) diff --git a/src/daComposant/daAlgorithms/TabuSearch.py b/src/daComposant/daAlgorithms/TabuSearch.py index 643ad63..5b20c81 100644 --- a/src/daComposant/daAlgorithms/TabuSearch.py +++ b/src/daComposant/daAlgorithms/TabuSearch.py @@ -138,6 +138,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): features=( "NonLocalOptimization", "DerivativeFree", + "ConvergenceOnNumbers", ), ) diff --git a/src/daComposant/daAlgorithms/UnscentedKalmanFilter.py b/src/daComposant/daAlgorithms/UnscentedKalmanFilter.py index 1147c35..74e4053 100644 --- a/src/daComposant/daAlgorithms/UnscentedKalmanFilter.py +++ b/src/daComposant/daAlgorithms/UnscentedKalmanFilter.py @@ -147,6 +147,7 @@ class ElementaryAlgorithm(BasicObjects.Algorithm): "LocalOptimization", "DerivativeFree", "ParallelAlgorithm", + "ConvergenceOnStatic", ), ) diff --git a/src/daComposant/daCore/PlatformInfo.py b/src/daComposant/daCore/PlatformInfo.py index b28bd2c..8777c01 100644 --- a/src/daComposant/daCore/PlatformInfo.py +++ b/src/daComposant/daCore/PlatformInfo.py @@ -200,8 +200,10 @@ class PlatformInfo(object): __msg += "\n%s%30s : %s"%(__prefix, "NLopt version", self.getNloptVersion()) __msg += "\n%s%30s : %s"%(__prefix, "MatplotLib version", self.getMatplotlibVersion()) __msg += "\n%s%30s : %s"%(__prefix, "GnuplotPy version", self.getGnuplotVersion()) - __msg += "\n%s%30s : %s"%(__prefix, "Sphinx version", self.getSphinxVersion()) + __msg += "\n" + __msg += "\n%s%30s : %s"%(__prefix, "Pandas version", self.getPandasVersion()) __msg += "\n%s%30s : %s"%(__prefix, "Fmpy version", self.getFmpyVersion()) + __msg += "\n%s%30s : %s"%(__prefix, "Sphinx version", self.getSphinxVersion()) return __msg def getAllInformation(self, __prefix="", __title="Whole system information"): @@ -266,6 +268,15 @@ class PlatformInfo(object): return has_nlopt has_nlopt = property(fget = _has_nlopt) + def _has_pandas(self): + try: + import pandas # noqa: F401 + has_pandas = True + except ImportError: + has_pandas = False + return has_pandas + has_pandas = property(fget = _has_pandas) + def _has_sdf(self): try: import sdf # noqa: F401 @@ -331,14 +342,14 @@ class PlatformInfo(object): return has_models has_models = property(fget = _has_models) - def _has_linkmod(self): + def _has_pst4mod(self): try: - import LinkMod # noqa: F401 - has_linkmod = True + import pst4mod # noqa: F401 + has_pst4mod = True except ImportError: - has_linkmod = False - return has_linkmod - has_linkmod = property(fget = _has_linkmod) + has_pst4mod = False + return has_pst4mod + has_pst4mod = property(fget = _has_pst4mod) # Versions @@ -356,6 +367,19 @@ class PlatformInfo(object): __version = "0.0.0" return __version + def getNloptVersion(self): + "Retourne la version de nlopt disponible" + if self.has_nlopt: + import nlopt + __version = "%s.%s.%s"%( + nlopt.version_major(), + nlopt.version_minor(), + nlopt.version_bugfix(), + ) + else: + __version = "0.0.0" + return __version + def getMatplotlibVersion(self): "Retourne la version de matplotlib disponible" if self.has_matplotlib: @@ -365,6 +389,15 @@ class PlatformInfo(object): __version = "0.0.0" return __version + def getPandasVersion(self): + "Retourne la version de pandas disponible" + if self.has_pandas: + import pandas + __version = pandas.__version__ + else: + __version = "0.0.0" + return __version + def getGnuplotVersion(self): "Retourne la version de gnuplotpy disponible" if self.has_gnuplot: @@ -374,24 +407,11 @@ class PlatformInfo(object): __version = "0.0" return __version - def getSphinxVersion(self): - "Retourne la version de sphinx disponible" - if self.has_sphinx: - import sphinx - __version = sphinx.__version__ - else: - __version = "0.0.0" - return __version - - def getNloptVersion(self): - "Retourne la version de nlopt disponible" - if self.has_nlopt: - import nlopt - __version = "%s.%s.%s"%( - nlopt.version_major(), - nlopt.version_minor(), - nlopt.version_bugfix(), - ) + def getFmpyVersion(self): + "Retourne la version de fmpy disponible" + if self.has_fmpy: + import fmpy + __version = fmpy.__version__ else: __version = "0.0.0" return __version @@ -405,11 +425,11 @@ class PlatformInfo(object): __version = "0.0.0" return __version - def getFmpyVersion(self): - "Retourne la version de fmpy disponible" - if self.has_fmpy: - import fmpy - __version = fmpy.__version__ + def getSphinxVersion(self): + "Retourne la version de sphinx disponible" + if self.has_sphinx: + import sphinx + __version = sphinx.__version__ else: __version = "0.0.0" return __version diff --git a/src/daComposant/daNumerics/pst4mod/__init__.py b/src/daComposant/daNumerics/pst4mod/__init__.py new file mode 100644 index 0000000..a32af42 --- /dev/null +++ b/src/daComposant/daNumerics/pst4mod/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2008-2024 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