`mkgeo_ugrid`

unstructured mesh of a parallelepiped

## Synopsis

    mkgeo_ugrid [options] n

## Example

        mkgeo_ugrid -t 10 > square-10.geo
        geo square-10.geo

The previous command build a triangle based 2d unstructured mesh of the unit square:

## Description

This command is useful when testing programs on simple geometries. Invocation is similar to those of `mkgeo_grid` . It callsg `gmsh` as unstructured mesh generator. It avoid the preparation of an input file for a mesh generator. The optional n argument is an integer that specifies the subdivision in each direction. By default n=10. The mesh files goes on standard output.

The command supports all the possible element types: edges, triangles, rectangles, tetrahedra, prisms and hexahedra. It supports also mixed 2D with triangles and quadrangles:

        mkgeo_ugrid -tq 10 | geo -

and mixed 3D with tetraedra, prisms and/or hexahedra:

        mkgeo_ugrid -TP  10 | geo -paraview -
        mkgeo_ugrid -PH  10 | geo -paraview -
        mkgeo_ugrid -TPH 10 | geo -paraview -

## Element type option

`-e`

> 1d mesh using edges.

`-t`

> 2d mesh using triangles.

`-q`

> 2d mesh using quadrangles (rectangles).

`-T`

> 3d mesh using tetrahedra.

`-P`

> 3d mesh using prisms.

`-H`

> 3d mesh using hexahedra.

`-tq`

> 2d mesh using both triangles and quadrangles.

`-TP`
`-PH`
`-TPH`

> 3d mixed mesh combining tetrahedra, prisms and/or hexahedra.

## The geometry

`-a` float
`-b` float
`-c` float
`-d` float
`-f` float
`-g` float

> The geometry can be any [a,b] segment, [a,b]x[c,d] rectangle or [a,b]x[c,d]x[f,g] parallelepiped. By default a=c=f=0 and b=d=g=1, thus, the unit boxes are considered.

## Boundary domains

`-[no]sides`

> The boundary sides are represented by domains: `left`, `right`, `top`, `bottom`, `front` and `back`.

`-[no]boundary`

> This option defines a domain named `boundary` that groups all sides.

## Regions

`-[no]region`

> The whole domain is split into two subdomains: `east` and `west`. Also, the separating domain is named `interface` in the mesh. This option is used for testing computations with subdomains (e.g. transmission problem; see User's guide ).

## Corners

`-[no]corner`

> The corners (four in 2D and eight in 3D) are defined as OD-domains. This could be useful for some special boundary conditions.

## Coordinate system options

`-cartesian`
`-rz`
`-zr`

> Specifies the coordinate system. The default is `cartesian` while `-rz` and `-zr` denotes some axisymmetric coordinate systems. Recall that most of Rheolef codes are coordinate-system independent and the coordinate system is specified in the geometry file `.geo`.

## The mesh order

This option is related to curved boundaries. Since boundaries are here flat, this option has no practical effect and is provided for test purpose only.

`-order` int

> The polynomial approximation mesh order, as defined by `gmsh`. This option enable a possible curved boundary, when applying a suitable nonlinear transformation to the mesh. Default is order=1.

## Implementation

This documentation has been generated from file main/sbin/mkgeo_ugrid.sh