Salome HOME
54416: Extrusion 3D algo is not applicable to a prismatic shape
[modules/smesh.git] / resources / StdMeshers.xml.in
index 239ff2cb4919b3e4cdce58a31602899989bb665e..14ed93a0c9b0abefee7f9e86d5df842ed55b678a 100644 (file)
@@ -1,38 +1,39 @@
 <?xml version='1.0' encoding='us-ascii'?>
 <!DOCTYPE meshers PUBLIC "" "desktop.dtd">
-<!--
-  Copyright (C) 2007-2014  CEA/DEN, EDF R&D, OPEN CASCADE
 
-  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
-
-  This library is free software; you can redistribute it and/or
-  modify it under the terms of the GNU Lesser General Public
-  License as published by the Free Software Foundation; either
-  version 2.1 of the License, or (at your option) any later version.
-
-  This library is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-  Lesser General Public License for more details.
-
-  You should have received a copy of the GNU Lesser General Public
-  License along with this library; if not, write to the Free Software
-  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-
-  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
-
--->
-
-<!--  GUI customization for MESH component  -->
+<!-- Attributes of hypotheses/algorithms:
+
+     type - string identifier of a hyp.
+     label-id - hypothesis type name in Create Mesh dialog.
+     icon-id - not used.
+     group-id - (optional) integer ID of a group the hyp belongs to in Create Mesh dialog;
+                by default the hyp is in the last group.
+     priority - (optional) priority within the group; by default the hyp is last in group.
+     dim - dimension; defines a tab page in Create Mesh dialog.
+     context - (optional) allowed context: [LOCAL, GLOBAL, ANY(default)]. LOCAL - the hyp 
+               can be only local (on sub-mesh). GLOBAL - the hyp can be only GLOBAL (on mesh).
+     auxiliary - (optional) Boolean. Is additional hyp or not. Default is "false".
+     hypos - list of types of compatible hyps of the algorithm.
+     opt-hypos = (optional) list of types of compatible ADDITIONAL hyps of the algorithm.
+     output - geometry of elements generated by the algo. Used to define compatible algos of
+              different dimensions. Compatible algos have equal geometries in "input" and "output".
+     input - geometry of elements accepted by algorithm input. Used to define compatible algos of
+             different dimensions. Compatible algos have equal geometries in "input" and "output".
+     need-hyp - (optional) Boolean. Does the algo require a hypothesis or not. Default is "false".
+     need-geom - (optional) [true, fasle, never]. Can the algo work w/o geometry or not.
+             Default is "true". "never" means that the algo can't work with geometry.
+     support-submeshes - (optional) Boolean. Does an multi-dimensional algo support sub-meshes.
+                         Default is "false".
+     
+  -->
 
 <meshers>
 
-<meshers-group name="Standard Meshers"
-               resources="StdMeshers"
+<meshers-group name      ="Standard Meshers"
+               resources ="StdMeshers"
                idl-module="StdMeshers"
                server-lib="StdMeshersEngine"
-               gui-lib="StdMeshersGUI">
+               gui-lib   ="StdMeshersGUI">
   <hypotheses>
 
     <hypothesis type     ="SegmentLengthAroundVertex"
     <hypothesis type     ="LocalLength"
                 label-id ="Local Length"
                 icon-id  ="mesh_hypo_length.png"
+                group-id ="0"
+                priority ="20"
                 dim      ="1"/>
 
     <hypothesis type     ="MaxLength"
                 label-id ="Max Size"
                 icon-id  ="mesh_hypo_length.png"
+                group-id ="2"
+                priority ="50"
                 dim      ="1"/>
 
     <hypothesis type     ="Arithmetic1D"
-                label-id ="Arithmetic 1D"
+                label-id ="Arithmetic Progression"
                 icon-id  ="mesh_hypo_length.png"
+                group-id ="1"
+                priority ="10"
                 dim      ="1"/>
 
     <hypothesis type     ="GeometricProgression"
                 label-id ="Geometric Progression"
                 icon-id  ="mesh_hypo_length.png"
+                group-id ="1"
+                priority ="20"
                 dim      ="1"/>
 
     <hypothesis type     ="FixedPoints1D"
-                label-id ="Fixed Points 1D"
+                label-id ="Fixed Points"
                 icon-id  ="mesh_hypo_length.png"
+                group-id ="2"
+                priority ="10"
                 dim      ="1"/>
 
     <hypothesis type     ="StartEndLength"
                 label-id ="Start and End Length"
                 icon-id  ="mesh_hypo_length.png"
+                group-id ="1"
+                priority ="30"
                 dim      ="1"/>
 
     <hypothesis type     ="NumberOfSegments"
-                label-id ="Nb. Segments"
+                label-id ="Number of Segments"
                 icon-id  ="mesh_hypo_segment.png"
+                group-id ="0"
+                priority ="10"
                 dim      ="1"/>
 
     <hypothesis type     ="Deflection1D"
-                label-id ="Deflection 1D"
+                label-id ="Deflection"
                 icon-id  ="mesh_hypo_length.png"
+                group-id ="2"
+                priority ="20"
                 dim      ="1"/>
 
     <hypothesis type     ="Adaptive1D"
                 label-id ="Adaptive"
                 icon-id  ="mesh_hypo_length.png"
+                group-id ="2"
+                priority ="30"
                 dim      ="1"/>
 
     <hypothesis type     ="Propagation"
     <hypothesis type     ="AutomaticLength"
                 label-id ="Automatic Length"
                 icon-id  ="mesh_hypo_length.png"
+                group-id ="2"
+                priority ="40"
                 dim      ="1"/>
 
     <hypothesis type     ="LengthFromEdges"
                 label-id ="Quadratic Mesh"
                 icon-id  ="mesh_algo_quad.png"
                 dim      ="1"
-                context  ="GLOBAL"
                 auxiliary="true"/>                
 
     <hypothesis type     ="MaxElementArea"
               label-id ="Segments around Vertex"
               icon-id  ="mesh_algo_regular.png"
                hypos    ="SegmentLengthAroundVertex"
-               output   ="VERTEX"
+               output   ="NODE"
                need-hyp ="true"
                dim      ="0"/>
 
     <algorithm type     ="Regular_1D"
               label-id ="Wire Discretisation"
               icon-id  ="mesh_algo_regular.png"
+               group-id ="0"
+               priority ="10"
                hypos    ="Adaptive1D,LocalLength,MaxLength,Arithmetic1D,GeometricProgression,StartEndLength,NumberOfSegments,Deflection1D,AutomaticLength,FixedPoints1D"
                opt-hypos="Propagation,PropagOfDistribution,QuadraticMesh"
-               input    ="VERTEX"
+               input    ="NODE"
                output   ="EDGE"
                need-hyp ="true"
                dim      ="1">
     <algorithm type     ="CompositeSegment_1D"
               label-id ="Composite Side Discretisation"
               icon-id  ="mesh_algo_regular.png"
+               group-id ="0"
+               priority ="20"
                hypos    ="Adaptive1D,LocalLength,MaxLength,Arithmetic1D,GeometricProgression,StartEndLength,NumberOfSegments,Deflection1D,AutomaticLength,FixedPoints1D"
                opt-hypos="Propagation,PropagOfDistribution,QuadraticMesh"
-               input    ="VERTEX"
+               input    ="NODE"
                output   ="EDGE"
                need-hyp ="true"
                dim      ="1">
     </algorithm>
 
     <algorithm type      ="@MEFISTO2D_NAME@"
-              label-id  ="Triangle (Mefisto)"
+              label-id  ="Triangle: Mefisto"
               icon-id   ="mesh_algo_mefisto.png"
+               group-id ="1"
+               priority ="40"
                hypos     ="LengthFromEdges,MaxElementArea"
                opt-hypos ="ViscousLayers2D"
                input     ="EDGE"
     </algorithm>
 
     <algorithm type     ="Quadrangle_2D"
-               label-id ="Quadrangle (Mapping)"
+               label-id ="Quadrangle: Mapping"
                icon-id  ="mesh_algo_quad.png"
+               group-id ="0"
+               priority ="10"
                hypos    ="QuadrangleParams"
                opt-hypos="ViscousLayers2D"
                input    ="EDGE"
                dim      ="2">
       <python-wrap>
         <algo>Quadrangle_2D=Quadrangle(algo=smeshBuilder.QUADRANGLE)</algo>
-        <hypo>QuadrangleParams=QuadrangleParameters(SetQuadType(),SetTriaVertex(),SetEnforcedNodes(1),SetEnforcedNodes(2))</hypo>
+        <hypo>QuadrangleParams=QuadrangleParameters(SetQuadType(),SetTriaVertex(),SetEnforcedNodes(1),SetEnforcedNodes(2),SetCorners())</hypo>
+        <hypo>ViscousLayers2D=ViscousLayers2D(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreEdges())</hypo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type     ="QuadFromMedialAxis_1D2D"
+               label-id ="Quadrangle: Medial Axis Projection"
+               icon-id  ="mesh_algo_quad.png"
+               group-id ="0"
+               priority ="20"
+               hypos    ="NumberOfLayers2D, LayerDistribution2D"
+               opt-hypos="ViscousLayers2D"
+               input    ="EDGE"
+               output   ="QUAD"
+               dim      ="2">
+      <python-wrap>
+        <algo>QuadFromMedialAxis_1D2D=Quadrangle(algo=smeshBuilder.QUAD_MA_PROJ)</algo>
+        <hypo>ViscousLayers2D=ViscousLayers2D(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreEdges())</hypo>
+        <hypo>NumberOfLayers2D=NumberOfLayers(SetNumberOfLayers())</hypo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type     ="PolygonPerFace_2D"
+               label-id ="Polygon per Face"
+               icon-id  ="mesh_algo_polygon.png"
+               group-id ="2"
+               priority ="40"
+               opt-hypos="ViscousLayers2D"
+               input    ="EDGE"
+               output   ="POLYGON,QUAD,TRIA"
+               dim      ="2">
+      <python-wrap>
+        <algo>PolygonPerFace_2D=Polygon()</algo>
         <hypo>ViscousLayers2D=ViscousLayers2D(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreEdges())</hypo>
       </python-wrap>
     </algorithm>
     <algorithm type     ="Hexa_3D"
                label-id ="Hexahedron (i,j,k)"
                icon-id  ="mesh_algo_hexa.png"
+               group-id ="0"
+               priority ="10"
                input    ="QUAD"
                output   ="HEXA,PENTA"
               need-geom="false"
                dim      ="3">
       <python-wrap>
         <algo>Hexa_3D=Hexahedron(algo=smeshBuilder.Hexa)</algo>
-        <hypo>ViscousLayers=ViscousLayers(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreFaces())</hypo>
+        <hypo>ViscousLayers=ViscousLayers(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetFaces(1),SetFaces(2),SetMethod())</hypo>
       </python-wrap>
     </algorithm>
 
     <algorithm type    ="Projection_1D"
                label-id="Projection 1D"
                icon-id ="mesh_algo_regular.png"
+               group-id="1"
+               priority="10"
                hypos   ="ProjectionSource1D"
                output  ="EDGE"
                need-hyp="true"
     <algorithm type    ="Projection_2D"
                label-id="Projection 2D"
                icon-id ="mesh_algo_quad.png"
+               group-id="2"
+               priority="30"
                input   ="EDGE"
                hypos   ="ProjectionSource2D"
                output  ="QUAD,TRIA"
     <algorithm type    ="Projection_1D2D"
                label-id="Projection 1D-2D"
                icon-id ="mesh_algo_quad.png"
+               group-id="2"
+               priority="20"
                hypos   ="ProjectionSource2D"
                output  ="QUAD,TRIA"
                need-hyp="true"
     <algorithm type    ="Projection_3D"
                label-id="Projection 3D"
                icon-id ="mesh_algo_hexa.png"
+               group-id="2"
+               priority="20"
                hypos   ="ProjectionSource3D"
                input   ="QUAD,TRIA"
                need-hyp="true"
     <algorithm type    ="Import_1D"
                label-id="Import 1D Elements from Another Mesh"
                icon-id ="mesh_algo_regular.png"
+               group-id="1"
+               priority="20"
                hypos   ="ImportSource1D"
                output  ="EDGE"
                need-hyp="true"
     <algorithm type             ="Import_1D2D"
                label-id         ="Import 1D-2D Elements from Another Mesh"
                icon-id          ="mesh_algo_quad.png"
+               group-id         ="2"
+               priority         ="50"
                hypos            ="ImportSource2D"
                output           ="QUAD,TRIA"
                support-submeshes="false"
     </algorithm>
 
     <algorithm type    ="Prism_3D"
-               label-id="3D Extrusion"
+               label-id="Extrusion 3D"
                icon-id ="mesh_algo_hexa.png"
-               input   ="QUAD,TRIA"
+               group-id="2"
+               priority="10"
+               input   ="EDGE"
                output  ="HEXA,PENTA,OCTA,POLYHEDRON"
                dim     ="3">
       <python-wrap>
     </algorithm>
 
     <algorithm type    ="RadialPrism_3D"
-               label-id="Radial Prism 3D"
+               label-id="Radial Prism"
                icon-id ="mesh_algo_hexa.png"
+               group-id="2"
+               priority="30"
                hypos   ="NumberOfLayers, LayerDistribution"
                input   ="QUAD,TRIA"
                output  ="HEXA,PENTA,OCTA,POLYHEDRON"
     <algorithm type    ="UseExisting_1D"
                label-id="Use Edges to be Created Manually"
                icon-id ="mesh_algo_regular.png"
-               input   ="VERTEX"
+               group-id="1"
+               priority="30"
+               input   ="NODE"
                output  ="EDGE"
                dim     ="1">
       <python-wrap>
     <algorithm type    ="UseExisting_2D"
                label-id="Use Faces to be Created Manually"
                icon-id ="mesh_algo_quad.png"
+               group-id="2"
+               priority="60"
                input   ="EDGE"
                output  ="QUAD,TRIA"
                dim     ="2">
     </algorithm>
 
     <algorithm type    ="RadialQuadrangle_1D2D"
-               label-id="Radial Quadrangle 1D2D"
+               label-id="Radial Quadrangle 1D-2D"
                icon-id ="mesh_algo_quad.png"
+               group-id="2"
+               priority="10"
                hypos   ="NumberOfLayers2D, LayerDistribution2D"
                input   ="EDGE"
                output  ="QUAD"
     <algorithm type             ="Cartesian_3D"
                label-id         ="Body Fitting"
                icon-id          ="mesh_algo_hexa.png"
+               group-id         ="0"
+               priority         ="20"
                hypos            ="CartesianParameters3D"
                support-submeshes="false"
                output           ="HEXA"