Salome HOME
Merge from V6_main 01/04/2013
[modules/smesh.git] / resources / StdMeshers.xml
1 <?xml version='1.0' encoding='us-ascii'?>
2 <!DOCTYPE meshers PUBLIC "" "desktop.dtd">
3 <!--
4   Copyright (C) 2007-2013  CEA/DEN, EDF R&D, OPEN CASCADE
5
6   Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
7   CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
8
9   This library is free software; you can redistribute it and/or
10   modify it under the terms of the GNU Lesser General Public
11   License as published by the Free Software Foundation; either
12   version 2.1 of the License.
13
14   This library is distributed in the hope that it will be useful,
15   but WITHOUT ANY WARRANTY; without even the implied warranty of
16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17   Lesser General Public License for more details.
18
19   You should have received a copy of the GNU Lesser General Public
20   License along with this library; if not, write to the Free Software
21   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
22
23   See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
24
25 -->
26
27 <!--  GUI customization for MESH component  -->
28
29 <meshers>
30
31 <meshers-group name="Standard Meshers"
32                resources="StdMeshers"
33                server-lib="StdMeshersEngine"
34                gui-lib="StdMeshersGUI">
35   <hypotheses>
36
37     <hypothesis type     ="SegmentLengthAroundVertex"
38                 label-id ="Length Near Vertex"
39                 icon-id  ="mesh_hypo_length.png"
40                 dim      ="0"/>
41
42     <hypothesis type     ="LocalLength"
43                 label-id ="Local Length"
44                 icon-id  ="mesh_hypo_length.png"
45                 dim      ="1"/>
46
47     <hypothesis type     ="MaxLength"
48                 label-id ="Max Size"
49                 icon-id  ="mesh_hypo_length.png"
50                 dim      ="1"/>
51
52     <hypothesis type     ="Arithmetic1D"
53                 label-id ="Arithmetic 1D"
54                 icon-id  ="mesh_hypo_length.png"
55                 dim      ="1"/>
56
57     <hypothesis type     ="FixedPoints1D"
58                 label-id ="Fixed Points 1D"
59                 icon-id  ="mesh_hypo_length.png"
60                 dim      ="1"/>
61
62     <hypothesis type     ="StartEndLength"
63                 label-id ="Start and End Length"
64                 icon-id  ="mesh_hypo_length.png"
65                 dim      ="1"/>
66
67     <hypothesis type     ="NumberOfSegments"
68                 label-id ="Nb. Segments"
69                 icon-id  ="mesh_hypo_segment.png"
70                 dim      ="1"/>
71
72     <hypothesis type     ="Deflection1D"
73                 label-id ="Deflection 1D"
74                 icon-id  ="mesh_hypo_length.png"
75                 dim      ="1"/>
76
77     <hypothesis type     ="Propagation"
78                 label-id ="Propagation of 1D Hyp. on Opposite Edges"
79                 icon-id  ="mesh_hypo_length.png"
80                 dim      ="1"
81                 auxiliary="true"/>
82
83     <hypothesis type     ="AutomaticLength"
84                 label-id ="Automatic Length"
85                 icon-id  ="mesh_hypo_length.png"
86                 dim      ="1"/>
87
88     <hypothesis type     ="LengthFromEdges"
89                 label-id ="Length From Edges"
90                 icon-id  ="mesh_hypo_length.png"
91                 dim      ="2"/>
92
93     <hypothesis type     ="QuadranglePreference"
94                 label-id ="Quadrangle Preference"
95                 icon-id  ="mesh_algo_quad.png"
96                 auxiliary="true"
97                 dim      ="2"/>
98
99     <hypothesis type     ="QuadraticMesh"
100                 label-id ="Quadratic Mesh"
101                 icon-id  ="mesh_algo_quad.png"
102                 dim      ="1"
103                 auxiliary="true"/>                
104
105     <hypothesis type     ="MaxElementArea"
106                 label-id ="Max. Element Area"
107                 icon-id  ="mesh_hypo_area.png"
108                 dim      ="2"/>
109                 
110     <hypothesis type     ="NotConformAllowed"
111                 label-id ="Not Conform Mesh Allowed"
112                 icon-id  ="mesh_hypo_length.png"
113                 dim      ="1,2,3"
114                 auxiliary="true"/>                
115
116     <hypothesis type     ="MaxElementVolume"
117                 label-id ="Max. Element Volume"
118                 icon-id  ="mesh_hypo_volume.png"
119                 dim      ="3"/>
120
121     <hypothesis type     ="ProjectionSource3D"
122                 label-id ="Source Shape 3D"
123                 icon-id  ="mesh_hypo_volume.png"
124                 dim      ="3"/>
125
126     <hypothesis type     ="ProjectionSource2D"
127                 label-id ="Source Face"
128                 icon-id  ="mesh_hypo_area.png"
129                 dim      ="2"/>
130
131     <hypothesis type     ="ProjectionSource1D"
132                 label-id ="Source Edge"
133                 icon-id  ="mesh_hypo_length.png"
134                 dim      ="1"/>
135
136     <hypothesis type     ="ImportSource2D"
137                 label-id ="Source Faces"
138                 icon-id  ="mesh_hypo_area.png"
139                 dim      ="2"/>
140
141     <hypothesis type     ="ImportSource1D"
142                 label-id ="Source Edges"
143                 icon-id  ="mesh_hypo_length.png"
144                 dim      ="1"/>
145
146     <hypothesis type     ="NumberOfLayers"
147                 label-id ="Number of Layers"
148                 icon-id  ="mesh_hypo_length.png"
149                 dim      ="3"/>
150
151     <hypothesis type     ="LayerDistribution"
152                 label-id ="Distribution of Layers"
153                 icon-id  ="mesh_hypo_length.png"
154                 dim      ="3"/>
155
156     <hypothesis type     ="ViscousLayers2D"
157                 label-id ="Viscous Layers 2D"
158                 icon-id  ="mesh_algo_quad.png"
159                 auxiliary="true"
160                 dim      ="2"/>
161
162     <hypothesis type     ="ViscousLayers"
163                 label-id ="Viscous Layers"
164                 icon-id  ="mesh_algo_quad.png"
165                 auxiliary="true"
166                 dim      ="3"/>
167
168     <hypothesis type     ="NumberOfLayers2D"
169                 label-id ="Number of Layers"
170                 icon-id  ="mesh_hypo_length.png"
171                 dim      ="2"/>
172
173     <hypothesis type     ="LayerDistribution2D"
174                 label-id ="Distribution of Layers"
175                 icon-id  ="mesh_hypo_length.png"
176                 dim      ="2"/>
177
178     <hypothesis type     ="QuadrangleParams"
179                 label-id ="Quadrangle Parameters"
180                 icon-id  ="mesh_hypo_length.png"
181                 dim      ="2"/>
182
183     <hypothesis type     ="CartesianParameters3D"
184                 label-id ="Body Fitting Parameters"
185                 icon-id  ="mesh_hypo_length.png"
186                 dim      ="3"/>
187
188   </hypotheses>
189
190   <algorithms>
191
192     <algorithm type     ="SegmentAroundVertex_0D"
193                label-id ="Segments around Vertex"
194                icon-id  ="mesh_algo_regular.png"
195                hypos    ="SegmentLengthAroundVertex"
196                output   ="VERTEX"
197                dim      ="0"/>
198
199     <algorithm type     ="Regular_1D"
200                label-id ="Wire Discretisation"
201                icon-id  ="mesh_algo_regular.png"
202                hypos    ="LocalLength,MaxLength,Arithmetic1D,StartEndLength,NumberOfSegments,Deflection1D,AutomaticLength,FixedPoints1D"
203                opt-hypos="Propagation,QuadraticMesh"
204                input    ="VERTEX"
205                output   ="EDGE"
206                dim      ="1">
207       <python-wrap>
208         <algo>Regular_1D=Segment()</algo>
209         <hypo>LocalLength=LocalLength(SetLength(1),,SetPrecision(1))</hypo>
210         <hypo>MaxLength=MaxSize(SetLength(1))</hypo>
211         <hypo>Arithmetic1D=Arithmetic1D(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
212         <hypo>StartEndLength=StartEndLength(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
213         <hypo>Deflection1D=Deflection1D(SetDeflection())</hypo>
214         <hypo>AutomaticLength=AutomaticLength(SetFineness())</hypo>
215         <hypo>FixedPoints1D=FixedPoints1D(SetPoints(),SetNbSegments(),SetReversedEdges())</hypo>
216         <hypo>Propagation=Propagation()</hypo>
217         <hypo>QuadraticMesh=QuadraticMesh()</hypo>
218       </python-wrap>
219     </algorithm>
220
221     <algorithm type     ="CompositeSegment_1D"
222                label-id ="Composite Side Discretisation"
223                icon-id  ="mesh_algo_regular.png"
224                hypos    ="LocalLength,MaxLength,Arithmetic1D,StartEndLength,NumberOfSegments,Deflection1D,AutomaticLength,FixedPoints1D"
225                opt-hypos="Propagation,QuadraticMesh"
226                input    ="VERTEX"
227                output   ="EDGE"
228                dim      ="1">
229       <python-wrap>
230         <algo>CompositeSegment_1D=Segment(algo=smesh.COMPOSITE)</algo>
231         <hypo>LocalLength=LocalLength(SetLength(), ,SetPrecision())</hypo>
232         <hypo>MaxLength=MaxSize(SetLength())</hypo>
233         <hypo>Arithmetic1D=Arithmetic1D(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
234         <hypo>StartEndLength=StartEndLength(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
235         <hypo>Deflection1D=Deflection1D(SetDeflection())</hypo>
236         <hypo>AutomaticLength=AutomaticLength(SetFineness())</hypo>
237         <hypo>FixedPoints1D=FixedPoints1D(SetPoints(),SetNbSegments(),SetReversedEdges())</hypo>
238         <hypo>Propagation=Propagation()</hypo>
239         <hypo>QuadraticMesh=QuadraticMesh()</hypo>
240       </python-wrap>
241     </algorithm>
242
243     <algorithm type="Python_1D"
244                output="EDGE"
245                dim="1">
246       <python-wrap>
247         <algo>Python_1D=Segment(algo=smesh.PYTHON)</algo>
248         <hypo>PythonSplit1D=PythonSplit1D(SetNumberOfSegments(),SetPythonLog10RatioFunction())</hypo>
249       </python-wrap>
250     </algorithm>
251
252     <algorithm type      ="MEFISTO_2D"
253                label-id  ="Triangle (Mefisto)"
254                icon-id   ="mesh_algo_mefisto.png"
255                hypos     ="LengthFromEdges,MaxElementArea"
256                opt-hypos ="ViscousLayers2D"
257                input     ="EDGE"
258                output    ="TRIA"
259                dim       ="2">
260       <python-wrap>
261         <algo>MEFISTO_2D=Triangle(algo=smesh.MEFISTO)</algo>
262         <hypo>LengthFromEdges=LengthFromEdges()</hypo>
263         <hypo>MaxElementArea=MaxElementArea(SetMaxElementArea())</hypo>
264         <hypo>ViscousLayers2D=ViscousLayers2D(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreEdges())</hypo>
265       </python-wrap>
266     </algorithm>
267
268     <algorithm type     ="Quadrangle_2D"
269                label-id ="Quadrangle (Mapping)"
270                icon-id  ="mesh_algo_quad.png"
271                hypos    ="QuadrangleParams"
272                opt-hypos="ViscousLayers2D"
273                input    ="EDGE"
274                output   ="QUAD"
275                dim      ="2">
276       <python-wrap>
277         <algo>Quadrangle_2D=Quadrangle(algo=smesh.QUADRANGLE)</algo>
278         <hypo>QuadrangleParams=QuadrangleParameters(SetQuadType(),SetTriaVertex())</hypo>
279         <hypo>ViscousLayers2D=ViscousLayers2D(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreEdges())</hypo>
280       </python-wrap>
281     </algorithm>
282
283     <algorithm type     ="Hexa_3D"
284                label-id ="Hexahedron (i,j,k)"
285                icon-id  ="mesh_algo_hexa.png"
286                input    ="QUAD"
287                need-geom="false"
288                opt-hypos="ViscousLayers"
289                dim      ="3">
290       <python-wrap>
291         <algo>Hexa_3D=Hexahedron(algo=smesh.Hexa)</algo>
292         <hypo>ViscousLayers=ViscousLayers(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreFaces())</hypo>
293       </python-wrap>
294     </algorithm>
295
296     <algorithm type    ="Projection_1D"
297                label-id="Projection 1D"
298                icon-id ="mesh_algo_regular.png"
299                hypos   ="ProjectionSource1D"
300                output  ="EDGE"
301                dim     ="1">
302       <python-wrap>
303         <algo>Projection_1D=Projection1D()</algo>
304         <hypo>ProjectionSource1D=SourceEdge(SetSourceEdge(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(2))</hypo>
305       </python-wrap>
306     </algorithm>
307
308     <algorithm type    ="Projection_2D"
309                label-id="Projection 2D"
310                icon-id ="mesh_algo_quad.png"
311                input   ="EDGE"
312                hypos   ="ProjectionSource2D"
313                output  ="QUAD,TRIA"
314                dim     ="2">
315       <python-wrap>
316         <algo>Projection_2D=Projection2D()</algo>
317         <hypo>ProjectionSource2D=SourceFace(SetSourceFace(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(3),SetVertexAssociation(2),SetVertexAssociation(4))</hypo>
318       </python-wrap>
319     </algorithm>
320
321     <algorithm type    ="Projection_1D2D"
322                label-id="Projection 1D-2D"
323                icon-id ="mesh_algo_quad.png"
324                hypos   ="ProjectionSource2D"
325                output  ="QUAD,TRIA"
326                dim     ="2">
327       <python-wrap>
328         <algo>Projection_1D2D=Projection1D2D()</algo>
329         <hypo>ProjectionSource2D=SourceFace(SetSourceFace(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(2),SetVertexAssociation(3),SetVertexAssociation(4))</hypo>
330       </python-wrap>
331     </algorithm>
332
333     <algorithm type    ="Projection_3D"
334                label-id="Projection 3D"
335                icon-id ="mesh_algo_hexa.png"
336                hypos   ="ProjectionSource3D"
337                input   ="QUAD,TRIA"
338                dim     ="3">
339       <python-wrap>
340         <algo>Projection_3D=Projection3D()</algo>
341         <hypo>ProjectionSource3D=SourceShape3D(SetSource3DShape(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(3),SetVertexAssociation(2),SetVertexAssociation(4))</hypo>
342       </python-wrap>
343     </algorithm>
344
345     <algorithm type    ="Import_1D"
346                label-id="Use Existing 1D Elements"
347                icon-id ="mesh_algo_regular.png"
348                hypos   ="ImportSource1D"
349                output  ="EDGE"
350                dim     ="1">
351       <python-wrap>
352         <algo>Import_1D=UseExisting1DElements()</algo>
353         <hypo>ImportSource1D=SourceEdges(SetSourceEdges(),SetCopySourceMesh(1),SetCopySourceMesh(2))</hypo>
354       </python-wrap>
355     </algorithm>
356
357     <algorithm type             ="Import_1D2D"
358                label-id         ="Use Existing 2D Elements"
359                icon-id          ="mesh_algo_quad.png"
360                hypos            ="ImportSource2D"
361                output           ="QUAD,TRIA"
362                support-submeshes="false"
363                dim              ="2">
364       <python-wrap>
365         <algo>Import_1D2D=UseExisting2DElements()</algo>
366         <hypo>ImportSource2D=SourceFaces(SetSourceFaces(),SetCopySourceMesh(1),SetCopySourceMesh(2))</hypo>
367       </python-wrap>
368     </algorithm>
369
370     <algorithm type    ="Prism_3D"
371                label-id="3D Extrusion"
372                icon-id ="mesh_algo_hexa.png"
373                input   ="QUAD,TRIA"
374                dim     ="3">
375       <python-wrap>
376         <algo>Prism_3D=Prism()</algo>
377       </python-wrap>
378     </algorithm>
379
380     <algorithm type    ="RadialPrism_3D"
381                label-id="Radial Prism 3D"
382                icon-id ="mesh_algo_hexa.png"
383                hypos   ="NumberOfLayers, LayerDistribution"
384                input   ="QUAD,TRIA"
385                dim     ="3">
386       <python-wrap>
387         <algo>RadialPrism_3D=Prism('RadialPrism_3D')</algo>
388         <hypo>NumberOfLayers=NumberOfLayers(SetNumberOfLayers())</hypo>
389       </python-wrap>
390     </algorithm>
391
392     <algorithm type    ="UseExisting_1D"
393                label-id="Use Existing Edges"
394                icon-id ="mesh_algo_regular.png"
395                input   ="VERTEX"
396                output  ="EDGE"
397                dim     ="1">
398       <python-wrap>
399         <algo>UseExisting_1D=UseExistingSegments()</algo>
400       </python-wrap>
401     </algorithm>
402
403     <algorithm type    ="UseExisting_2D"
404                label-id="Use Existing Faces"
405                icon-id ="mesh_algo_quad.png"
406                input   ="EDGE"
407                output  ="QUAD,TRIA"
408                dim     ="2">
409       <python-wrap>
410         <algo>UseExisting_2D=UseExistingFaces()</algo>
411       </python-wrap>
412     </algorithm>
413
414     <algorithm type    ="RadialQuadrangle_1D2D"
415                label-id="Radial Quadrangle 1D2D"
416                icon-id ="mesh_algo_quad.png"
417                hypos   ="NumberOfLayers2D, LayerDistribution2D"
418                input   ="EDGE"
419                output  ="QUAD,TRIA"
420                dim     ="2">
421       <python-wrap>
422         <algo>RadialQuadrangle_1D2D=Quadrangle(algo=smesh.RADIAL_QUAD)</algo>
423         <hypo>NumberOfLayers2D=NumberOfLayers(SetNumberOfLayers())</hypo>
424       </python-wrap>
425     </algorithm>
426
427     <algorithm type             ="Cartesian_3D"
428                label-id         ="Body Fitting"
429                icon-id          ="mesh_algo_hexa.png"
430                hypos            ="CartesianParameters3D"
431                support-submeshes="false"
432                dim              ="3">
433       <python-wrap>
434         <algo>Cartesian_3D=BodyFitted()</algo>
435       </python-wrap>
436     </algorithm>
437
438   </algorithms>
439 </meshers-group>
440
441 <meshers-group name="Your Meshers Group"
442                resources=""
443                server-lib=""
444                gui-lib="">
445   <hypotheses>
446
447     <hypothesis type=""
448                 label-id=""
449                 icon-id=""/>
450   </hypotheses>
451
452   <algorithms>
453
454     <algorithm type=""
455                label-id=""
456                icon-id=""/>
457   </algorithms>
458 </meshers-group>
459
460
461 <hypotheses-set-group>
462
463     <hypotheses-set name="Automatic Tetrahedralization"
464                     hypos="MaxLength"
465                     algos="Regular_1D, MEFISTO_2D, NETGEN_3D"/>
466
467     <hypotheses-set name="Automatic Hexahedralization"
468                     hypos="NumberOfSegments"
469                     algos="Regular_1D, Quadrangle_2D, Hexa_3D"/>
470
471     <hypotheses-set name="Automatic Triangulation"
472                     hypos="MaxLength"
473                     algos="Regular_1D, MEFISTO_2D"/>
474
475     <hypotheses-set name="Automatic Quadrangulation"
476                     hypos="NumberOfSegments"
477                     algos="Regular_1D, Quadrangle_2D"/>
478
479 </hypotheses-set-group>
480
481 </meshers>