# -*- coding: utf-8 -*-
#
-# Copyright (C) 2008-2019 EDF R&D
+# Copyright (C) 2008-2022 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
# Author: Jean-Philippe Argaud, jean-philippe.argaud@edf.fr, EDF R&D
"""
- Modèles généraux pour les observers, le post-processing
+ Modèles généraux pour les observers, le post-processing.
"""
__author__ = "Jean-Philippe ARGAUD"
__all__ = ["ObserverTemplates"]
__keys = sorted(self.__values.keys())
return __keys
- # def has_key(self, name):
- # "D.has_key(k) -> True if D has a key k, else False"
- # return name in self.__values
-
def __contains__(self, name):
"D.__contains__(k) -> True if D has a key k, else False"
return name in self.__values
ObserverTemplates.store(
name = "ValuePrinterSaverAndGnuPlotter",
content = """print(str(info)+" "+str(var[-1]))\nimport numpy, re\nv=numpy.array(var[-1], ndmin=1)\nglobal istep\ntry:\n istep += 1\nexcept:\n istep = 0\nf='/tmp/value_%s_%05i.txt'%(info,istep)\nf=re.sub('\\s','_',f)\nprint('Value saved in \"%s\"'%f)\nnumpy.savetxt(f,v)\nimport Gnuplot\nglobal ifig,gp\ntry:\n ifig += 1\n gp(' set style data lines')\nexcept:\n ifig = 0\n gp = Gnuplot.Gnuplot(persist=1)\n gp(' set style data lines')\ngp('set title \"%s (Figure %i)\"'%(info,ifig))\ngp.plot( Gnuplot.Data( v, with_='lines lw 2' ) )""",
- fr_FR = "Imprime sur la sortie standard et, en même temps, enregistre dans un fichier du répertoire '/tmp' et affiche graphiquement la valeur courante de la variable ",
+ fr_FR = "Imprime sur la sortie standard et, en même temps, enregistre dans un fichier du répertoire '/tmp' et affiche graphiquement la valeur courante de la variable",
en_EN = "Print on standard output and, in the same, time save in a file of the '/tmp' directory and graphically plot the current value of the variable",
order = "next",
)
)
ObserverTemplates.store(
name = "ValueL2Norm",
- content = """import numpy\nv = numpy.matrix( numpy.ravel( var[-1] ) )\nprint(str(info)+" "+str(float( numpy.linalg.norm(v) )))""",
+ content = """import numpy\nv = numpy.ravel( var[-1] )\nprint(str(info)+" "+str(float( numpy.linalg.norm(v) )))""",
fr_FR = "Imprime sur la sortie standard la norme L2 de la valeur courante de la variable",
en_EN = "Print on standard output the L2 norm of the current value of the variable",
order = "next",
)
ObserverTemplates.store(
name = "ValueRMS",
- content = """import numpy\nv = numpy.matrix( numpy.ravel( var[-1] ) )\nprint(str(info)+" "+str(float( numpy.sqrt((1./v.size)*(v*v.T)) )))""",
+ content = """import numpy\nv = numpy.ravel( var[-1] )\nprint(str(info)+" "+str(float( numpy.sqrt((1./v.size)*numpy.dot(v,v)) )))""",
fr_FR = "Imprime sur la sortie standard la racine de la moyenne des carrés (RMS), ou moyenne quadratique, de la valeur courante de la variable",
en_EN = "Print on standard output the root mean square (RMS), or quadratic mean, of the current value of the variable",
order = "next",
)
+# ==============================================================================
+UserPostAnalysisTemplates = TemplateStorage()
+
+UserPostAnalysisTemplates.store(
+ name = "AnalysisPrinter",
+ content = """print('# Post-analysis')\nimport numpy\nxa=ADD.get('Analysis')[-1]\nprint('Analysis',xa)""",
+ fr_FR = "Imprime sur la sortie standard la valeur optimale",
+ en_EN = "Print on standard output the optimal value",
+ order = "next",
+ )
+UserPostAnalysisTemplates.store(
+ name = "AnalysisSaver",
+ content = """print('# Post-analysis')\nimport numpy\nxa=ADD.get('Analysis')[-1]\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)""",
+ fr_FR = "Enregistre la valeur optimale dans un fichier du répertoire '/tmp' nommé 'analysis.txt'",
+ en_EN = "Save the optimal value in a file of the '/tmp' directory named 'analysis.txt'",
+ order = "next",
+ )
+UserPostAnalysisTemplates.store(
+ name = "AnalysisPrinterAndSaver",
+ content = """print('# Post-analysis')\nimport numpy\nxa=ADD.get('Analysis')[-1]\nprint('Analysis',xa)\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)""",
+ fr_FR = "Imprime sur la sortie standard et, en même temps enregistre dans un fichier du répertoire '/tmp', la valeur optimale",
+ en_EN = "Print on standard output and, in the same time save in a file of the '/tmp' directory, the optimal value",
+ order = "next",
+ )
+UserPostAnalysisTemplates.store(
+ name = "AnalysisSeriePrinter",
+ content = """print('# Post-analysis')\nimport numpy\nxa=ADD.get('Analysis')\nprint('Analysis',xa)""",
+ fr_FR = "Imprime sur la sortie standard la série des valeurs optimales",
+ en_EN = "Print on standard output the optimal value series",
+ order = "next",
+ )
+UserPostAnalysisTemplates.store(
+ name = "AnalysisSerieSaver",
+ content = """print('# Post-analysis')\nimport numpy\nxa=ADD.get('Analysis')\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)""",
+ fr_FR = "Enregistre la série des valeurs optimales dans un fichier du répertoire '/tmp' nommé 'analysis.txt'",
+ en_EN = "Save the optimal value series in a file of the '/tmp' directory named 'analysis.txt'",
+ order = "next",
+ )
+UserPostAnalysisTemplates.store(
+ name = "AnalysisSeriePrinterAndSaver",
+ content = """print('# Post-analysis')\nimport numpy\nxa=ADD.get('Analysis')\nprint('Analysis',xa)\nf='/tmp/analysis.txt'\nprint('Analysis saved in \"%s\"'%f)\nnumpy.savetxt(f,xa)""",
+ fr_FR = "Imprime sur la sortie standard et, en même temps enregistre dans un fichier du répertoire '/tmp', la série des valeurs optimales",
+ en_EN = "Print on standard output and, in the same time save in a file of the '/tmp' directory, the optimal value series",
+ order = "next",
+ )
+
# ==============================================================================
if __name__ == "__main__":
print('\n AUTODIAGNOSTIC\n')