Salome HOME
39307c745007b263334c44499999934d3b6f9ceb
[modules/smesh.git] / resources / StdMeshers.xml.in
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                idl-module="StdMeshers"
34                server-lib="StdMeshersEngine"
35                gui-lib="StdMeshersGUI">
36   <hypotheses>
37
38     <hypothesis type     ="SegmentLengthAroundVertex"
39                 label-id ="Length Near Vertex"
40                 icon-id  ="mesh_hypo_length.png"
41                 dim      ="0"/>
42
43     <hypothesis type     ="LocalLength"
44                 label-id ="Local Length"
45                 icon-id  ="mesh_hypo_length.png"
46                 dim      ="1"/>
47
48     <hypothesis type     ="MaxLength"
49                 label-id ="Max Size"
50                 icon-id  ="mesh_hypo_length.png"
51                 dim      ="1"/>
52
53     <hypothesis type     ="Arithmetic1D"
54                 label-id ="Arithmetic 1D"
55                 icon-id  ="mesh_hypo_length.png"
56                 dim      ="1"/>
57
58     <hypothesis type     ="GeometricProgression"
59                 label-id ="Geometric Progression"
60                 icon-id  ="mesh_hypo_length.png"
61                 dim      ="1"/>
62
63     <hypothesis type     ="FixedPoints1D"
64                 label-id ="Fixed Points 1D"
65                 icon-id  ="mesh_hypo_length.png"
66                 dim      ="1"/>
67
68     <hypothesis type     ="StartEndLength"
69                 label-id ="Start and End Length"
70                 icon-id  ="mesh_hypo_length.png"
71                 dim      ="1"/>
72
73     <hypothesis type     ="NumberOfSegments"
74                 label-id ="Nb. Segments"
75                 icon-id  ="mesh_hypo_segment.png"
76                 dim      ="1"/>
77
78     <hypothesis type     ="Deflection1D"
79                 label-id ="Deflection 1D"
80                 icon-id  ="mesh_hypo_length.png"
81                 dim      ="1"/>
82
83     <hypothesis type     ="Adaptive1D"
84                 label-id ="Adaptive"
85                 icon-id  ="mesh_hypo_length.png"
86                 dim      ="1"/>
87
88     <hypothesis type     ="Propagation"
89                 label-id ="Propagation of 1D Hyp. on Opposite Edges"
90                 icon-id  ="mesh_hypo_length.png"
91                 dim      ="1"
92                 context  ="LOCAL"
93                 auxiliary="true"/>
94
95     <hypothesis type     ="PropagOfDistribution"
96                 label-id ="Propagation of Node Distribution on Opposite Edges"
97                 icon-id  ="mesh_hypo_length.png"
98                 dim      ="1"
99                 context  ="LOCAL"
100                 auxiliary="true"/>
101
102     <hypothesis type     ="AutomaticLength"
103                 label-id ="Automatic Length"
104                 icon-id  ="mesh_hypo_length.png"
105                 dim      ="1"/>
106
107     <hypothesis type     ="LengthFromEdges"
108                 label-id ="Length From Edges"
109                 icon-id  ="mesh_hypo_length.png"
110                 dim      ="2"/>
111
112     <hypothesis type     ="QuadranglePreference"
113                 label-id ="Quadrangle Preference"
114                 icon-id  ="mesh_algo_quad.png"
115                 auxiliary="true"
116                 dim      ="2"/>
117
118     <hypothesis type     ="QuadraticMesh"
119                 label-id ="Quadratic Mesh"
120                 icon-id  ="mesh_algo_quad.png"
121                 dim      ="1"
122                 context  ="GLOBAL"
123                 auxiliary="true"/>                
124
125     <hypothesis type     ="MaxElementArea"
126                 label-id ="Max. Element Area"
127                 icon-id  ="mesh_hypo_area.png"
128                 dim      ="2"/>
129                 
130     <hypothesis type     ="NotConformAllowed"
131                 label-id ="Not Conform Mesh Allowed"
132                 icon-id  ="mesh_hypo_length.png"
133                 dim      ="1,2,3"
134                 context  ="GLOBAL"
135                 auxiliary="true"/>                
136
137     <hypothesis type     ="MaxElementVolume"
138                 label-id ="Max. Element Volume"
139                 icon-id  ="mesh_hypo_volume.png"
140                 dim      ="3"/>
141
142     <hypothesis type     ="ProjectionSource3D"
143                 label-id ="Source Shape 3D"
144                 icon-id  ="mesh_hypo_volume.png"
145                 dim      ="3"/>
146
147     <hypothesis type     ="ProjectionSource2D"
148                 label-id ="Source Face"
149                 icon-id  ="mesh_hypo_area.png"
150                 dim      ="2"/>
151
152     <hypothesis type     ="ProjectionSource1D"
153                 label-id ="Source Edge"
154                 icon-id  ="mesh_hypo_length.png"
155                 dim      ="1"/>
156
157     <hypothesis type     ="ImportSource2D"
158                 label-id ="Source Faces"
159                 icon-id  ="mesh_hypo_area.png"
160                 dim      ="2"/>
161
162     <hypothesis type     ="ImportSource1D"
163                 label-id ="Source Edges"
164                 icon-id  ="mesh_hypo_length.png"
165                 dim      ="1"/>
166
167     <hypothesis type     ="NumberOfLayers"
168                 label-id ="Number of Layers"
169                 icon-id  ="mesh_hypo_length.png"
170                 dim      ="3"/>
171
172     <hypothesis type     ="LayerDistribution"
173                 label-id ="Distribution of Layers"
174                 icon-id  ="mesh_hypo_length.png"
175                 dim      ="3"/>
176
177     <hypothesis type     ="ViscousLayers2D"
178                 label-id ="Viscous Layers 2D"
179                 icon-id  ="mesh_algo_quad.png"
180                 auxiliary="true"
181                 dim      ="2"/>
182
183     <hypothesis type     ="ViscousLayers"
184                 label-id ="Viscous Layers"
185                 icon-id  ="mesh_algo_quad.png"
186                 auxiliary="true"
187                 dim      ="3"/>
188
189     <hypothesis type     ="NumberOfLayers2D"
190                 label-id ="Number of Layers"
191                 icon-id  ="mesh_hypo_length.png"
192                 dim      ="2"/>
193
194     <hypothesis type     ="LayerDistribution2D"
195                 label-id ="Distribution of Layers"
196                 icon-id  ="mesh_hypo_length.png"
197                 dim      ="2"/>
198
199     <hypothesis type     ="QuadrangleParams"
200                 label-id ="Quadrangle Parameters"
201                 icon-id  ="mesh_hypo_length.png"
202                 dim      ="2"/>
203
204     <hypothesis type     ="CartesianParameters3D"
205                 label-id ="Body Fitting Parameters"
206                 icon-id  ="mesh_hypo_length.png"
207                 context  ="GLOBAL"
208                 dim      ="3"/>
209
210   </hypotheses>
211
212   <algorithms>
213
214     <algorithm type     ="SegmentAroundVertex_0D"
215                label-id ="Segments around Vertex"
216                icon-id  ="mesh_algo_regular.png"
217                hypos    ="SegmentLengthAroundVertex"
218                output   ="VERTEX"
219                need-hyp ="true"
220                dim      ="0"/>
221
222     <algorithm type     ="Regular_1D"
223                label-id ="Wire Discretisation"
224                icon-id  ="mesh_algo_regular.png"
225                hypos    ="Adaptive1D,LocalLength,MaxLength,Arithmetic1D,GeometricProgression,StartEndLength,NumberOfSegments,Deflection1D,AutomaticLength,FixedPoints1D"
226                opt-hypos="Propagation,PropagOfDistribution,QuadraticMesh"
227                input    ="VERTEX"
228                output   ="EDGE"
229                need-hyp ="true"
230                dim      ="1">
231       <python-wrap>
232         <algo>Regular_1D=Segment()</algo>
233         <hypo>LocalLength=LocalLength(SetLength(1),,SetPrecision(1))</hypo>
234         <hypo>MaxLength=MaxSize(SetLength(1))</hypo>
235         <hypo>Arithmetic1D=Arithmetic1D(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
236         <hypo>GeometricProgression=GeometricProgression(SetStartLength(),SetCommonRatio(),SetReversedEdges())</hypo>
237         <hypo>StartEndLength=StartEndLength(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
238         <hypo>Deflection1D=Deflection1D(SetDeflection())</hypo>
239         <hypo>Adaptive1D=Adaptive(SetMinSize(),SetMaxSize(),SetDeflection())</hypo>
240         <hypo>AutomaticLength=AutomaticLength(SetFineness())</hypo>
241         <hypo>FixedPoints1D=FixedPoints1D(SetPoints(),SetNbSegments(),SetReversedEdges())</hypo>
242         <hypo>Propagation=Propagation()</hypo>
243         <hypo>PropagOfDistribution=PropagationOfDistribution()</hypo>
244         <hypo>QuadraticMesh=QuadraticMesh()</hypo>
245       </python-wrap>
246     </algorithm>
247
248     <algorithm type     ="CompositeSegment_1D"
249                label-id ="Composite Side Discretisation"
250                icon-id  ="mesh_algo_regular.png"
251                hypos    ="Adaptive1D,LocalLength,MaxLength,Arithmetic1D,GeometricProgression,StartEndLength,NumberOfSegments,Deflection1D,AutomaticLength,FixedPoints1D"
252                opt-hypos="Propagation,PropagOfDistribution,QuadraticMesh"
253                input    ="VERTEX"
254                output   ="EDGE"
255                need-hyp ="true"
256                dim      ="1">
257       <python-wrap>
258         <algo>CompositeSegment_1D=Segment(algo=smeshBuilder.COMPOSITE)</algo>
259         <hypo>LocalLength=LocalLength(SetLength(), ,SetPrecision())</hypo>
260         <hypo>MaxLength=MaxSize(SetLength())</hypo>
261         <hypo>Arithmetic1D=Arithmetic1D(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
262         <hypo>GeometricProgression=GeometricProgression(SetStartLength(),SetCommonRatio(),SetReversedEdges())</hypo>
263         <hypo>StartEndLength=StartEndLength(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
264         <hypo>Deflection1D=Deflection1D(SetDeflection())</hypo>
265         <hypo>Adaptive1D=Adaptive(SetMinSize(),SetMaxSize(),SetDeflection())</hypo>
266         <hypo>AutomaticLength=AutomaticLength(SetFineness())</hypo>
267         <hypo>FixedPoints1D=FixedPoints1D(SetPoints(),SetNbSegments(),SetReversedEdges())</hypo>
268         <hypo>Propagation=Propagation()</hypo>
269         <hypo>PropagOfDistribution=PropagationOfDistribution()</hypo>
270         <hypo>QuadraticMesh=QuadraticMesh()</hypo>
271       </python-wrap>
272     </algorithm>
273
274     <algorithm type="Python_1D"
275                output="EDGE"
276                dim="1">
277       <python-wrap>
278         <algo>Python_1D=Segment(algo=smeshBuilder.PYTHON)</algo>
279         <hypo>PythonSplit1D=PythonSplit1D(SetNumberOfSegments(),SetPythonLog10RatioFunction())</hypo>
280       </python-wrap>
281     </algorithm>
282
283     <algorithm type      ="@MEFISTO2D_NAME@"
284                label-id  ="Triangle (Mefisto)"
285                icon-id   ="mesh_algo_mefisto.png"
286                hypos     ="LengthFromEdges,MaxElementArea"
287                opt-hypos ="ViscousLayers2D"
288                input     ="EDGE"
289                output    ="TRIA"
290                dim       ="2">
291       <python-wrap>
292         <algo>MEFISTO_2D=Triangle(algo=smeshBuilder.MEFISTO)</algo>
293         <hypo>LengthFromEdges=LengthFromEdges()</hypo>
294         <hypo>MaxElementArea=MaxElementArea(SetMaxElementArea())</hypo>
295         <hypo>ViscousLayers2D=ViscousLayers2D(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetEdges(1),SetEdges(2))</hypo>
296       </python-wrap>
297     </algorithm>
298
299     <algorithm type     ="Quadrangle_2D"
300                label-id ="Quadrangle (Mapping)"
301                icon-id  ="mesh_algo_quad.png"
302                hypos    ="QuadrangleParams"
303                opt-hypos="ViscousLayers2D"
304                input    ="EDGE"
305                output   ="QUAD"
306                dim      ="2">
307       <python-wrap>
308         <algo>Quadrangle_2D=Quadrangle(algo=smeshBuilder.QUADRANGLE)</algo>
309         <hypo>QuadrangleParams=QuadrangleParameters(SetQuadType(),SetTriaVertex(),SetEnforcedNodes(1),SetEnforcedNodes(2))</hypo>
310         <hypo>ViscousLayers2D=ViscousLayers2D(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreEdges())</hypo>
311       </python-wrap>
312     </algorithm>
313
314     <algorithm type     ="Hexa_3D"
315                label-id ="Hexahedron (i,j,k)"
316                icon-id  ="mesh_algo_hexa.png"
317                input    ="QUAD"
318                output   ="HEXA,PENTA"
319                need-geom="false"
320                opt-hypos="ViscousLayers"
321                dim      ="3">
322       <python-wrap>
323         <algo>Hexa_3D=Hexahedron(algo=smeshBuilder.Hexa)</algo>
324         <hypo>ViscousLayers=ViscousLayers(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreFaces())</hypo>
325       </python-wrap>
326     </algorithm>
327
328     <algorithm type    ="Projection_1D"
329                label-id="Projection 1D"
330                icon-id ="mesh_algo_regular.png"
331                hypos   ="ProjectionSource1D"
332                output  ="EDGE"
333                need-hyp="true"
334                dim     ="1">
335       <python-wrap>
336         <algo>Projection_1D=Projection1D()</algo>
337         <hypo>ProjectionSource1D=SourceEdge(SetSourceEdge(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(2))</hypo>
338       </python-wrap>
339     </algorithm>
340
341     <algorithm type    ="Projection_2D"
342                label-id="Projection 2D"
343                icon-id ="mesh_algo_quad.png"
344                input   ="EDGE"
345                hypos   ="ProjectionSource2D"
346                output  ="QUAD,TRIA"
347                need-hyp="true"
348                dim     ="2">
349       <python-wrap>
350         <algo>Projection_2D=Projection2D()</algo>
351         <hypo>ProjectionSource2D=SourceFace(SetSourceFace(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(3),SetVertexAssociation(2),SetVertexAssociation(4))</hypo>
352       </python-wrap>
353     </algorithm>
354
355     <algorithm type    ="Projection_1D2D"
356                label-id="Projection 1D-2D"
357                icon-id ="mesh_algo_quad.png"
358                hypos   ="ProjectionSource2D"
359                output  ="QUAD,TRIA"
360                need-hyp="true"
361                dim     ="2">
362       <python-wrap>
363         <algo>Projection_1D2D=Projection1D2D()</algo>
364         <hypo>ProjectionSource2D=SourceFace(SetSourceFace(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(2),SetVertexAssociation(3),SetVertexAssociation(4))</hypo>
365       </python-wrap>
366     </algorithm>
367
368     <algorithm type    ="Projection_3D"
369                label-id="Projection 3D"
370                icon-id ="mesh_algo_hexa.png"
371                hypos   ="ProjectionSource3D"
372                input   ="QUAD,TRIA"
373                need-hyp="true"
374                dim     ="3">
375       <python-wrap>
376         <algo>Projection_3D=Projection3D()</algo>
377         <hypo>ProjectionSource3D=SourceShape3D(SetSource3DShape(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(3),SetVertexAssociation(2),SetVertexAssociation(4))</hypo>
378       </python-wrap>
379     </algorithm>
380
381     <algorithm type    ="Import_1D"
382                label-id="Use Existing 1D Elements"
383                icon-id ="mesh_algo_regular.png"
384                hypos   ="ImportSource1D"
385                output  ="EDGE"
386                need-hyp="true"
387                dim     ="1">
388       <python-wrap>
389         <algo>Import_1D=UseExisting1DElements()</algo>
390         <hypo>ImportSource1D=SourceEdges(SetSourceEdges(),SetCopySourceMesh(1),SetCopySourceMesh(2))</hypo>
391       </python-wrap>
392     </algorithm>
393
394     <algorithm type             ="Import_1D2D"
395                label-id         ="Use Existing 2D Elements"
396                icon-id          ="mesh_algo_quad.png"
397                hypos            ="ImportSource2D"
398                output           ="QUAD,TRIA"
399                support-submeshes="false"
400                need-hyp         ="true"
401                dim              ="2">
402       <python-wrap>
403         <algo>Import_1D2D=UseExisting2DElements()</algo>
404         <hypo>ImportSource2D=SourceFaces(SetSourceFaces(),SetCopySourceMesh(1),SetCopySourceMesh(2))</hypo>
405       </python-wrap>
406     </algorithm>
407
408     <algorithm type    ="Prism_3D"
409                label-id="3D Extrusion"
410                icon-id ="mesh_algo_hexa.png"
411                input   ="QUAD,TRIA"
412                output  ="HEXA,PENTA,OCTA,POLYHEDRON"
413                dim     ="3">
414       <python-wrap>
415         <algo>Prism_3D=Prism()</algo>
416       </python-wrap>
417     </algorithm>
418
419     <algorithm type    ="RadialPrism_3D"
420                label-id="Radial Prism 3D"
421                icon-id ="mesh_algo_hexa.png"
422                hypos   ="NumberOfLayers, LayerDistribution"
423                input   ="QUAD,TRIA"
424                output  ="HEXA,PENTA,OCTA,POLYHEDRON"
425                need-hyp="true"
426                dim     ="3">
427       <python-wrap>
428         <algo>RadialPrism_3D=Prism('RadialPrism_3D')</algo>
429         <hypo>NumberOfLayers=NumberOfLayers(SetNumberOfLayers())</hypo>
430       </python-wrap>
431     </algorithm>
432
433     <algorithm type    ="UseExisting_1D"
434                label-id="Use Existing Edges"
435                icon-id ="mesh_algo_regular.png"
436                input   ="VERTEX"
437                output  ="EDGE"
438                dim     ="1">
439       <python-wrap>
440         <algo>UseExisting_1D=UseExistingSegments()</algo>
441       </python-wrap>
442     </algorithm>
443
444     <algorithm type    ="UseExisting_2D"
445                label-id="Use Existing Faces"
446                icon-id ="mesh_algo_quad.png"
447                input   ="EDGE"
448                output  ="QUAD,TRIA"
449                dim     ="2">
450       <python-wrap>
451         <algo>UseExisting_2D=UseExistingFaces()</algo>
452       </python-wrap>
453     </algorithm>
454
455     <algorithm type    ="RadialQuadrangle_1D2D"
456                label-id="Radial Quadrangle 1D2D"
457                icon-id ="mesh_algo_quad.png"
458                hypos   ="NumberOfLayers2D, LayerDistribution2D"
459                input   ="EDGE"
460                output  ="QUAD"
461                dim     ="2">
462       <python-wrap>
463         <algo>RadialQuadrangle_1D2D=Quadrangle(algo=smeshBuilder.RADIAL_QUAD)</algo>
464         <hypo>NumberOfLayers2D=NumberOfLayers(SetNumberOfLayers())</hypo>
465       </python-wrap>
466     </algorithm>
467
468     <algorithm type             ="Cartesian_3D"
469                label-id         ="Body Fitting"
470                icon-id          ="mesh_algo_hexa.png"
471                hypos            ="CartesianParameters3D"
472                support-submeshes="false"
473                output           ="HEXA"
474                need-hyp         ="true"
475                context          ="GLOBAL"
476                dim              ="3">
477       <python-wrap>
478         <algo>Cartesian_3D=BodyFitted()</algo>
479       </python-wrap>
480     </algorithm>
481
482   </algorithms>
483 </meshers-group>
484
485 <meshers-group name="Your Meshers Group"
486                resources=""
487                server-lib=""
488                gui-lib="">
489   <hypotheses>
490
491     <hypothesis type=""
492                 label-id=""
493                 icon-id=""/>
494   </hypotheses>
495
496   <algorithms>
497
498     <algorithm type=""
499                label-id=""
500                icon-id=""/>
501   </algorithms>
502 </meshers-group>
503
504
505 <hypotheses-set-group>
506
507     <hypotheses-set name="Automatic Tetrahedralization"
508                     hypos="MaxLength"
509                     algos="Regular_1D, @MEFISTO2D_NAME@, NETGEN_3D"/>
510
511     <hypotheses-set name="Automatic Hexahedralization"
512                     hypos="NumberOfSegments"
513                     algos="Regular_1D, Quadrangle_2D, Hexa_3D"/>
514
515     <hypotheses-set name="Automatic Triangulation"
516                     hypos="MaxLength"
517                     algos="Regular_1D, @MEFISTO2D_NAME@"/>
518
519     <hypotheses-set name="Automatic Quadrangulation"
520                     hypos="NumberOfSegments"
521                     algos="Regular_1D, Quadrangle_2D"/>
522
523 </hypotheses-set-group>
524
525 </meshers>