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