Salome HOME
b82d6a441b1a8bd4090379e523cffc169da03044
[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="ViscousLayers"
157                 label-id="Viscous Layers"
158                 icon-id="mesh_algo_quad.png"
159                 auxiliary="true"
160                 dim="3"/>
161
162     <hypothesis type="NumberOfLayers2D"
163                 label-id="Number of Layers"
164                 icon-id="mesh_hypo_length.png"
165                 dim="2"/>
166
167     <hypothesis type="LayerDistribution2D"
168                 label-id="Distribution of Layers"
169                 icon-id="mesh_hypo_length.png"
170                 dim="2"/>
171
172     <hypothesis type="QuadrangleParams"
173                 label-id="Quadrangle Parameters"
174                 icon-id="mesh_hypo_length.png"
175                 dim="2"/>
176
177     <hypothesis type="CartesianParameters3D"
178                 label-id="Body Fitting Parameters"
179                 icon-id="mesh_hypo_length.png"
180                 dim="3"/>
181
182   </hypotheses>
183
184   <algorithms>
185
186     <algorithm type="SegmentAroundVertex_0D"
187                label-id="Segments around Vertex"
188                icon-id="mesh_algo_regular.png"
189                hypos="SegmentLengthAroundVertex"
190                output="VERTEX"
191                dim="0"/>
192
193     <algorithm type="Regular_1D"
194                label-id="Wire Discretisation"
195                icon-id="mesh_algo_regular.png"
196                hypos="LocalLength,MaxLength,Arithmetic1D,StartEndLength,NumberOfSegments,Deflection1D,AutomaticLength,FixedPoints1D"
197                opt-hypos="Propagation,QuadraticMesh"
198                input="VERTEX"
199                output="EDGE"
200                dim="1">
201       <python-wrap>
202         <algo>Regular_1D=Segment()</algo>
203         <hypo>LocalLength=LocalLength(SetLength(1),,SetPrecision(1))</hypo>
204         <hypo>MaxLength=MaxSize(SetLength(1))</hypo>
205         <hypo>Arithmetic1D=Arithmetic1D(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
206         <hypo>StartEndLength=StartEndLength(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
207         <hypo>Deflection1D=Deflection1D(SetDeflection())</hypo>
208         <hypo>AutomaticLength=AutomaticLength(SetFineness())</hypo>
209         <hypo>FixedPoints1D=FixedPoints1D(SetPoints(),SetNbSegments(),SetReversedEdges())</hypo>
210         <hypo>Propagation=Propagation()</hypo>
211         <hypo>QuadraticMesh=QuadraticMesh()</hypo>
212       </python-wrap>
213     </algorithm>
214
215     <algorithm type="CompositeSegment_1D"
216                label-id="Composite Side Discretisation"
217                icon-id="mesh_algo_regular.png"
218                hypos="LocalLength,MaxLength,Arithmetic1D,StartEndLength,NumberOfSegments,Deflection1D,AutomaticLength,FixedPoints1D"
219                opt-hypos="Propagation,QuadraticMesh"
220                input="VERTEX"
221                output="EDGE"
222                dim="1">
223       <python-wrap>
224         <algo>CompositeSegment_1D=Segment(algo=smesh.COMPOSITE)</algo>
225         <hypo>LocalLength=LocalLength(SetLength(), ,SetPrecision())</hypo>
226         <hypo>MaxLength=MaxSize(SetLength())</hypo>
227         <hypo>Arithmetic1D=Arithmetic1D(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
228         <hypo>StartEndLength=StartEndLength(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
229         <hypo>Deflection1D=Deflection1D(SetDeflection())</hypo>
230         <hypo>AutomaticLength=AutomaticLength(SetFineness())</hypo>
231         <hypo>FixedPoints1D=FixedPoints1D(SetPoints(),SetNbSegments(),SetReversedEdges())</hypo>
232         <hypo>Propagation=Propagation()</hypo>
233         <hypo>QuadraticMesh=QuadraticMesh()</hypo>
234       </python-wrap>
235     </algorithm>
236
237     <algorithm type="Python_1D"
238                output="EDGE"
239                dim="1">
240       <python-wrap>
241         <algo>Python_1D=Segment(algo=smesh.PYTHON)</algo>
242         <hypo>PythonSplit1D=PythonSplit1D(SetNumberOfSegments(),SetPythonLog10RatioFunction())</hypo>
243       </python-wrap>
244     </algorithm>
245
246     <algorithm type="MEFISTO_2D"
247                label-id="Triangle (Mefisto)"
248                icon-id="mesh_algo_mefisto.png"
249                hypos="LengthFromEdges,MaxElementArea"
250                input="EDGE"
251                output="TRIA"
252                dim="2">
253       <python-wrap>
254         <algo>MEFISTO_2D=Triangle(algo=smesh.MEFISTO)</algo>
255         <hypo>LengthFromEdges=LengthFromEdges()</hypo>
256         <hypo>MaxElementArea=MaxElementArea(SetMaxElementArea())</hypo>
257       </python-wrap>
258     </algorithm>
259
260     <algorithm type="Quadrangle_2D"
261                label-id="Quadrangle (Mapping)"
262                icon-id="mesh_algo_quad.png"
263                hypos="QuadrangleParams"
264                input="EDGE"
265                output="QUAD"
266                dim="2">
267       <python-wrap>
268         <algo>Quadrangle_2D=Quadrangle(algo=smesh.QUADRANGLE)</algo>
269         <hypo>QuadrangleParams=QuadrangleParameters(SetQuadType(),SetTriaVertex())</hypo>
270       </python-wrap>
271     </algorithm>
272
273     <algorithm type="Hexa_3D"
274                label-id="Hexahedron (i,j,k)"
275                icon-id="mesh_algo_hexa.png"
276                input="QUAD"
277                need-geom="false"
278                opt-hypos="ViscousLayers"
279                dim="3">
280       <python-wrap>
281         <algo>Hexa_3D=Hexahedron(algo=smesh.Hexa)</algo>
282         <hypo>ViscousLayers=ViscousLayers(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreFaces())</hypo>
283       </python-wrap>
284     </algorithm>
285
286     <algorithm type="Projection_1D"
287                label-id="Projection 1D"
288                icon-id="mesh_algo_regular.png"
289                hypos="ProjectionSource1D"
290                output="EDGE"
291                dim="1">
292       <python-wrap>
293         <algo>Projection_1D=Projection1D()</algo>
294         <hypo>ProjectionSource1D=SourceEdge(SetSourceEdge(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(2))</hypo>
295       </python-wrap>
296     </algorithm>
297
298     <algorithm type="Projection_2D"
299                label-id="Projection 2D"
300                icon-id="mesh_algo_quad.png"
301                input="EDGE"
302                hypos="ProjectionSource2D"
303                output="QUAD,TRIA"
304                dim="2">
305       <python-wrap>
306         <algo>Projection_2D=Projection2D()</algo>
307         <hypo>ProjectionSource2D=SourceFace(SetSourceFace(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(3),SetVertexAssociation(2),SetVertexAssociation(4))</hypo>
308       </python-wrap>
309     </algorithm>
310
311     <algorithm type="Projection_1D2D"
312                label-id="Projection 1D-2D"
313                icon-id="mesh_algo_quad.png"
314                input=""
315                hypos="ProjectionSource2D"
316                output="QUAD,TRIA"
317                dim="2">
318       <python-wrap>
319         <algo>Projection_1D2D=Projection1D2D()</algo>
320         <hypo>ProjectionSource2D=SourceFace(SetSourceFace(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(2),SetVertexAssociation(3),SetVertexAssociation(4))</hypo>
321       </python-wrap>
322     </algorithm>
323
324     <algorithm type="Projection_3D"
325                label-id="Projection 3D"
326                icon-id="mesh_algo_hexa.png"
327                hypos="ProjectionSource3D"
328                input="QUAD,TRIA"
329                dim="3">
330       <python-wrap>
331         <algo>Projection_3D=Projection3D()</algo>
332         <hypo>ProjectionSource3D=SourceShape3D(SetSource3DShape(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(3),SetVertexAssociation(2),SetVertexAssociation(4))</hypo>
333       </python-wrap>
334     </algorithm>
335
336     <algorithm type="Import_1D"
337                label-id="Use Existing 1D Elements"
338                icon-id="mesh_algo_regular.png"
339                hypos="ImportSource1D"
340                output="EDGE"
341                dim="1">
342       <python-wrap>
343         <algo>Import_1D=UseExisting1DElements()</algo>
344         <hypo>ImportSource1D=SourceEdges(SetSourceEdges(),SetCopySourceMesh(1),SetCopySourceMesh(2))</hypo>
345       </python-wrap>
346     </algorithm>
347
348     <algorithm type="Import_1D2D"
349                label-id="Use Existing 2D Elements"
350                icon-id="mesh_algo_quad.png"
351                hypos="ImportSource2D"
352                output="QUAD,TRIA"
353                support-submeshes="false"
354                dim="2">
355       <python-wrap>
356         <algo>Import_1D2D=UseExisting2DElements()</algo>
357         <hypo>ImportSource2D=SourceFaces(SetSourceFaces(),SetCopySourceMesh(1),SetCopySourceMesh(2))</hypo>
358       </python-wrap>
359     </algorithm>
360
361     <algorithm type="Prism_3D"
362                label-id="3D Extrusion"
363                icon-id="mesh_algo_hexa.png"
364                input="QUAD,TRIA"
365                dim="3">
366       <python-wrap>
367         <algo>Prism_3D=Prism()</algo>
368       </python-wrap>
369     </algorithm>
370
371     <algorithm type="RadialPrism_3D"
372                label-id="Radial Prism 3D"
373                icon-id="mesh_algo_hexa.png"
374                hypos="NumberOfLayers, LayerDistribution"
375                input="QUAD,TRIA"
376                dim="3">
377       <python-wrap>
378         <algo>RadialPrism_3D=Prism('RadialPrism_3D')</algo>
379         <hypo>NumberOfLayers=NumberOfLayers(SetNumberOfLayers())</hypo>
380       </python-wrap>
381     </algorithm>
382
383     <algorithm type="UseExisting_1D"
384                label-id="Use Existing Edges"
385                icon-id="mesh_algo_regular.png"
386                input="VERTEX"
387                output="EDGE"
388                dim="1">
389       <python-wrap>
390         <algo>UseExisting_1D=UseExistingSegments()</algo>
391       </python-wrap>
392     </algorithm>
393
394     <algorithm type="UseExisting_2D"
395                label-id="Use Existing Faces"
396                icon-id="mesh_algo_quad.png"
397                input="EDGE"
398                output="QUAD,TRIA"
399                dim="2">
400       <python-wrap>
401         <algo>UseExisting_2D=UseExistingFaces()</algo>
402       </python-wrap>
403     </algorithm>
404
405     <algorithm type="RadialQuadrangle_1D2D"
406                label-id="Radial Quadrangle 1D2D"
407                icon-id="mesh_algo_quad.png"
408                hypos="NumberOfLayers2D, LayerDistribution2D"
409                input="EDGE"
410                output="QUAD,TRIA"
411                dim="2">
412       <python-wrap>
413         <algo>RadialQuadrangle_1D2D=Quadrangle(algo=smesh.RADIAL_QUAD)</algo>
414         <hypo>NumberOfLayers2D=NumberOfLayers(SetNumberOfLayers())</hypo>
415       </python-wrap>
416     </algorithm>
417
418     <algorithm type="Cartesian_3D"
419                label-id="Body Fitting"
420                icon-id="mesh_algo_hexa.png"
421                hypos="CartesianParameters3D"
422                support-submeshes="false"
423                dim="3">
424       <python-wrap>
425         <algo>Cartesian_3D=BodyFitted()</algo>
426       </python-wrap>
427     </algorithm>
428
429   </algorithms>
430 </meshers-group>
431
432 <meshers-group name="Your Meshers Group"
433                resources=""
434                server-lib=""
435                gui-lib="">
436   <hypotheses>
437
438     <hypothesis type=""
439                 label-id=""
440                 icon-id=""/>
441   </hypotheses>
442
443   <algorithms>
444
445     <algorithm type=""
446                label-id=""
447                icon-id=""/>
448   </algorithms>
449 </meshers-group>
450
451
452 <hypotheses-set-group>
453
454     <hypotheses-set name="Automatic Tetrahedralization"
455                     hypos="MaxLength"
456                     algos="Regular_1D, MEFISTO_2D, NETGEN_3D"/>
457
458     <hypotheses-set name="Automatic Hexahedralization"
459                     hypos="NumberOfSegments"
460                     algos="Regular_1D, Quadrangle_2D, Hexa_3D"/>
461
462     <hypotheses-set name="Automatic Triangulation"
463                     hypos="MaxLength"
464                     algos="Regular_1D, MEFISTO_2D"/>
465
466     <hypotheses-set name="Automatic Quadrangulation"
467                     hypos="NumberOfSegments"
468                     algos="Regular_1D, Quadrangle_2D"/>
469
470 </hypotheses-set-group>
471
472 </meshers>