<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE meshers PUBLIC "" "desktop.dtd">

<!-- 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"
                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"
                dim      ="3"/>

    <hypothesis type     ="BlockRenumber"
                label-id ="Renumber"
                icon-id  ="mesh_hypo_renumber.png"
                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     ="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),SetCorners())</hypo>
        <hypo>ViscousLayers2D=ViscousLayers2D(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetEdges(1),SetEdges(2),SetGroupName())</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(),SetEdges(1),SetEdges(2),SetGroupName())</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(),SetEdges(1),SetEdges(2),SetGroupName())</hypo>
      </python-wrap>
    </algorithm>

    <algorithm type     ="PolyhedronPerSolid_3D"
               label-id ="Polyhedron per Solid"
               icon-id  ="mesh_algo_polygon.png"
               opt-hypos="ViscousLayers"
               input    ="POLYGON,QUAD,TRIA,EDGE"
               dim      ="3">
      <python-wrap>
        <algo>PolyhedronPerSolid_3D=Polyhedron()</algo>
        <hypo>ViscousLayers=ViscousLayers(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"
               hypos    ="BlockRenumber"
               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(),SetGroupName())</hypo>
        <hypo>BlockRenumber=Renumber(GetBlocksOrientation())</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   ="EDGE"
               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"
               opt-hypos        ="ViscousLayers"
               support-submeshes="false"
               output           ="HEXA"
               need-hyp         ="true"
               dim              ="3">
      <python-wrap>
        <algo>Cartesian_3D=BodyFitted()</algo>
        <hypo>ViscousLayers=ViscousLayers(SetTotalThickness(),SetNumberLayers(),SetStretchFactor(),SetFaces(1),SetFaces(2),SetMethod(),SetGroupName())</hypo>
      </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="Tetrahedralization"
                    use-common-size="true"
                    hypos="MG-CADSurf Parameters"
                    algos="MG-CADSurf, MG-Tetra"
                    alt-hypos="NETGEN_Parameters"
                    alt-algos="NETGEN_2D3D"
                    intern-edge-hypos="LocalLength"
                    intern-edge-algos="Regular_1D"/>

    <hypotheses-set name="Mapped Hexahedralization"
                    hypos="NumberOfSegments"
                    algos="Regular_1D, Quadrangle_2D, Hexa_3D"/>

    <hypotheses-set name="Free Hexahedralization"
                    use-common-size="true"
                    quad-dominated="true"
                    hypos="MG-CADSurf Parameters"
                    algos="MG-CADSurf, MG-Hexa"
                    alt-hypos="None"
                    alt-algos="None"
                    intern-edge-hypos="LocalLength"
                    intern-edge-algos="Regular_1D"/>

    <hypotheses-set name="Triangulation"
                    use-common-size="true"
                    hypos="MG-CADSurf Parameters"
                    algos="MG-CADSurf"
                    alt-hypos="NETGEN_Parameters_2D"
                    alt-algos="NETGEN_2D"/>

    <hypotheses-set name="Mapped Quadrangulation"
                    hypos="NumberOfSegments"
                    algos="Regular_1D, Quadrangle_2D"/>

    <hypotheses-set name="Free Quadrangulation"
                    use-common-size="true"
                    quad-dominated="true"
                    hypos="MG-CADSurf Parameters"
                    algos="MG-CADSurf"
                    alt-hypos="NETGEN_Parameters_2D"
                    alt-algos="NETGEN_2D"/>

</hypotheses-set-group>

</meshers>