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