smesh/resources/StdMeshers.xml.in

638 lines
24 KiB
XML

<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">
<!--
Copyright (C) 2007-2016 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"
idl-module="StdMeshers"
server-lib="StdMeshersEngine"
gui-lib ="StdMeshersGUI">
<hypotheses>
<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"
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 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"
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 ="Number of Segments"
icon-id ="mesh_hypo_segment.png"
group-id ="0"
priority ="10"
dim ="1"/>
<hypothesis type ="Deflection1D"
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"
label-id ="Propagation of 1D Hyp. on Opposite Edges"
icon-id ="mesh_hypo_length.png"
dim ="1"
context ="LOCAL"
auxiliary="true"/>
<hypothesis type ="PropagOfDistribution"
label-id ="Propagation of Node Distribution on Opposite Edges"
icon-id ="mesh_hypo_length.png"
dim ="1"
context ="LOCAL"
auxiliary="true"/>
<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 ="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"
context ="GLOBAL"
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"
context ="GLOBAL"
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 ="LayerDistribution"
label-id ="Distribution of Layers"
icon-id ="mesh_hypo_length.png"
dim ="3"/>
<hypothesis type ="ViscousLayers2D"
label-id ="Viscous Layers 2D"
icon-id ="mesh_algo_quad.png"
auxiliary="true"
dim ="2"/>
<hypothesis type ="ViscousLayers"
label-id ="Viscous Layers"
icon-id ="mesh_algo_quad.png"
auxiliary="true"
dim ="3"/>
<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"
context ="GLOBAL"
dim ="3"/>
</hypotheses>
<algorithms>
<algorithm type ="SegmentAroundVertex_0D"
label-id ="Segments around Vertex"
icon-id ="mesh_algo_regular.png"
hypos ="SegmentLengthAroundVertex"
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 ="NODE"
output ="EDGE"
need-hyp ="true"
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>GeometricProgression=GeometricProgression(SetStartLength(),SetCommonRatio(),SetReversedEdges())</hypo>
<hypo>StartEndLength=StartEndLength(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
<hypo>Deflection1D=Deflection1D(SetDeflection())</hypo>
<hypo>Adaptive1D=Adaptive(SetMinSize(),SetMaxSize(),SetDeflection())</hypo>
<hypo>AutomaticLength=AutomaticLength(SetFineness())</hypo>
<hypo>FixedPoints1D=FixedPoints1D(SetPoints(),SetNbSegments(),SetReversedEdges())</hypo>
<hypo>Propagation=Propagation()</hypo>
<hypo>PropagOfDistribution=PropagationOfDistribution()</hypo>
<hypo>QuadraticMesh=QuadraticMesh()</hypo>
</python-wrap>
</algorithm>
<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 ="NODE"
output ="EDGE"
need-hyp ="true"
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>GeometricProgression=GeometricProgression(SetStartLength(),SetCommonRatio(),SetReversedEdges())</hypo>
<hypo>StartEndLength=StartEndLength(SetStartLength(),SetEndLength(),SetReversedEdges())</hypo>
<hypo>Deflection1D=Deflection1D(SetDeflection())</hypo>
<hypo>Adaptive1D=Adaptive(SetMinSize(),SetMaxSize(),SetDeflection())</hypo>
<hypo>AutomaticLength=AutomaticLength(SetFineness())</hypo>
<hypo>FixedPoints1D=FixedPoints1D(SetPoints(),SetNbSegments(),SetReversedEdges())</hypo>
<hypo>Propagation=Propagation()</hypo>
<hypo>PropagOfDistribution=PropagationOfDistribution()</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 ="@MEFISTO2D_NAME@"
label-id ="Triangle: Mefisto"
icon-id ="mesh_algo_mefisto.png"
group-id ="1"
priority ="40"
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"
group-id ="0"
priority ="10"
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(),SetEnforcedNodes(1),SetEnforcedNodes(2))</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"
opt-hypos="ViscousLayers"
dim ="3">
<python-wrap>
<algo>Hexa_3D=Hexahedron(algo=smeshBuilder.Hexa)</algo>
<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"
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"
group-id="2"
priority="30"
input ="EDGE"
hypos ="ProjectionSource2D"
output ="QUAD,TRIA"
need-hyp="true"
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"
group-id="2"
priority="20"
hypos ="ProjectionSource2D"
output ="QUAD,TRIA"
need-hyp="true"
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"
group-id="2"
priority="20"
hypos ="ProjectionSource3D"
input ="QUAD,TRIA"
need-hyp="true"
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 ="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"
dim ="1">
<python-wrap>
<algo>Import_1D=UseExisting1DElements()</algo>
<hypo>ImportSource1D=SourceEdges(SetSourceEdges(),SetCopySourceMesh(1),SetCopySourceMesh(2))</hypo>
</python-wrap>
</algorithm>
<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"
need-hyp ="true"
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="Extrusion 3D"
icon-id ="mesh_algo_hexa.png"
group-id="2"
priority="10"
input ="QUAD,TRIA"
output ="HEXA,PENTA,OCTA,POLYHEDRON"
dim ="3">
<python-wrap>
<algo>Prism_3D=Prism()</algo>
</python-wrap>
</algorithm>
<algorithm type ="RadialPrism_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"
need-hyp="true"
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 Edges to be Created Manually"
icon-id ="mesh_algo_regular.png"
group-id="1"
priority="30"
input ="NODE"
output ="EDGE"
dim ="1">
<python-wrap>
<algo>UseExisting_1D=UseExistingSegments()</algo>
</python-wrap>
</algorithm>
<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">
<python-wrap>
<algo>UseExisting_2D=UseExistingFaces()</algo>
</python-wrap>
</algorithm>
<algorithm type ="RadialQuadrangle_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"
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"
group-id ="0"
priority ="20"
hypos ="CartesianParameters3D"
support-submeshes="false"
output ="HEXA"
need-hyp ="true"
context ="GLOBAL"
dim ="3">
<python-wrap>
<algo>Cartesian_3D=BodyFitted()</algo>
</python-wrap>
</algorithm>
</algorithms>
</meshers-group>
<meshers-group name="Your Meshers Group"
resources=""
server-lib=""
gui-lib="">
<hypotheses>
<hypothesis type=""
label-id=""
icon-id=""/>
</hypotheses>
<algorithms>
<algorithm type=""
label-id=""
icon-id=""/>
</algorithms>
</meshers-group>
<hypotheses-set-group>
<hypotheses-set name="Automatic Tetrahedralization"
hypos="MaxLength"
algos="Regular_1D, @MEFISTO2D_NAME@, 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, @MEFISTO2D_NAME@"/>
<hypotheses-set name="Automatic Quadrangulation"
hypos="NumberOfSegments"
algos="Regular_1D, Quadrangle_2D"/>
</hypotheses-set-group>
</meshers>