Salome HOME
0022104: EDF 2550 SMESH: 2D viscous layer, allow specifying edges with viscous layer
[modules/smesh.git] / resources / StdMeshers.xml
index 49aae9d0d494975bd5a5f2a085d15ce5236b2dad..3deebff7cea5834549ab326eefffbdd34abd3b93 100644 (file)
@@ -1,5 +1,28 @@
 <?xml version='1.0' encoding='us-ascii'?>
 <!DOCTYPE meshers PUBLIC "" "desktop.dtd">
+<!--
+  Copyright (C) 2007-2013  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.
+
+  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  -->
 
 
 <meshers-group name="Standard Meshers"
                resources="StdMeshers"
-               server-lib="libStdMeshersEngine.so"
-              gui-lib="libStdMeshersGUI.so">
+               server-lib="StdMeshersEngine"
+               gui-lib="StdMeshersGUI">
   <hypotheses>
 
-    <hypothesis type="LocalLength"
-               label-id="Average length"
-               icon-id="mesh_hypo_length.png"/>
+    <hypothesis type     ="SegmentLengthAroundVertex"
+                label-id ="Length Near Vertex"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="0"/>
+
+    <hypothesis type     ="LocalLength"
+                label-id ="Local Length"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="1"/>
+
+    <hypothesis type     ="MaxLength"
+                label-id ="Max Size"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="1"/>
+
+    <hypothesis type     ="Arithmetic1D"
+                label-id ="Arithmetic 1D"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="1"/>
+
+    <hypothesis type     ="FixedPoints1D"
+                label-id ="Fixed Points 1D"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="1"/>
+
+    <hypothesis type     ="StartEndLength"
+                label-id ="Start and End Length"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="1"/>
+
+    <hypothesis type     ="NumberOfSegments"
+                label-id ="Nb. Segments"
+                icon-id  ="mesh_hypo_segment.png"
+                dim      ="1"/>
+
+    <hypothesis type     ="Deflection1D"
+                label-id ="Deflection 1D"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="1"/>
+
+    <hypothesis type     ="Propagation"
+                label-id ="Propagation of 1D Hyp. on Opposite Edges"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="1"
+                auxiliary="true"/>
+
+    <hypothesis type     ="AutomaticLength"
+                label-id ="Automatic Length"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="1"/>
+
+    <hypothesis type     ="LengthFromEdges"
+                label-id ="Length From Edges"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="2"/>
+
+    <hypothesis type     ="QuadranglePreference"
+                label-id ="Quadrangle Preference"
+                icon-id  ="mesh_algo_quad.png"
+                auxiliary="true"
+                dim      ="2"/>
+
+    <hypothesis type     ="QuadraticMesh"
+                label-id ="Quadratic Mesh"
+                icon-id  ="mesh_algo_quad.png"
+                dim      ="1"
+                auxiliary="true"/>                
+
+    <hypothesis type     ="MaxElementArea"
+                label-id ="Max. Element Area"
+                icon-id  ="mesh_hypo_area.png"
+                dim      ="2"/>
+                
+    <hypothesis type     ="NotConformAllowed"
+                label-id ="Not Conform Mesh Allowed"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="1,2,3"
+                auxiliary="true"/>                
+
+    <hypothesis type     ="MaxElementVolume"
+                label-id ="Max. Element Volume"
+                icon-id  ="mesh_hypo_volume.png"
+                dim      ="3"/>
+
+    <hypothesis type     ="ProjectionSource3D"
+                label-id ="Source Shape 3D"
+                icon-id  ="mesh_hypo_volume.png"
+                dim      ="3"/>
+
+    <hypothesis type     ="ProjectionSource2D"
+                label-id ="Source Face"
+                icon-id  ="mesh_hypo_area.png"
+                dim      ="2"/>
+
+    <hypothesis type     ="ProjectionSource1D"
+                label-id ="Source Edge"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="1"/>
+
+    <hypothesis type     ="ImportSource2D"
+                label-id ="Source Faces"
+                icon-id  ="mesh_hypo_area.png"
+                dim      ="2"/>
+
+    <hypothesis type     ="ImportSource1D"
+                label-id ="Source Edges"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="1"/>
+
+    <hypothesis type     ="NumberOfLayers"
+                label-id ="Number of Layers"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="3"/>
 
-    <hypothesis type="LengthFromEdges"
-               label-id="Length From Edges (2D Hyp. for Triangulator)"
-               icon-id="mesh_hypo_length.png"/>
+    <hypothesis type     ="LayerDistribution"
+                label-id ="Distribution of Layers"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="3"/>
 
-    <hypothesis type="NumberOfSegments"
-               label-id="Nb. Segments"
-               icon-id="mesh_hypo_segment.png"/>
+    <hypothesis type     ="ViscousLayers2D"
+                label-id ="Viscous Layers 2D"
+                icon-id  ="mesh_algo_quad.png"
+                auxiliary="true"
+                dim      ="2"/>
 
-    <hypothesis type="MaxElementArea"
-               label-id="Max. Triangle Area"
-               icon-id="mesh_hypo_area.png"/>
+    <hypothesis type     ="ViscousLayers"
+                label-id ="Viscous Layers"
+                icon-id  ="mesh_algo_quad.png"
+                auxiliary="true"
+                dim      ="3"/>
 
-    <hypothesis type="MaxElementVolume"
-               label-id="Max. Hexahedron or Tetrahedron Volume"
-               icon-id="mesh_hypo_volume.png"/>
+    <hypothesis type     ="NumberOfLayers2D"
+                label-id ="Number of Layers"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="2"/>
+
+    <hypothesis type     ="LayerDistribution2D"
+                label-id ="Distribution of Layers"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="2"/>
+
+    <hypothesis type     ="QuadrangleParams"
+                label-id ="Quadrangle Parameters"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="2"/>
+
+    <hypothesis type     ="CartesianParameters3D"
+                label-id ="Body Fitting Parameters"
+                icon-id  ="mesh_hypo_length.png"
+                dim      ="3"/>
 
-    <hypothesis type="NotConformAllowed"
-               label-id="Not Conform Mesh Allowed"
-               icon-id="mesh_hypo_length.png"/>
   </hypotheses>
 
   <algorithms>
 
-    <algorithm type="Regular_1D"
-              label-id="Wire discretisation"
-              icon-id="mesh_algo_regular.png"/>
+    <algorithm type     ="SegmentAroundVertex_0D"
+              label-id ="Segments around Vertex"
+              icon-id  ="mesh_algo_regular.png"
+               hypos    ="SegmentLengthAroundVertex"
+               output   ="VERTEX"
+               dim      ="0"/>
+
+    <algorithm type     ="Regular_1D"
+              label-id ="Wire Discretisation"
+              icon-id  ="mesh_algo_regular.png"
+               hypos    ="LocalLength,MaxLength,Arithmetic1D,StartEndLength,NumberOfSegments,Deflection1D,AutomaticLength,FixedPoints1D"
+               opt-hypos="Propagation,QuadraticMesh"
+               input    ="VERTEX"
+               output   ="EDGE"
+               dim      ="1">
+      <python-wrap>
+        <algo>Regular_1D=Segment()</algo>
+        <hypo>LocalLength=LocalLength(SetLength(1),,SetPrecision(1))</hypo>
+        <hypo>MaxLength=MaxSize(SetLength(1))</hypo>
+        <hypo>Arithmetic1D=Arithmetic1D(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
+        <hypo>StartEndLength=StartEndLength(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
+        <hypo>Deflection1D=Deflection1D(SetDeflection())</hypo>
+        <hypo>AutomaticLength=AutomaticLength(SetFineness())</hypo>
+        <hypo>FixedPoints1D=FixedPoints1D(SetPoints(),SetNbSegments(),SetReversedEdges())</hypo>
+        <hypo>Propagation=Propagation()</hypo>
+        <hypo>QuadraticMesh=QuadraticMesh()</hypo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type     ="CompositeSegment_1D"
+              label-id ="Composite Side Discretisation"
+              icon-id  ="mesh_algo_regular.png"
+               hypos    ="LocalLength,MaxLength,Arithmetic1D,StartEndLength,NumberOfSegments,Deflection1D,AutomaticLength,FixedPoints1D"
+               opt-hypos="Propagation,QuadraticMesh"
+               input    ="VERTEX"
+               output   ="EDGE"
+               dim      ="1">
+      <python-wrap>
+        <algo>CompositeSegment_1D=Segment(algo=smeshBuilder.COMPOSITE)</algo>
+        <hypo>LocalLength=LocalLength(SetLength(), ,SetPrecision())</hypo>
+        <hypo>MaxLength=MaxSize(SetLength())</hypo>
+        <hypo>Arithmetic1D=Arithmetic1D(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
+        <hypo>StartEndLength=StartEndLength(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
+        <hypo>Deflection1D=Deflection1D(SetDeflection())</hypo>
+        <hypo>AutomaticLength=AutomaticLength(SetFineness())</hypo>
+        <hypo>FixedPoints1D=FixedPoints1D(SetPoints(),SetNbSegments(),SetReversedEdges())</hypo>
+        <hypo>Propagation=Propagation()</hypo>
+        <hypo>QuadraticMesh=QuadraticMesh()</hypo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type="Python_1D"
+               output="EDGE"
+               dim="1">
+      <python-wrap>
+        <algo>Python_1D=Segment(algo=smeshBuilder.PYTHON)</algo>
+        <hypo>PythonSplit1D=PythonSplit1D(SetNumberOfSegments(),SetPythonLog10RatioFunction())</hypo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type      ="MEFISTO_2D"
+              label-id  ="Triangle (Mefisto)"
+              icon-id   ="mesh_algo_mefisto.png"
+               hypos     ="LengthFromEdges,MaxElementArea"
+               opt-hypos ="ViscousLayers2D"
+               input     ="EDGE"
+               output    ="TRIA"
+               dim       ="2">
+      <python-wrap>
+        <algo>MEFISTO_2D=Triangle(algo=smeshBuilder.MEFISTO)</algo>
+        <hypo>LengthFromEdges=LengthFromEdges()</hypo>
+        <hypo>MaxElementArea=MaxElementArea(SetMaxElementArea())</hypo>
+        <hypo>ViscousLayers2D=ViscousLayers2D(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetEdges(1),SetEdges(2))</hypo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type     ="Quadrangle_2D"
+               label-id ="Quadrangle (Mapping)"
+               icon-id  ="mesh_algo_quad.png"
+               hypos    ="QuadrangleParams"
+               opt-hypos="ViscousLayers2D"
+               input    ="EDGE"
+               output   ="QUAD"
+               dim      ="2">
+      <python-wrap>
+        <algo>Quadrangle_2D=Quadrangle(algo=smeshBuilder.QUADRANGLE)</algo>
+        <hypo>QuadrangleParams=QuadrangleParameters(SetQuadType(),SetTriaVertex())</hypo>
+        <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"
+               input    ="QUAD"
+              need-geom="false"
+               opt-hypos="ViscousLayers"
+               dim      ="3">
+      <python-wrap>
+        <algo>Hexa_3D=Hexahedron(algo=smeshBuilder.Hexa)</algo>
+        <hypo>ViscousLayers=ViscousLayers(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetIgnoreFaces())</hypo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type    ="Projection_1D"
+               label-id="Projection 1D"
+               icon-id ="mesh_algo_regular.png"
+               hypos   ="ProjectionSource1D"
+               output  ="EDGE"
+               dim     ="1">
+      <python-wrap>
+        <algo>Projection_1D=Projection1D()</algo>
+        <hypo>ProjectionSource1D=SourceEdge(SetSourceEdge(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(2))</hypo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type    ="Projection_2D"
+               label-id="Projection 2D"
+               icon-id ="mesh_algo_quad.png"
+               input   ="EDGE"
+               hypos   ="ProjectionSource2D"
+               output  ="QUAD,TRIA"
+               dim     ="2">
+      <python-wrap>
+        <algo>Projection_2D=Projection2D()</algo>
+        <hypo>ProjectionSource2D=SourceFace(SetSourceFace(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(3),SetVertexAssociation(2),SetVertexAssociation(4))</hypo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type    ="Projection_1D2D"
+               label-id="Projection 1D-2D"
+               icon-id ="mesh_algo_quad.png"
+               hypos   ="ProjectionSource2D"
+               output  ="QUAD,TRIA"
+               dim     ="2">
+      <python-wrap>
+        <algo>Projection_1D2D=Projection1D2D()</algo>
+        <hypo>ProjectionSource2D=SourceFace(SetSourceFace(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(2),SetVertexAssociation(3),SetVertexAssociation(4))</hypo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type    ="Projection_3D"
+               label-id="Projection 3D"
+               icon-id ="mesh_algo_hexa.png"
+               hypos   ="ProjectionSource3D"
+               input   ="QUAD,TRIA"
+               dim     ="3">
+      <python-wrap>
+        <algo>Projection_3D=Projection3D()</algo>
+        <hypo>ProjectionSource3D=SourceShape3D(SetSource3DShape(),SetSourceMesh(),SetVertexAssociation(1),SetVertexAssociation(3),SetVertexAssociation(2),SetVertexAssociation(4))</hypo>
+      </python-wrap>
+    </algorithm>
 
-    <algorithm type="MEFISTO_2D"
-              label-id="Triangle (Mefisto)"
-              icon-id="mesh_algo_mefisto.png"/>
+    <algorithm type    ="Import_1D"
+               label-id="Use Existing 1D Elements"
+               icon-id ="mesh_algo_regular.png"
+               hypos   ="ImportSource1D"
+               output  ="EDGE"
+               dim     ="1">
+      <python-wrap>
+        <algo>Import_1D=UseExisting1DElements()</algo>
+        <hypo>ImportSource1D=SourceEdges(SetSourceEdges(),SetCopySourceMesh(1),SetCopySourceMesh(2))</hypo>
+      </python-wrap>
+    </algorithm>
 
-    <algorithm type="Quadrangle_2D"
-               label-id="Quadrangle (Mapping)"
-               icon-id="mesh_algo_quad.png"/>
+    <algorithm type             ="Import_1D2D"
+               label-id         ="Use Existing 2D Elements"
+               icon-id          ="mesh_algo_quad.png"
+               hypos            ="ImportSource2D"
+               output           ="QUAD,TRIA"
+               support-submeshes="false"
+               dim              ="2">
+      <python-wrap>
+        <algo>Import_1D2D=UseExisting2DElements()</algo>
+        <hypo>ImportSource2D=SourceFaces(SetSourceFaces(),SetCopySourceMesh(1),SetCopySourceMesh(2))</hypo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type    ="Prism_3D"
+               label-id="3D Extrusion"
+               icon-id ="mesh_algo_hexa.png"
+               input   ="QUAD,TRIA"
+               dim     ="3">
+      <python-wrap>
+        <algo>Prism_3D=Prism()</algo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type    ="RadialPrism_3D"
+               label-id="Radial Prism 3D"
+               icon-id ="mesh_algo_hexa.png"
+               hypos   ="NumberOfLayers, LayerDistribution"
+               input   ="QUAD,TRIA"
+               dim     ="3">
+      <python-wrap>
+        <algo>RadialPrism_3D=Prism('RadialPrism_3D')</algo>
+        <hypo>NumberOfLayers=NumberOfLayers(SetNumberOfLayers())</hypo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type    ="UseExisting_1D"
+               label-id="Use Existing Edges"
+               icon-id ="mesh_algo_regular.png"
+               input   ="VERTEX"
+               output  ="EDGE"
+               dim     ="1">
+      <python-wrap>
+        <algo>UseExisting_1D=UseExistingSegments()</algo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type    ="UseExisting_2D"
+               label-id="Use Existing Faces"
+               icon-id ="mesh_algo_quad.png"
+               input   ="EDGE"
+               output  ="QUAD,TRIA"
+               dim     ="2">
+      <python-wrap>
+        <algo>UseExisting_2D=UseExistingFaces()</algo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type    ="RadialQuadrangle_1D2D"
+               label-id="Radial Quadrangle 1D2D"
+               icon-id ="mesh_algo_quad.png"
+               hypos   ="NumberOfLayers2D, LayerDistribution2D"
+               input   ="EDGE"
+               output  ="QUAD,TRIA"
+               dim     ="2">
+      <python-wrap>
+        <algo>RadialQuadrangle_1D2D=Quadrangle(algo=smeshBuilder.RADIAL_QUAD)</algo>
+        <hypo>NumberOfLayers2D=NumberOfLayers(SetNumberOfLayers())</hypo>
+      </python-wrap>
+    </algorithm>
+
+    <algorithm type             ="Cartesian_3D"
+               label-id         ="Body Fitting"
+               icon-id          ="mesh_algo_hexa.png"
+               hypos            ="CartesianParameters3D"
+               support-submeshes="false"
+               dim              ="3">
+      <python-wrap>
+        <algo>Cartesian_3D=BodyFitted()</algo>
+      </python-wrap>
+    </algorithm>
 
-    <algorithm type="Hexa_3D"
-               label-id="Hexahedron (i,j,k)"
-               icon-id="mesh_algo_hexa.png"/>
   </algorithms>
 </meshers-group>
 
   </algorithms>
 </meshers-group>
 
+
+<hypotheses-set-group>
+
+    <hypotheses-set name="Automatic Tetrahedralization"
+                    hypos="MaxLength"
+                    algos="Regular_1D, MEFISTO_2D, NETGEN_3D"/>
+
+    <hypotheses-set name="Automatic Hexahedralization"
+                    hypos="NumberOfSegments"
+                    algos="Regular_1D, Quadrangle_2D, Hexa_3D"/>
+
+    <hypotheses-set name="Automatic Triangulation"
+                    hypos="MaxLength"
+                    algos="Regular_1D, MEFISTO_2D"/>
+
+    <hypotheses-set name="Automatic Quadrangulation"
+                    hypos="NumberOfSegments"
+                    algos="Regular_1D, Quadrangle_2D"/>
+
+</hypotheses-set-group>
+
 </meshers>