Salome HOME
Merge from V6_main 12/11/2012
[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-2012  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       </python-wrap>
265     </algorithm>
266
267     <algorithm type     ="Quadrangle_2D"
268                label-id ="Quadrangle (Mapping)"
269                icon-id  ="mesh_algo_quad.png"
270                hypos    ="QuadrangleParams"
271                opt-hypos="ViscousLayers2D"
272                input    ="EDGE"
273                output   ="QUAD"
274                dim      ="2">
275       <python-wrap>
276         <algo>Quadrangle_2D=Quadrangle(algo=smesh.QUADRANGLE)</algo>
277         <hypo>QuadrangleParams=QuadrangleParameters(SetQuadType(),SetTriaVertex())</hypo>
278       </python-wrap>
279     </algorithm>
280
281     <algorithm type     ="Hexa_3D"
282                label-id ="Hexahedron (i,j,k)"
283                icon-id  ="mesh_algo_hexa.png"
284                input    ="QUAD"
285                need-geom="false"
286                opt-hypos="ViscousLayers"
287                dim      ="3">
288       <python-wrap>
289         <algo>Hexa_3D=Hexahedron(algo=smesh.Hexa)</algo>
290         <hypo>ViscousLayers=ViscousLayers(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreFaces())</hypo>
291       </python-wrap>
292     </algorithm>
293
294     <algorithm type    ="Projection_1D"
295                label-id="Projection 1D"
296                icon-id ="mesh_algo_regular.png"
297                hypos   ="ProjectionSource1D"
298                output  ="EDGE"
299                dim     ="1">
300       <python-wrap>
301         <algo>Projection_1D=Projection1D()</algo>
302         <hypo>ProjectionSource1D=SourceEdge(SetSourceEdge(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(2))</hypo>
303       </python-wrap>
304     </algorithm>
305
306     <algorithm type    ="Projection_2D"
307                label-id="Projection 2D"
308                icon-id ="mesh_algo_quad.png"
309                input   ="EDGE"
310                hypos   ="ProjectionSource2D"
311                output  ="QUAD,TRIA"
312                dim     ="2">
313       <python-wrap>
314         <algo>Projection_2D=Projection2D()</algo>
315         <hypo>ProjectionSource2D=SourceFace(SetSourceFace(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(3),SetVertexAssociation(2),SetVertexAssociation(4))</hypo>
316       </python-wrap>
317     </algorithm>
318
319     <algorithm type    ="Projection_1D2D"
320                label-id="Projection 1D-2D"
321                icon-id ="mesh_algo_quad.png"
322                hypos   ="ProjectionSource2D"
323                output  ="QUAD,TRIA"
324                dim     ="2">
325       <python-wrap>
326         <algo>Projection_1D2D=Projection1D2D()</algo>
327         <hypo>ProjectionSource2D=SourceFace(SetSourceFace(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(2),SetVertexAssociation(3),SetVertexAssociation(4))</hypo>
328       </python-wrap>
329     </algorithm>
330
331     <algorithm type    ="Projection_3D"
332                label-id="Projection 3D"
333                icon-id ="mesh_algo_hexa.png"
334                hypos   ="ProjectionSource3D"
335                input   ="QUAD,TRIA"
336                dim     ="3">
337       <python-wrap>
338         <algo>Projection_3D=Projection3D()</algo>
339         <hypo>ProjectionSource3D=SourceShape3D(SetSource3DShape(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(3),SetVertexAssociation(2),SetVertexAssociation(4))</hypo>
340       </python-wrap>
341     </algorithm>
342
343     <algorithm type    ="Import_1D"
344                label-id="Use Existing 1D Elements"
345                icon-id ="mesh_algo_regular.png"
346                hypos   ="ImportSource1D"
347                output  ="EDGE"
348                dim     ="1">
349       <python-wrap>
350         <algo>Import_1D=UseExisting1DElements()</algo>
351         <hypo>ImportSource1D=SourceEdges(SetSourceEdges(),SetCopySourceMesh(1),SetCopySourceMesh(2))</hypo>
352       </python-wrap>
353     </algorithm>
354
355     <algorithm type             ="Import_1D2D"
356                label-id         ="Use Existing 2D Elements"
357                icon-id          ="mesh_algo_quad.png"
358                hypos            ="ImportSource2D"
359                output           ="QUAD,TRIA"
360                support-submeshes="false"
361                dim              ="2">
362       <python-wrap>
363         <algo>Import_1D2D=UseExisting2DElements()</algo>
364         <hypo>ImportSource2D=SourceFaces(SetSourceFaces(),SetCopySourceMesh(1),SetCopySourceMesh(2))</hypo>
365       </python-wrap>
366     </algorithm>
367
368     <algorithm type    ="Prism_3D"
369                label-id="3D Extrusion"
370                icon-id ="mesh_algo_hexa.png"
371                input   ="QUAD,TRIA"
372                dim     ="3">
373       <python-wrap>
374         <algo>Prism_3D=Prism()</algo>
375       </python-wrap>
376     </algorithm>
377
378     <algorithm type    ="RadialPrism_3D"
379                label-id="Radial Prism 3D"
380                icon-id ="mesh_algo_hexa.png"
381                hypos   ="NumberOfLayers, LayerDistribution"
382                input   ="QUAD,TRIA"
383                dim     ="3">
384       <python-wrap>
385         <algo>RadialPrism_3D=Prism('RadialPrism_3D')</algo>
386         <hypo>NumberOfLayers=NumberOfLayers(SetNumberOfLayers())</hypo>
387       </python-wrap>
388     </algorithm>
389
390     <algorithm type    ="UseExisting_1D"
391                label-id="Use Existing Edges"
392                icon-id ="mesh_algo_regular.png"
393                input   ="VERTEX"
394                output  ="EDGE"
395                dim     ="1">
396       <python-wrap>
397         <algo>UseExisting_1D=UseExistingSegments()</algo>
398       </python-wrap>
399     </algorithm>
400
401     <algorithm type    ="UseExisting_2D"
402                label-id="Use Existing Faces"
403                icon-id ="mesh_algo_quad.png"
404                input   ="EDGE"
405                output  ="QUAD,TRIA"
406                dim     ="2">
407       <python-wrap>
408         <algo>UseExisting_2D=UseExistingFaces()</algo>
409       </python-wrap>
410     </algorithm>
411
412     <algorithm type    ="RadialQuadrangle_1D2D"
413                label-id="Radial Quadrangle 1D2D"
414                icon-id ="mesh_algo_quad.png"
415                hypos   ="NumberOfLayers2D, LayerDistribution2D"
416                input   ="EDGE"
417                output  ="QUAD,TRIA"
418                dim     ="2">
419       <python-wrap>
420         <algo>RadialQuadrangle_1D2D=Quadrangle(algo=smesh.RADIAL_QUAD)</algo>
421         <hypo>NumberOfLayers2D=NumberOfLayers(SetNumberOfLayers())</hypo>
422       </python-wrap>
423     </algorithm>
424
425     <algorithm type             ="Cartesian_3D"
426                label-id         ="Body Fitting"
427                icon-id          ="mesh_algo_hexa.png"
428                hypos            ="CartesianParameters3D"
429                support-submeshes="false"
430                dim              ="3">
431       <python-wrap>
432         <algo>Cartesian_3D=BodyFitted()</algo>
433       </python-wrap>
434     </algorithm>
435
436   </algorithms>
437 </meshers-group>
438
439 <meshers-group name="Your Meshers Group"
440                resources=""
441                server-lib=""
442                gui-lib="">
443   <hypotheses>
444
445     <hypothesis type=""
446                 label-id=""
447                 icon-id=""/>
448   </hypotheses>
449
450   <algorithms>
451
452     <algorithm type=""
453                label-id=""
454                icon-id=""/>
455   </algorithms>
456 </meshers-group>
457
458
459 <hypotheses-set-group>
460
461     <hypotheses-set name="Automatic Tetrahedralization"
462                     hypos="MaxLength"
463                     algos="Regular_1D, MEFISTO_2D, NETGEN_3D"/>
464
465     <hypotheses-set name="Automatic Hexahedralization"
466                     hypos="NumberOfSegments"
467                     algos="Regular_1D, Quadrangle_2D, Hexa_3D"/>
468
469     <hypotheses-set name="Automatic Triangulation"
470                     hypos="MaxLength"
471                     algos="Regular_1D, MEFISTO_2D"/>
472
473     <hypotheses-set name="Automatic Quadrangulation"
474                     hypos="NumberOfSegments"
475                     algos="Regular_1D, Quadrangle_2D"/>
476
477 </hypotheses-set-group>
478
479 </meshers>