view generateStructuredMesh.xml @ 0:4e31c396004d draft default tip

planemo upload for repository https://github.com/Helmholtz-UFZ/galaxy-tools/tree/main/tools/ogs/ commit 8d522c2d14b28a4df096a5a13cd800bbf086f09f
author ufz
date Thu, 06 Mar 2025 17:29:28 +0000
parents
children
line wrap: on
line source

<tool id="ogs_generatestructuredmesh" name="OGS generateStructuredMesh" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
    <description>
        Generation of simple meshes
    </description>
    <macros>
        <import>macros.xml</import>
        <token name="@VERSION_SUFFIX@">0</token>
    </macros>
    <requirements>
        <expand macro="ogs_requirement"/>
    </requirements>
    <expand macro="creator"/>
    <command detect_errors="exit_code"><![CDATA[
    generateStructuredMesh 
        -o output.$output_ext
        -e $element_type
    #if str($length_x) != "":
        --lx $length_x
    #end if
    #if str($length_y) != "":
        --ly $length_y
    #end if
    #if str($length_z) != "":
        --lz $length_z
    #end if
    #if str($subdiv_x) != "":
        --nx $subdiv_x
    #end if
    #if str($subdiv_y) != "":
        --ny $subdiv_y
    #end if
    #if str($subdiv_z) != "":
        --nz $subdiv_z
    #end if
    #if str($element_length_x) != "":
        --dx0 $element_length_x
    #end if
    #if str($element_length_y) != "":
        --dy0 $element_length_y
    #end if
    #if str($element_length_z) != "":
        --dz0 $element_length_z
    #end if
    #if str($max_element_length_x) != "":
        --dx-max $max_element_length_x
    #end if
    #if str($max_element_length_y) != "":
        --dy-max $max_element_length_y
    #end if
    #if str($max_element_length_z) != "":
        --dz-max $max_element_length_z
    #end if
    #if str($multiplier_x) != "":
        --mx $multiplier_x
    #end if
    #if str($multiplier_y) != "":
        --my $multiplier_y
    #end if
    #if str($multiplier_z) != "":
        --mz $multiplier_z
    #end if
    && mv output.$output_ext '$output'

    ]]></command>
    <inputs>
        <param name="output_ext" type="select" label="Output File Format" argument="-o">
            <option value="vtu">VTK Unstructured Grid</option>
            <option value="msh">GMSH</option>
        </param>
        <param name="element_type" type="select" label="Element Type" argument="-e">
            <option value="line">Line</option>
            <option value="tri">Triangle</option>
            <option value="quad">Quadrilateral</option>
            <option value="hex">Hexahedron</option>
            <option value="prism">Prism</option>
            <option value="tet">Tetrahedron</option>
            <option value="pyramid">Pyramid</option>
        </param>      
        <param name="length_x" type="float" min="0" optional="true" label="Length in X" help="Length of the domain in the X direction.">
            <validator type="in_range" min="0" exclude_min="true"/>
        </param>
        <param name="length_y" type="float" min="0" optional="true" label="Length in Y" help="Length of the domain in the Y direction.">
            <validator type="in_range" min="0" exclude_min="true"/>
        </param>
        <param name="length_z" type="float" min="0" optional="true" label="Length in Z" help="Length of the domain in the Z direction.">
            <validator type="in_range" min="0" exclude_min="true"/>
        </param>
        <param name="subdiv_x" type="integer" min="1" optional="true" label="Subdivisions in X" help="Number of subdivisions in the X direction. Overrides element length argument."/>
        <param name="subdiv_y" type="integer" min="1" optional="true" label="Subdivisions in Y" help="Number of subdivisions in the Y direction. Overrides element length argument."/>
        <param name="subdiv_z" type="integer" min="1" optional="true" label="Subdivisions in Z" help="Number of subdivisions in the Z direction. Overrides element length argument."/>
        <param name="element_length_x" type="float" min="0" optional="true" label="Initial Element Length X" help="Initial element length in the X direction. If the value of this parameter is smaller than subdivions or maximum length parameters it gets overridden.">
            <validator type="in_range" min="0" exclude_min="true"/>
        </param>
        <param name="element_length_y" type="float" min="0" optional="true" label="Initial Element Length Y" help="Initial element length in the Y direction. If the value of this parameter is smaller than subdivions or maximum length parameters it gets overridden.">
            <validator type="in_range" min="0" exclude_min="true"/>
        </param>
        <param name="element_length_z" type="float" min="0" optional="true" label="Initial Element Length Z" help="Initial element length in the Z direction. If the value of this parameter is smaller than subdivions or maximum length parameters it gets overridden.">
            <validator type="in_range" min="0" exclude_min="true"/>
        </param>
        <param name="max_element_length_x" type="float" min="0" optional="true" label="Maximum Element Length X" help="Maximum element length in the X direction. Overrides element length argument.">
            <validator type="in_range" min="0" exclude_min="true"/>
        </param>
        <param name="max_element_length_y" type="float" min="0" optional="true" label="Maximum Element Length Y" help="Maximum element length in the Y direction. Overrides element length argument.">
            <validator type="in_range" min="0" exclude_min="true"/>
        </param>
        <param name="max_element_length_z" type="float" min="0" optional="true" label="Maximum Element Length Z" help="Maximum element length in the Z direction. Overrides element length argument.">
            <validator type="in_range" min="0" exclude_min="true"/>
        </param>
        <param name="multiplier_x" type="float" min="0" optional="true" label="Multiplier X" help="Multiplier for element lengths in the X direction.">
            <validator type="in_range" min="0" exclude_min="true"/>
        </param>
        <param name="multiplier_y" type="float" min="0" optional="true" label="Multiplier Y" help="Multiplier for element lengths in the Y direction.">
            <validator type="in_range" min="0" exclude_min="true"/>
        </param>
        <param name="multiplier_z" type="float" min="0" optional="true" label="Multiplier Z" help="Multiplier for element lengths in the Z direction.">
            <validator type="in_range" min="0" exclude_min="true"/>
        </param>
    </inputs>
    <outputs>
        <data format="vtkxml" name="output">
            <change_format>
                <when input="output_ext" value="msh" format="gmsh.msh"/>
            </change_format>
        </data>
    </outputs>
    <tests>
        <test>
            <param name="output_ext" value="vtu"/>
            <param name="element_type" value="quad"/>
            <param name="length_x" value="3"/>
            <param name="length_y" value="4"/>
            <output name="output" value="quad_3x4.vtu" ftype="vtkxml"/>
        </test>
        <test>
            <param name="output_ext" value="msh"/>
            <param name="element_type" value="hex"/>
            <param name="length_x" value="4"/>
            <param name="length_y" value="5"/>
            <param name="length_z" value="6"/>
            <param name="multiplier_x" value="0.8"/>
            <param name="multiplier_y" value="1.1"/>
            <param name="multiplier_z" value="2"/>
            <param name="max_element_length_z" value="1"/>
            <param name="element_length_y" value="0.1"/>
            <param name="element_length_z" value="0.1"/>
            <output name="output" value="hex_4x5x6.msh"/>
        </test>
    </tests>
    <help><![CDATA[

    **Overview:**
        This tool generates structured meshes using the OpenGeoSys Mesh Generator. 
        Users can define the element type, dimensions, subdivisions, and other parameters to create a customized mesh.
        Output data is written in the specified format (VTU/ VTK Unstructured Grid or GMSH).

    **Inputs:**
        1. **Output Format:** The format of the output file (.vtu or .msh) 
        2. **Element Type:** The type of element to create (e.g., line, triangle, quadrilateral, etc.).
        3. **Length (X, Y, Z):** The length of the mesh domain in the X, Y, and Z directions.
        4. **Subdivisions (X, Y, Z):** Number of subdivisions in each direction to define mesh resolution.
        5. **Initial Element Length (X, Y, Z):** Initial size of the elements in the X, Y, and Z directions.
        6. **Maximum Element Length (X, Y, Z):** Maximum size of elements for gradual refinement.
        7. **Multiplier (X, Y, Z):** Refinement multiplier for element lengths in each direction.

    **Outputs:**

        **Output Mesh File:** The generated structured mesh saved as a file in the specified format.
    ]]></help>
    <expand macro="ogs_citation"/>
</tool>