Salome HOME
Initial Commit
[modules/adao.git] / src / daComposant / daExternals / ASTER / Building_AD_from_Aster.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    <sequence name="seqdblevec" content="dblevec"/>
13    <type name="string" kind="string"/>
14    <sequence name="stringvec" content="string"/>
15    <container name="DefaultContainer">
16       <property name="container_name" value="FactoryServer"/>
17       <property name="hostname" value="localhost"/>
18    </container>
19    <inline name="Building_B">
20       <script><code><![CDATA[# Construction de la matrice de covariances d'erreurs d'ebauche
21 import numpy
22
23 dimension = len( parametres )
24
25 B  = numpy.matrix(numpy.core.identity(dimension))
26 B = B.A1
27 ]]></code></script>
28       <inport name="parametres" type="pyobj"/>
29       <outport name="B" type="dblevec"/>
30    </inline>
31    <inline name="Building_R">
32       <script><code><![CDATA[# Construction de la matrice de covariances d'erreurs de mesure
33 import numpy
34
35 dimension = len( experiences ) * len( experiences[0] )
36
37 R  = numpy.matrix(numpy.core.identity(dimension))
38 R = R.A1
39 ]]></code></script>
40       <inport name="experiences" type="pyobj"/>
41       <outport name="R" type="dblevec"/>
42    </inline>
43    <inline name="Building_Xb">
44       <script><code><![CDATA[# Script pour extraire l'ebauche comme une liste
45 # et une liste de bornes [min,max]
46
47 dx = 1.e-2 # Increment en pourcent de Xb
48
49 Xb = []
50 dXb = []
51 Bornes = []
52
53 for parametre in parametres:
54     Xb.append( parametre[1] )
55     dXb.append( dx * parametre[1] )
56     Bornes.append( parametre[2:4] )
57 ]]></code></script>
58       <inport name="parametres" type="pyobj"/>
59       <outport name="Xb" type="dblevec"/>
60       <outport name="Bornes" type="seqdblevec"/>
61       <outport name="dXb" type="dblevec"/>
62    </inline>
63    <inline name="Building_Yo">
64       <script><code><![CDATA[# Script pour extraire l'es mesures/observations et leur nom
65 # comme une liste
66
67 if len(calcul) != len(experiences):
68     raise ValueError("Les nombres de variables calculees et observees doient etre les memes")
69
70 if len(experiences) >=1:
71     nb_observations_par_experience = len( experiences[0] )
72
73 Yo     = []
74 Nom_Yo = []
75
76 for i in range( len(experiences) ):
77     Nom_Yo.append( calcul[i][2] )
78     if len( experiences[i] ) != nb_observations_par_experience:
79         raise ValueError("Le nombre de mesures par serie experimentale doit etre constant egal a %i mais la serie %i est longue de %i"%(nb_observations_par_experience,i,len(experiences[i])))
80     for observation in experiences[i]:
81         Yo.append( observation[1] )
82 ]]></code></script>
83       <inport name="calcul" type="pyobj"/>
84       <inport name="experiences" type="pyobj"/>
85       <outport name="Yo" type="dblevec"/>
86       <outport name="Nom_Yo" type="stringvec"/>
87    </inline>
88    <inline name="Entrees du calcul AD">
89       <script><code><![CDATA[import numpy
90
91 print
92 print "### ============================================================="
93 print "### Verification des arguments fabriques pour passer d'Aster a AD"
94 print
95 print "    Tailles et types :"
96 print "      de Xb",len(Xb),type(Xb)
97 print "      de Yo",len(Yo),type(Yo)
98 print "      de B ",len(B),type(B)
99 print "      de R ",len(R),type(R)
100 print "      de H ",len(H),type(H)
101 print
102 print "    Verification de remise a l'echelle :"
103 dimensionXb = len( Xb )
104 dimensionYo = len( Yo )
105 print "      de B"
106 numpyB = numpy.matrix( B, numpy.float ).reshape((dimensionXb,dimensionXb))
107 print "      de R"
108 numpyR = numpy.matrix( R, numpy.float ).reshape((dimensionYo,dimensionYo))
109 print "      de H"
110 numpyH = numpy.matrix( H, numpy.float ).reshape((dimensionYo,dimensionXb))
111 print "### ============================================================="
112 print
113 ]]></code></script>
114       <inport name="Xb" type="dblevec"/>
115       <inport name="Yo" type="dblevec"/>
116       <inport name="B" type="dblevec"/>
117       <inport name="R" type="dblevec"/>
118       <inport name="H" type="dblevec"/>
119       <outport name="Xb" type="dblevec"/>
120       <outport name="Yo" type="dblevec"/>
121       <outport name="B" type="dblevec"/>
122       <outport name="R" type="dblevec"/>
123       <outport name="H" type="dblevec"/>
124    </inline>
125    <inline name="Sorties du calcul AD">
126       <script><code><![CDATA[import numpy
127 print "Diagnostics de sortie de test :"
128 print "  Remise en numpy des resultats"
129 Xa = numpy.array(xa)
130 Xb = numpy.array(xb)
131 dimensionXb = len( Xb )
132 dimensionYo = len( Yo )
133 print "Verification de remise a l'echelle de B, R et H"
134 B = numpy.matrix( B, numpy.float ).reshape((dimensionXb,dimensionXb))
135 R = numpy.matrix( R, numpy.float ).reshape((dimensionYo,dimensionYo))
136 H = numpy.matrix( H, numpy.float ).reshape((dimensionYo,dimensionXb))
137 I = numpy.matrix(numpy.core.identity(dimensionYo))
138 deltaB = Xa - Xb
139 deltaA = (Yo - numpy.dot(H,Xa)).A1
140 deltaI = (Yo - numpy.dot(H,Xb)).A1
141 print "Calcul de LS"
142 print "deltaA",deltaA
143 LS = float(numpy.dot(deltaA, deltaA))
144 print "Calcul de LSI"
145 LSI = float(numpy.dot(deltaI, deltaI))
146 print "Calcul de J"
147 J = float( numpy.dot(deltaB, numpy.dot(B,deltaB).A1) + numpy.dot(deltaA, numpy.dot(R,deltaA).A1) )
148 print "Calcul de JI"
149 JI = float( numpy.dot(deltaI, numpy.dot(R,deltaI).A1) )
150
151 print
152 print "Sortie du test :"
153 print "  Xb =",Xb
154 print "  Xa =",Xa
155 print "Difference Xa-Xb :"
156 print "  Xa-Xb      =",deltaB
157 print "  max(Xa-Xb) =",max(deltaB)
158 print "  min(Xa-Xb) =",min(deltaB)
159 print "Fonctionnelles d'ecarts :"
160 print "  Initialement : J  =",JI
161 print "                 LS =",LSI
162 print "  Analyse      : J  =",J,"(Baise de %i%s)"%(100.*(JI-J)/J,"%")
163 print "                 LS =",LS,"(Baise de %i%s)"%(100.*(LSI-LS)/LSI,"%")
164 print "Autres informations :"
165 print "  d  =",Innovation
166 print "  A  =",A
167 print
168 ]]></code></script>
169       <inport name="xa" type="dblevec"/>
170       <inport name="A" type="dblevec"/>
171       <inport name="Innovation" type="dblevec"/>
172       <inport name="xb" type="dblevec"/>
173       <inport name="Yo" type="dblevec"/>
174       <inport name="B" type="dblevec"/>
175       <inport name="R" type="dblevec"/>
176       <inport name="H" type="dblevec"/>
177    </inline>
178    <parameter>
179       <tonode>Building_B</tonode><toport>parametres</toport>
180       <value><objref>(lp1
181 .</objref></value>
182    </parameter>
183    <parameter>
184       <tonode>Building_Xb</tonode><toport>parametres</toport>
185       <value><objref>(lp1
186 .</objref></value>
187    </parameter>
188    <parameter>
189       <tonode>Building_Yo</tonode><toport>calcul</toport>
190       <value><objref>(lp1
191 .</objref></value>
192    </parameter>
193    <parameter>
194       <tonode>Building_Yo</tonode><toport>experiences</toport>
195       <value><objref>(lp1
196 .</objref></value>
197    </parameter>
198    <parameter>
199       <tonode>Sorties du calcul AD</tonode><toport>xa</toport>
200       <value><array><data>
201 </data></array></value>
202    </parameter>
203    <parameter>
204       <tonode>Sorties du calcul AD</tonode><toport>A</toport>
205       <value><array><data>
206 </data></array></value>
207    </parameter>
208    <parameter>
209       <tonode>Sorties du calcul AD</tonode><toport>Innovation</toport>
210       <value><array><data>
211 </data></array></value>
212    </parameter>
213    <parameter>
214       <tonode>Sorties du calcul AD</tonode><toport>xb</toport>
215       <value><array><data>
216 </data></array></value>
217    </parameter>
218    <parameter>
219       <tonode>Sorties du calcul AD</tonode><toport>Yo</toport>
220       <value><array><data>
221 </data></array></value>
222    </parameter>
223    <parameter>
224       <tonode>Sorties du calcul AD</tonode><toport>B</toport>
225       <value><array><data>
226 </data></array></value>
227    </parameter>
228    <parameter>
229       <tonode>Sorties du calcul AD</tonode><toport>R</toport>
230       <value><array><data>
231 </data></array></value>
232    </parameter>
233    <parameter>
234       <tonode>Sorties du calcul AD</tonode><toport>H</toport>
235       <value><array><data>
236 </data></array></value>
237    </parameter>
238    <parameter>
239       <tonode>Building_R</tonode><toport>experiences</toport>
240       <value><objref>(lp1
241 .</objref></value>
242    </parameter>
243    <parameter>
244       <tonode>Entrees du calcul AD</tonode><toport>Xb</toport>
245       <value><array><data>
246 </data></array></value>
247    </parameter>
248    <parameter>
249       <tonode>Entrees du calcul AD</tonode><toport>Yo</toport>
250       <value><array><data>
251 </data></array></value>
252    </parameter>
253    <parameter>
254       <tonode>Entrees du calcul AD</tonode><toport>B</toport>
255       <value><array><data>
256 </data></array></value>
257    </parameter>
258    <parameter>
259       <tonode>Entrees du calcul AD</tonode><toport>R</toport>
260       <value><array><data>
261 </data></array></value>
262    </parameter>
263    <parameter>
264       <tonode>Entrees du calcul AD</tonode><toport>H</toport>
265       <value><array><data>
266 </data></array></value>
267    </parameter>
268    <presentation name="Building_B" x="9" y="81.5" width="227.5" height="110"/>
269    <presentation name="Building_Xb" x="9" y="233" width="227.5" height="168"/>
270    <presentation name="Building_Yo" x="249" y="231" width="227.5" height="139"/>
271    <presentation name="Sorties du calcul AD" x="246" y="432" width="223" height="313"/>
272    <presentation name="Building_R" x="250" y="84.5" width="227.5" height="110"/>
273    <presentation name="Entrees du calcul AD" x="9" y="429" width="227.5" height="226"/>
274    <presentation name="__ROOT__" x="0" y="0" width="487" height="754"/>
275 </proc>