]> SALOME platform Git repositories - modules/adao.git/blob - src/daComposant/daExternals/YACS/Algorithmes_AD.xml
Salome HOME
Initial Commit
[modules/adao.git] / src / daComposant / daExternals / YACS / Algorithmes_AD.xml
1 <?xml version='1.0' encoding='iso-8859-1' ?>
2 <proc>
3    <property name="DefaultStudyID" value="1"/>
4    <type name="bool" kind="bool"/>
5    <sequence name="boolvec" content="bool"/>
6    <type name="double" kind="double"/>
7    <sequence name="dblevec" content="double"/>
8    <objref name="file" id="file"/>
9    <type name="int" kind="int"/>
10    <sequence name="intvec" content="int"/>
11    <objref name="pyobj" id="python:obj:1.0"/>
12    <type name="string" kind="string"/>
13    <sequence name="stringvec" content="string"/>
14    <container name="DefaultContainer">
15       <property name="container_name" value="FactoryServer"/>
16       <property name="hostname" value="localhost"/>
17    </container>
18    <inline name="BLUE par matrices">
19       <function name="algorithm">
20          <code><![CDATA[import sys, os
21 sys.path.insert(0, "../../Sources/daCore")
22 sys.path.insert(0, "../../ComposantAD/daCore")
23 #sys.path.insert(0, os.path.join(os.environ["HOME"],"SALOME5/supplements_JPA/ComposantAD/daCore"))
24
25 import numpy
26 from AssimilationStudy import AssimilationStudy
27
28 def algorithm(Yo, B, R, H, Xb):
29     #
30     # Remise en place des matrices
31     # -------------------
32     dimensionXb = len( Xb )
33     dimensionYo = len( Yo )
34     B = numpy.matrix( B, numpy.float ).reshape((dimensionXb,dimensionXb))
35     R = numpy.matrix( R, numpy.float ).reshape((dimensionYo,dimensionYo))
36     H = numpy.matrix( H, numpy.float ).reshape((dimensionYo,dimensionXb))
37     #
38     # Analyse
39     # -------
40     ADD = AssimilationStudy()
41     ADD.setBackground         (asVector     = Xb )
42     ADD.setBackgroundError    (asCovariance = B )
43     ADD.setObservation        (asVector     = Yo )
44     ADD.setObservationError   (asCovariance = R )
45     ADD.setObservationOperator(asMatrix     = H )
46     #
47     ADD.setAlgorithm(choice="Blue")
48     #
49     ADD.analyze()
50     #
51     Xa = ADD.get("Analysis").valueserie(0)
52     Innovation = ADD.get("Innovation").valueserie(0)
53     A = []
54     #
55     return Xa, A, Innovation
56 ]]></code>
57       </function>
58       <inport name="Yo" type="dblevec"/>
59       <inport name="B" type="dblevec"/>
60       <inport name="R" type="dblevec"/>
61       <inport name="H" type="dblevec"/>
62       <inport name="Xb" type="dblevec"/>
63       <outport name="Xa" type="dblevec"/>
64       <outport name="A" type="dblevec"/>
65       <outport name="Innovation" type="dblevec"/>
66    </inline>
67    <inline name="3D-VAR par matrices">
68       <function name="algorithm">
69          <code><![CDATA[import sys, os
70 sys.path.insert(0, "../../Sources/daCore")
71 sys.path.insert(0, "../../ComposantAD/daCore")
72 #sys.path.insert(0, os.path.join(os.environ["HOME"],"SALOME5/supplements_JPA/ComposantAD/daCore"))
73
74 import numpy
75 from AssimilationStudy import AssimilationStudy
76
77 def algorithm(Yo, B, R, H, Xb):
78     #
79     # Remise en place des matrices
80     # -------------------
81     dimensionXb = len( Xb )
82     dimensionYo = len( Yo )
83     B = numpy.matrix( B, numpy.float ).reshape((dimensionXb,dimensionXb))
84     R = numpy.matrix( R, numpy.float ).reshape((dimensionYo,dimensionYo))
85     H = numpy.matrix( H, numpy.float ).reshape((dimensionYo,dimensionXb))
86     #
87     # Analyse
88     # -------
89     ADD = AssimilationStudy()
90     ADD.setBackground         (asVector     = Xb )
91     ADD.setBackgroundError    (asCovariance = B )
92     ADD.setObservation        (asVector     = Yo )
93     ADD.setObservationError   (asCovariance = R )
94     ADD.setObservationOperator(asMatrix     = H )
95     #
96     ADD.setAlgorithm(choice="3DVAR")
97     #
98     ADD.analyze()
99     #
100     Xa = ADD.get("Analysis").valueserie(0)
101     Innovation = ADD.get("Innovation").valueserie(0)
102     A = []
103     #
104     return Xa, A, Innovation
105 ]]></code>
106       </function>
107       <inport name="Yo" type="dblevec"/>
108       <inport name="B" type="dblevec"/>
109       <inport name="R" type="dblevec"/>
110       <inport name="H" type="dblevec"/>
111       <inport name="Xb" type="dblevec"/>
112       <outport name="Xa" type="dblevec"/>
113       <outport name="A" type="dblevec"/>
114       <outport name="Innovation" type="dblevec"/>
115    </inline>
116    <inline name="3D-VAR par fonctions">
117       <function name="algorithm">
118          <code><![CDATA[import sys, os
119 sys.path.insert(0, "../../Sources/daCore")
120 sys.path.insert(0, "../../ComposantAD/daCore")
121 #sys.path.insert(0, os.path.join(os.environ["HOME"],"SALOME5/supplements_JPA/ComposantAD/daCore"))
122
123 import numpy
124 from AssimilationStudy import AssimilationStudy
125
126 def algorithm( Yo, B, R, FunctionH, TangentH, AdjointH, Xb, Bounds ):
127     #
128     # Remise en place des matrices
129     # -------------------
130     dimensionXb = len( Xb )
131     dimensionYo = len( Yo )
132     B = numpy.matrix( B, numpy.float ).reshape((dimensionXb,dimensionXb))
133     R = numpy.matrix( R, numpy.float ).reshape((dimensionYo,dimensionYo))
134     #
135     # Analyse
136     # -------
137     ADD = AssimilationStudy()
138     ADD.setBackground         (asVector     = Xb )
139     ADD.setBackgroundError    (asCovariance = B )
140     ADD.setObservation        (asVector     = Yo )
141     ADD.setObservationError   (asCovariance = R )
142     ADD.setObservationOperator(asFunction   = {"Direct":FunctionH,
143                                                "Tangent":TangentH,
144                                                "Adjoint":AdjointH} )
145     #
146     ADD.setAlgorithm(choice="3DVAR")
147     ADD.setAlgorithmParameters(asDico={
148         "Minimizer":"LBFGSB",
149         "Bounds"   :Bounds,
150         })
151     #
152     ADD.analyze()
153     #
154     Xa = ADD.get("Analysis").valueserie(0)
155     Innovation = ADD.get("Innovation").valueserie(0)
156     A = []
157     #
158     return Xa, A, Innovation
159 ]]></code>
160       </function>
161       <inport name="Yo" type="dblevec"/>
162       <inport name="B" type="dblevec"/>
163       <inport name="R" type="dblevec"/>
164       <inport name="FunctionH" type="pyobj"/>
165       <inport name="TangentH" type="pyobj"/>
166       <inport name="AdjointH" type="pyobj"/>
167       <inport name="Xb" type="dblevec"/>
168       <inport name="Bounds" type="pyobj"/>
169       <outport name="Xa" type="dblevec"/>
170       <outport name="A" type="dblevec"/>
171       <outport name="Innovation" type="dblevec"/>
172    </inline>
173    <parameter>
174       <tonode>BLUE par matrices</tonode><toport>Yo</toport>
175       <value><array><data>
176 </data></array></value>
177    </parameter>
178    <parameter>
179       <tonode>BLUE par matrices</tonode><toport>B</toport>
180       <value><array><data>
181 </data></array></value>
182    </parameter>
183    <parameter>
184       <tonode>BLUE par matrices</tonode><toport>R</toport>
185       <value><array><data>
186 </data></array></value>
187    </parameter>
188    <parameter>
189       <tonode>BLUE par matrices</tonode><toport>H</toport>
190       <value><array><data>
191 </data></array></value>
192    </parameter>
193    <parameter>
194       <tonode>BLUE par matrices</tonode><toport>Xb</toport>
195       <value><array><data>
196 </data></array></value>
197    </parameter>
198    <parameter>
199       <tonode>3D-VAR par matrices</tonode><toport>Yo</toport>
200       <value><array><data>
201 </data></array></value>
202    </parameter>
203    <parameter>
204       <tonode>3D-VAR par matrices</tonode><toport>B</toport>
205       <value><array><data>
206 </data></array></value>
207    </parameter>
208    <parameter>
209       <tonode>3D-VAR par matrices</tonode><toport>R</toport>
210       <value><array><data>
211 </data></array></value>
212    </parameter>
213    <parameter>
214       <tonode>3D-VAR par matrices</tonode><toport>H</toport>
215       <value><array><data>
216 </data></array></value>
217    </parameter>
218    <parameter>
219       <tonode>3D-VAR par matrices</tonode><toport>Xb</toport>
220       <value><array><data>
221 </data></array></value>
222    </parameter>
223    <parameter>
224       <tonode>3D-VAR par fonctions</tonode><toport>Yo</toport>
225       <value><array><data>
226 </data></array></value>
227    </parameter>
228    <parameter>
229       <tonode>3D-VAR par fonctions</tonode><toport>B</toport>
230       <value><array><data>
231 </data></array></value>
232    </parameter>
233    <parameter>
234       <tonode>3D-VAR par fonctions</tonode><toport>R</toport>
235       <value><array><data>
236 </data></array></value>
237    </parameter>
238    <parameter>
239       <tonode>3D-VAR par fonctions</tonode><toport>Xb</toport>
240       <value><array><data>
241 </data></array></value>
242    </parameter>
243    <parameter>
244       <tonode>3D-VAR par fonctions</tonode><toport>Bounds</toport>
245       <value><objref>(lp1
246 .</objref></value>
247    </parameter>
248    <presentation name="BLUE par matrices" x="9" y="80.5" width="227.5" height="226"/>
249    <presentation name="3D-VAR par matrices" x="237.5" y="80.5" width="227.5" height="226"/>
250    <presentation name="3D-VAR par fonctions" x="465.5" y="80.5" width="227.5" height="313"/>
251    <presentation name="__ROOT__" x="0" y="0" width="702" height="402.5"/>
252 </proc>