Xcos documentation: improve the rendering for data structures
[scilab.git] / scilab / modules / xcos / help / en_US / scilab_data_structures / scicos_sim.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3  * Scicos
4  * 
5  * Copyright (C) INRIA - METALAU Project <scicos@inria.fr> (HTML version)
6  * Copyright (C) DIGITEO - Scilab Consortium (XML Docbook version)
7  * 
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  *  (at your option) any later version.
12  * 
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  * 
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
21  * 
22  * See the file ./license.txt
23  -->
24 <refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" xmlns:scilab="http://www.scilab.org" xml:id="scicos_sim">
25     <refnamediv>
26         <refname>scicos_sim</refname>
27         <refpurpose>Define a sim structure</refpurpose>
28     </refnamediv>
29     <refsection id="Module_scicos_sim">
30         <title>Module</title>
31         <itemizedlist>
32             <listitem>
33                 <para>
34                     <link linkend="xcos">xcos</link>
35                 </para>
36             </listitem>
37         </itemizedlist>
38     </refsection>
39     <refsection id="sim_scicos_sim">
40         <title>sim</title>
41         <para>
42             Static arrays coming from the result of the compilation. That arrays does not evolve during the simulation.
43         </para>
44         <para>
45             These information are used both by the simulator and the code generator.
46         </para>
47         <para>
48             Type : scilab tlist of type <code>"scs"</code> with fields :
49             <link linkend="scicos_cpr_sim_funs">funs</link>, 
50             <link linkend="scicos_cpr_sim_xptr">xptr</link>, 
51             <link linkend="scicos_cpr_sim_zptr">zptr</link>, 
52             <link linkend="scicos_cpr_sim_ozptr">ozptr</link>, 
53             <link linkend="scicos_cpr_sim_zcptr">zcptr</link>, 
54             <link linkend="scicos_cpr_sim_inpptr">inpptr</link>, 
55             <link linkend="scicos_cpr_sim_outptr">outptr</link>, 
56             <link linkend="scicos_cpr_sim_inplnk">inplnk</link>, 
57             <link linkend="scicos_cpr_sim_outlnk">outlnk</link>, 
58             <link linkend="scicos_cpr_sim_rpar">rpar</link>, 
59             <link linkend="scicos_cpr_sim_rpptr">rpptr</link>, 
60             <link linkend="scicos_cpr_sim_ipar">ipar</link>, 
61             <link linkend="scicos_cpr_sim_ipptr">ipptr</link>, 
62             <link linkend="scicos_cpr_sim_opar">opar</link>, 
63             <link linkend="scicos_cpr_sim_opptr">opptr</link>, 
64             <link linkend="scicos_cpr_sim_clkptr">clkptr</link>, 
65             <link linkend="scicos_cpr_sim_ordptr">ordptr</link>, 
66             <link linkend="scicos_cpr_sim_execlk">execlk</link>, 
67             <link linkend="scicos_cpr_sim_ordclk">ordclk</link>, 
68             <link linkend="scicos_cpr_sim_cord">cord</link>, 
69             <link linkend="scicos_cpr_sim_oord">oord</link>, 
70             <link linkend="scicos_cpr_sim_zord">zord</link>, 
71             <link linkend="scicos_cpr_sim_critev">critev</link>, 
72             <link linkend="scicos_cpr_sim_nb">nb</link>, 
73             <link linkend="scicos_cpr_sim_ztyp">ztyp</link>, 
74             <link linkend="scicos_cpr_sim_nblk">nblk</link>, 
75             <link linkend="scicos_cpr_sim_ndcblk">ndcblk</link>, 
76             <link linkend="scicos_cpr_sim_subscr">subscr</link>, 
77             <link linkend="scicos_cpr_sim_funtyp">funtyp</link>, 
78             <link linkend="scicos_cpr_sim_iord">iord</link>, 
79             <link linkend="scicos_cpr_sim_labels">labels</link>, 
80             <link linkend="scicos_cpr_sim_modptr">modptr</link> and 
81             <link linkend="scicos_cpr_sim_uids">uids</link>.
82         </para>
83         <refsect2 id="scicos_cpr_sim_funs">
84             <title>funs</title>
85             <para>A list containing names of the computational functions or scilab functions.</para>
86             <para>
87                 Size : number of blocks.
88             </para>
89             <para>
90                 Type : list of strings and/or scilab function.
91             </para>
92         </refsect2>
93         <refsect2 id="scicos_cpr_sim_xptr">
94             <title>xptr</title>
95             <para>
96                 A vector pointer to the continuous time state register <code>x</code>. The continuous-time state of block <code>i</code> is <code>state.x(sim.xptr(i):sim.xptr(i+1)-1)</code>.
97             </para>
98             <para>
99                 Size : number of blocks + 1.
100             </para>
101             <para>
102                 Type : column vector of integers.
103             </para>
104         </refsect2>
105         <refsect2 id="scicos_cpr_sim_zptr">
106             <title>zptr</title>
107             <para>
108                 A vector pointer to the discrete time state register <code>z</code>. The discrete-time state of block <code>i</code> is <code>state.z(sim.zptr(i):sim.zptr(i+1)-1)</code>.
109             </para>
110             <para>
111                 Size : number of blocks + 1.
112             </para>
113             <para>
114                 Type : column vector of integers.
115             </para>
116         </refsect2>
117         <refsect2 id="scicos_cpr_sim_ozptr">
118             <title>ozptr</title>
119             <para>
120                 A vector pointer to the object discrete state register oz. The object discrete state of block <code>i</code> is <code>state.oz(sim.ozptr(i):sim.ozptr(i+1)-1)</code>.
121             </para>
122             <para>
123                 Size : number of blocks + 1.
124             </para>
125             <para>
126                 Type : column vector of integers.
127             </para>
128         </refsect2>
129         <refsect2 id="scicos_cpr_sim_zcptr">
130             <title>zcptr</title>
131             <para>A vector pointer to the zero-crossing surfaces register. That vector gives by block the used number of the zero-crossing.</para>
132             <para>
133                 Size : number of blocks + 1.
134             </para>
135             <para>
136                 Type : column vector of integers.
137             </para>
138         </refsect2>
139         <refsect2 id="scicos_cpr_sim_inpptr">
140             <title>inpptr</title>
141             <para>
142                 <code>(sim.inpptr(i+1)-sim.inpptr(i))</code> gives the number of regular input ports of the <code>i</code> block.
143             </para>
144             <para>
145                 <code>inpptr(i)</code> points to the beginning of <code>i</code> th block inputs within the indirection table <code>inplnk</code>.
146             </para>
147             <para>
148                 Size : number of blocks + 1.
149             </para>
150             <para>
151                 Type : column vector of integers.
152             </para>
153         </refsect2>
154         <refsect2 id="scicos_cpr_sim_outptr">
155             <title>outptr</title>
156             <para>
157                 <code>(sim.outptr(i+1)-sim.outptr(i))</code> gives the number of regular output ports of the <code>i</code> block.
158             </para>
159             <para>
160                 <code>outptr(i)</code> points to the beginning of <code>i</code> th block outputs within the indirection table <code>outlnk</code>.
161             </para>
162             <para>
163                 Size : number of blocks + 1.
164             </para>
165             <para>
166                 Type : column vector of integers.
167             </para>
168         </refsect2>
169         <refsect2 id="scicos_cpr_sim_inplnk">
170             <title>inplnk</title>
171             <para>
172                 <code>(cpr.sim.inplnk(cpr.sim.inpptr(i)-1+j))</code> is the index of the link connected to the <code>j</code> th input port of the <code>i</code> th block where <code>j</code> goes from <code>1</code> to <code>(cpr.sim.inpptr(i+1)-cpr.sim.inpptr(i))</code>.
173             </para>
174             <para>
175                 Size : total number of regular input port.
176             </para>
177             <para>
178                 Type : column vector of integers.
179             </para>
180         </refsect2>
181         <refsect2 id="scicos_cpr_sim_outlnk">
182             <title>outlnk</title>
183             <para>
184                 <code>(cpr.sim.outlnk(cpr.sim.outptr(i)-1+j))</code> is the index of the link connected to the <code>j</code> th output port of the <code>i</code> th block where <code>j</code> goes from <code>1</code> to <code>(cpr.sim.outptr(i+1)-cpr.sim.outptr(i))</code>.
185             </para>
186             <para>
187                 Size : total number of regular output port.
188             </para>
189             <para>
190                 Type : column vector of integers.
191             </para>
192         </refsect2>
193         <refsect2 id="scicos_cpr_sim_rpar">
194             <title>rpar</title>
195             <para>Vector of real parameters that is obtained by concatenating the real parameters registers of all the blocks.</para>
196             <para>
197                 Size : total number of real parameters.
198             </para>
199             <para>
200                 Type : column vector of real numbers.
201             </para>
202         </refsect2>
203         <refsect2 id="scicos_cpr_sim_rpptr">
204             <title>rpptr</title>
205             <para>
206                 A vector pointer to the real parameters register <code>rpar</code>. The real parameters of block <code>i</code> are <code>sim.rpar(sim.rpptr(i):sim.rpptr(i+1)-1)</code>.
207             </para>
208             <para>
209                 Size : number of blocks + 1.
210             </para>
211             <para>
212                 Type : column vector of integer.
213             </para>
214         </refsect2>
215         <refsect2 id="scicos_cpr_sim_ipar">
216             <title>ipar</title>
217             <para>Vector of integer parameters that is obtained by concatenating the integer parameters registers of all the blocks.</para>
218             <para>
219                 Size : total number of integer parameters.
220             </para>
221             <para>
222                 Type : column vector of integer.
223             </para>
224         </refsect2>
225         <refsect2 id="scicos_cpr_sim_ipptr">
226             <title>ipptr</title>
227             <para>
228                 A vector pointer to the integer parameters register <code>ipar</code>. The integer parameters of block <code>i</code> are <code>sim.ipar(sim.ipptr(i):sim.ipptr(i+1)-1)</code>.
229             </para>
230             <para>
231                 Size : number of blocks + 1.
232             </para>
233             <para>
234                 Type : column vector of real numbers.
235             </para>
236         </refsect2>
237         <refsect2 id="scicos_cpr_sim_opar">
238             <title>opar</title>
239             <para>List of object parameters that is obtained by concatenating the list of object parameters of all the blocks.</para>
240             <para>
241                 Size : total number of object parameters.
242             </para>
243             <para>
244                 Type : list of scilab objects.
245             </para>
246         </refsect2>
247         <refsect2 id="scicos_cpr_sim_opptr">
248             <title>opptr</title>
249             <para>
250                 A vector pointer to the object parameters list <code>opar</code>. The object parameters of block <code>i</code> are <code>sim.opar(sim.opptr(i):sim.opptr(i+1)-1)</code>.
251             </para>
252             <para>
253                 Size : number of blocks + 1.
254             </para>
255             <para>
256                 Type : column vector of integers.
257             </para>
258         </refsect2>
259         <refsect2 id="scicos_cpr_sim_clkptr">
260             <title>clkptr</title>
261             <para>A vector pointer to output activation ports.</para>
262             <para>
263                 <code>(cpr.sim.clkptr(i):cpr.sim.clkptr(i+1)-1)</code> gives the number of output event ports of the block <code>i</code>.
264             </para>
265             <para>
266                 Size : number of blocks + 1.
267             </para>
268             <para>
269                 Type : column vector of integers.
270             </para>
271         </refsect2>
272         <refsect2 id="scicos_cpr_sim_ordptr">
273             <title>ordptr</title>
274             <para>
275                 A vector pointer to <varname>ordclk</varname> designating the part of ordclk corresponding to a given activation.
276             </para>
277             <para>
278                 <code>(cpr.sim.ordptr(i):cpr.sim.ordptr(i+1)-1)</code> points to the region within <code>ordclk</code> indicates the number of blocks activated by the output event ports numbered <code>i</code>.
279             </para>
280             <para>
281                 Size : number of sources of activation + 1.
282             </para>
283             <para>
284                 Type : column vector of integers.
285             </para>
286         </refsect2>
287         <refsect2 id="scicos_cpr_sim_execlk">
288             <title>execlk</title>
289             <para>Unused.</para>
290             <para>
291                 Size : -
292                 Type : matrix of real.
293             </para>
294         </refsect2>
295         <refsect2 id="scicos_cpr_sim_ordclk">
296             <title>ordclk</title>
297             <para>A matrix associated to blocks activated by output activation ports. The first column contains the block number, and the second, the event code by which the block should be called.</para>
298             <para>
299                 Size : total number of blocks summed by source of activations.
300             </para>
301             <para>
302                 Type : matrix of integers.
303             </para>
304         </refsect2>
305         <refsect2 id="scicos_cpr_sim_cord">
306             <title>cord</title>
307             <para>A matrix associated to always active blocks.</para>
308             <para>The first column contains the block number, and the second, the event code by which the block should be called.</para>
309             <para>
310                 Size : <varname>ncord</varname>.
311             </para>
312             <para>
313                 Type : matrix of integers.
314             </para>
315         </refsect2>
316         <refsect2 id="scicos_cpr_sim_oord">
317             <title>oord</title>
318             <para>
319                 Subset of <varname>cord</varname>. Blocks of that matrix have outputs which affect computation of continuous state derivatives.
320             </para>
321             <para>
322                 Size : <varname>noord</varname>.
323             </para>
324             <para>
325                 Type : matrix of integers.
326             </para>
327         </refsect2>
328         <refsect2 id="scicos_cpr_sim_zord">
329             <title>zord</title>
330             <para>
331                 Subset of <code>oord</code>. Blocks of that matrix have outputs which affect computation of zero-crossing surfaces.
332             </para>
333             <para>
334                 Size : <varname>nzord</varname>.
335             </para>
336             <para>
337                 Type : matrix of integers.
338             </para>
339         </refsect2>
340         <refsect2 id="scicos_cpr_sim_critev">
341             <title>critev</title>
342             <para>
343                 A vector of size equal to the number of activations and containing zeros and ones. The value <code>1</code> indicates that the activation is critical in the sense that the continuous-time solver must be cold restarted.
344             </para>
345             <para>
346                 Size : number of source of activation.
347             </para>
348             <para>
349                 Type : column vector of integers.
350             </para>
351         </refsect2>
352         <refsect2 id="scicos_cpr_sim_nb">
353             <title>nb</title>
354             <para>Number of blocks. Note that the number of blocks may differ from the original number of blocks in the diagram because c_pass2 may duplicate some conditional blocks.</para>
355             <para>
356                 Size : 1.
357             </para>
358             <para>
359                 Type : integer.
360             </para>
361         </refsect2>
362         <refsect2 id="scicos_cpr_sim_ztyp">
363             <title>ztyp</title>
364             <para>A vector of size equal to the number of blocks.</para>
365             <para>
366                 A <code>1</code> entry indicates that the block may have zero-crossings, even if it does not in the context of the diagram. Usually not used by the simulator.
367             </para>
368             <para>
369                 Size : number of blocks.
370             </para>
371             <para>
372                 Type : column vector of integers.
373             </para>
374         </refsect2>
375         <refsect2 id="scicos_cpr_sim_nblk">
376             <title>nblk</title>
377             <para>
378                 Not used. Set to <varname>nb</varname>.
379             </para>
380             <para>
381                 Size : 1
382                 Type : integer.
383             </para>
384         </refsect2>
385         <refsect2 id="scicos_cpr_sim_ndcblk">
386             <title>ndcblk</title>
387             <para>Not used.</para>
388             <para>
389                 Size : -
390                 Type : integer.
391             </para>
392         </refsect2>
393         <refsect2 id="scicos_cpr_sim_subscr">
394             <title>subscr</title>
395             <para>Not used.</para>
396             <para>
397                 Size : 0
398             </para>
399             <para>
400                 Type : empty real.
401             </para>
402         </refsect2>
403         <refsect2 id="scicos_cpr_sim_funtyp">
404             <title>funtyp</title>
405             <para>
406                 A vector of size equal to the number of blocks indicating the type of the computational function of the block. Block type can be <code>0</code> through <code>5</code>.
407             </para>
408             <para>
409                 Currently only type <code>4</code> (C language) and type <code>5</code> (Scilab language) computational functions should be used. But older blocks can also be used.
410             </para>
411             <para>
412                 Size : number of blocks.
413             </para>
414             <para>
415                 Type : column vector of integer.
416             </para>
417         </refsect2>
418         <refsect2 id="scicos_cpr_sim_iord">
419             <title>iord</title>
420             <para>A matrix associated to blocks that must be activated at the start of the simulation. This includes blocks inheriting from constant blocks and always active blocks.</para>
421             <para>
422                 Size : <varname>niord</varname>.
423             </para>
424             <para>
425                 Type : matrix of integers.
426             </para>
427         </refsect2>
428         <refsect2 id="scicos_cpr_sim_labels">
429             <title>labels</title>
430             <para>A string vector of size equal to the number of blocks containing block labels.</para>
431             <para>
432                 Size : numbers of blocks.
433             </para>
434             <para>
435                 Type : column vector of strings.
436             </para>
437         </refsect2>
438         <refsect2 id="scicos_cpr_sim_modptr">
439             <title>modptr</title>
440             <para>A vector pointer to the block modes.</para>
441             <para>
442                 Size : number of blocks + 1.
443             </para>
444             <para>
445                 Type : column vector of integer.
446             </para>
447         </refsect2>
448         <refsect2 id="scicos_cpr_sim_uids">
449             <title>uids</title>
450             <para>A string vector of size equal to the number of blocks containing block UIDs (each value is a unique block identifier).</para>
451             <para>
452                 Size : numbers of blocks.
453             </para>
454             <para>
455                 Type : column vector of strings.
456             </para>
457         </refsect2>
458     </refsection>
459 </refentry>