Salome HOME
Documenting the nodal connectivity
[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-2016  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, or (at your option) any later version.
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     ="QuadFromMedialAxis_1D2D"
315                label-id ="Quadrangle (Medial Axis Projection)"
316                icon-id  ="mesh_algo_quad.png"
317                hypos    ="NumberOfLayers2D, LayerDistribution2D"
318                opt-hypos="ViscousLayers2D"
319                input    ="EDGE"
320                output   ="QUAD"
321                dim      ="2">
322       <python-wrap>
323         <algo>QuadFromMedialAxis_1D2D=Quadrangle(algo=smeshBuilder.QUAD_MA_PROJ)</algo>
324         <hypo>ViscousLayers2D=ViscousLayers2D(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreEdges())</hypo>
325         <hypo>NumberOfLayers2D=NumberOfLayers(SetNumberOfLayers())</hypo>
326       </python-wrap>
327     </algorithm>
328
329     <algorithm type     ="PolygonPerFace_2D"
330                label-id ="Polygon per Face"
331                icon-id  ="mesh_algo_polygon.png"
332                opt-hypos="ViscousLayers2D"
333                input    ="EDGE"
334                output   ="POLYGON,QUAD,TRIA"
335                dim      ="2">
336       <python-wrap>
337         <algo>PolygonPerFace_2D=Polygon()</algo>
338         <hypo>ViscousLayers2D=ViscousLayers2D(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreEdges())</hypo>
339       </python-wrap>
340     </algorithm>
341
342     <algorithm type     ="Hexa_3D"
343                label-id ="Hexahedron (i,j,k)"
344                icon-id  ="mesh_algo_hexa.png"
345                input    ="QUAD"
346                output   ="HEXA,PENTA"
347                need-geom="false"
348                opt-hypos="ViscousLayers"
349                dim      ="3">
350       <python-wrap>
351         <algo>Hexa_3D=Hexahedron(algo=smeshBuilder.Hexa)</algo>
352         <hypo>ViscousLayers=ViscousLayers(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetFaces(1),SetFaces(2),SetMethod())</hypo>
353       </python-wrap>
354     </algorithm>
355
356     <algorithm type    ="Projection_1D"
357                label-id="Projection 1D"
358                icon-id ="mesh_algo_regular.png"
359                hypos   ="ProjectionSource1D"
360                output  ="EDGE"
361                need-hyp="true"
362                dim     ="1">
363       <python-wrap>
364         <algo>Projection_1D=Projection1D()</algo>
365         <hypo>ProjectionSource1D=SourceEdge(SetSourceEdge(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(2))</hypo>
366       </python-wrap>
367     </algorithm>
368
369     <algorithm type    ="Projection_2D"
370                label-id="Projection 2D"
371                icon-id ="mesh_algo_quad.png"
372                input   ="EDGE"
373                hypos   ="ProjectionSource2D"
374                output  ="QUAD,TRIA"
375                need-hyp="true"
376                dim     ="2">
377       <python-wrap>
378         <algo>Projection_2D=Projection2D()</algo>
379         <hypo>ProjectionSource2D=SourceFace(SetSourceFace(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(3),SetVertexAssociation(2),SetVertexAssociation(4))</hypo>
380       </python-wrap>
381     </algorithm>
382
383     <algorithm type    ="Projection_1D2D"
384                label-id="Projection 1D-2D"
385                icon-id ="mesh_algo_quad.png"
386                hypos   ="ProjectionSource2D"
387                output  ="QUAD,TRIA"
388                need-hyp="true"
389                dim     ="2">
390       <python-wrap>
391         <algo>Projection_1D2D=Projection1D2D()</algo>
392         <hypo>ProjectionSource2D=SourceFace(SetSourceFace(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(2),SetVertexAssociation(3),SetVertexAssociation(4))</hypo>
393       </python-wrap>
394     </algorithm>
395
396     <algorithm type    ="Projection_3D"
397                label-id="Projection 3D"
398                icon-id ="mesh_algo_hexa.png"
399                hypos   ="ProjectionSource3D"
400                input   ="QUAD,TRIA"
401                need-hyp="true"
402                dim     ="3">
403       <python-wrap>
404         <algo>Projection_3D=Projection3D()</algo>
405         <hypo>ProjectionSource3D=SourceShape3D(SetSource3DShape(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(3),SetVertexAssociation(2),SetVertexAssociation(4))</hypo>
406       </python-wrap>
407     </algorithm>
408
409     <algorithm type    ="Import_1D"
410                label-id="Import 1D Elements from Another Mesh"
411                icon-id ="mesh_algo_regular.png"
412                hypos   ="ImportSource1D"
413                output  ="EDGE"
414                need-hyp="true"
415                dim     ="1">
416       <python-wrap>
417         <algo>Import_1D=UseExisting1DElements()</algo>
418         <hypo>ImportSource1D=SourceEdges(SetSourceEdges(),SetCopySourceMesh(1),SetCopySourceMesh(2))</hypo>
419       </python-wrap>
420     </algorithm>
421
422     <algorithm type             ="Import_1D2D"
423                label-id         ="Import 1D-2D Elements from Another Mesh"
424                icon-id          ="mesh_algo_quad.png"
425                hypos            ="ImportSource2D"
426                output           ="QUAD,TRIA"
427                support-submeshes="false"
428                need-hyp         ="true"
429                dim              ="2">
430       <python-wrap>
431         <algo>Import_1D2D=UseExisting2DElements()</algo>
432         <hypo>ImportSource2D=SourceFaces(SetSourceFaces(),SetCopySourceMesh(1),SetCopySourceMesh(2))</hypo>
433       </python-wrap>
434     </algorithm>
435
436     <algorithm type    ="Prism_3D"
437                label-id="3D Extrusion"
438                icon-id ="mesh_algo_hexa.png"
439                input   ="QUAD,TRIA"
440                output  ="HEXA,PENTA,OCTA,POLYHEDRON"
441                dim     ="3">
442       <python-wrap>
443         <algo>Prism_3D=Prism()</algo>
444       </python-wrap>
445     </algorithm>
446
447     <algorithm type    ="RadialPrism_3D"
448                label-id="Radial Prism 3D"
449                icon-id ="mesh_algo_hexa.png"
450                hypos   ="NumberOfLayers, LayerDistribution"
451                input   ="QUAD,TRIA"
452                output  ="HEXA,PENTA,OCTA,POLYHEDRON"
453                need-hyp="true"
454                dim     ="3">
455       <python-wrap>
456         <algo>RadialPrism_3D=Prism('RadialPrism_3D')</algo>
457         <hypo>NumberOfLayers=NumberOfLayers(SetNumberOfLayers())</hypo>
458       </python-wrap>
459     </algorithm>
460
461     <algorithm type    ="UseExisting_1D"
462                label-id="Use Edges to be Created Manually"
463                icon-id ="mesh_algo_regular.png"
464                input   ="VERTEX"
465                output  ="EDGE"
466                dim     ="1">
467       <python-wrap>
468         <algo>UseExisting_1D=UseExistingSegments()</algo>
469       </python-wrap>
470     </algorithm>
471
472     <algorithm type    ="UseExisting_2D"
473                label-id="Use Faces to be Created Manually"
474                icon-id ="mesh_algo_quad.png"
475                input   ="EDGE"
476                output  ="QUAD,TRIA"
477                dim     ="2">
478       <python-wrap>
479         <algo>UseExisting_2D=UseExistingFaces()</algo>
480       </python-wrap>
481     </algorithm>
482
483     <algorithm type    ="RadialQuadrangle_1D2D"
484                label-id="Radial Quadrangle 1D2D"
485                icon-id ="mesh_algo_quad.png"
486                hypos   ="NumberOfLayers2D, LayerDistribution2D"
487                input   ="EDGE"
488                output  ="QUAD"
489                dim     ="2">
490       <python-wrap>
491         <algo>RadialQuadrangle_1D2D=Quadrangle(algo=smeshBuilder.RADIAL_QUAD)</algo>
492         <hypo>NumberOfLayers2D=NumberOfLayers(SetNumberOfLayers())</hypo>
493       </python-wrap>
494     </algorithm>
495
496     <algorithm type             ="Cartesian_3D"
497                label-id         ="Body Fitting"
498                icon-id          ="mesh_algo_hexa.png"
499                hypos            ="CartesianParameters3D"
500                support-submeshes="false"
501                output           ="HEXA"
502                need-hyp         ="true"
503                context          ="GLOBAL"
504                dim              ="3">
505       <python-wrap>
506         <algo>Cartesian_3D=BodyFitted()</algo>
507       </python-wrap>
508     </algorithm>
509
510   </algorithms>
511 </meshers-group>
512
513 <meshers-group name="Your Meshers Group"
514                resources=""
515                server-lib=""
516                gui-lib="">
517   <hypotheses>
518
519     <hypothesis type=""
520                 label-id=""
521                 icon-id=""/>
522   </hypotheses>
523
524   <algorithms>
525
526     <algorithm type=""
527                label-id=""
528                icon-id=""/>
529   </algorithms>
530 </meshers-group>
531
532
533 <hypotheses-set-group>
534
535     <hypotheses-set name="Automatic Tetrahedralization"
536                     hypos="MaxLength"
537                     algos="Regular_1D, @MEFISTO2D_NAME@, NETGEN_3D"/>
538
539     <hypotheses-set name="Automatic Hexahedralization"
540                     hypos="NumberOfSegments"
541                     algos="Regular_1D, Quadrangle_2D, Hexa_3D"/>
542
543     <hypotheses-set name="Automatic Triangulation"
544                     hypos="MaxLength"
545                     algos="Regular_1D, @MEFISTO2D_NAME@"/>
546
547     <hypotheses-set name="Automatic Quadrangulation"
548                     hypos="NumberOfSegments"
549                     algos="Regular_1D, Quadrangle_2D"/>
550
551 </hypotheses-set-group>
552
553 </meshers>