# GenLat

## DESCRIPTION

General lattice generator. This module has the capability of creating lattices of any data type, any coordinate type, any size. Its primary purpose in life is to create artificial data for test maps. The data generated can be either 0 to 255 or ``min to max'' which, for the floating point types, is interpreted as minus one to one. If more than one data item per node is selected, typically each channel will be given similar data, phase shifted in some way. The lattice can have the same number of points along each coordinate direction, or the first three dimensions can be set explicitly.## INPUTS

## WIDGETS

**Port:** Dimensions

**Type:** Slider

Number of dimensions to create in the output lattice. This determines the connectivity of the computational grid on which the nodes of the lattice are created.

**Port:** Data Type

**Type:** Option Menu

**Menu Item:** byte

**Menu Item:** short

**Menu Item:** long

**Menu Item:** float

**Menu Item:** double

The underlying datatype (char, short, long, float, double) of the data portion of the lattice.

**Port:** Coord Type

**Type:** Option Menu

**Menu Item:** uniform

**Menu Item:** perimeter

**Menu Item:** curv random

**Menu Item:** curv half cyl

**Menu Item:** curv full cyl

**Menu Item:** curv torus

Controls the generation of the coordinates part of the lattice. Nodes in the lattice may be on a uniform grid or a perimeter grid, randomly located in space, or on a grid which is generated from a half cylinder, a whole cylinder or a torus. Depending on the value of this parameter, the Coord Representation (see below) will increase in generality to accomodate the characteristics of the selected grid. of the

**Port:** Coord Range

**Type:** Option Menu

**Menu Item:** -1 to 1

**Menu Item:** 0 to size

The extent of the coordinates (either -1.0 to 1.0 or 0 to numNodes-1, where numNodes is the number of nodes in that direction).

**Port:** Size

**Type:** Slider

Size of the output lattice. If the domain is square, this determines the number of nodes in each dimension. If the domain is set to non-square, this determines the number of nodes in the I direction. It also determines the number of nodes in dimensions greater then three.

**Port:** DataVec Length

**Type:** Slider

The number of data components at each node of the lattice.

**Port:** Function

**Type:** Option Menu

**Menu Item:** sines

**Menu Item:** gravity

**Menu Item:** ramps

**Menu Item:** random

The function used to generate the data. The choices are: .RS .nf Product of sine functions Random data Ramps (modulo function) Simulated gravity wells .fi .RE

**Port:** Coord Representation

**Type:** Option Menu

**Menu Item:** uniform

**Menu Item:** perimeter

**Menu Item:** curvilinear

Representation used for the coordinates part of the lattice. Since the curvilinear representation is more generalized than perimeter, which is more general than uniform, it is possible to use this parameter, together with the value of Coord Type, to generate a curvilinear or perimeter lattice with coordinates that are uniform in physical space, or a curvilinear lattice with physical coordinates that are perimeter-like. This option is useful for testing modules which accept lattices having all types of coordinate representation.

**Port:** Coord Dimensions

**Type:** Option Menu

**Menu Item:** equal to data

**Menu Item:** 1

**Menu Item:** 2

**Menu Item:** 3

**Menu Item:** 4

**Menu Item:** 5

**Menu Item:** 6

The number of coordinates per node - i.e. the dimensionality of the physical space in which the lattice is defined. This parameter only affects the output when Coord Representation is curvilinear - otherwise, this dimensionality is the same as Dimensions, the number of dimensions in the computational space of the lattice. For curvilinear lattices, this restriction is lifted, and this dimensionality can take any value.

**Port:** Data Range

**Type:** Option Menu

**Menu Item:** min to max

**Menu Item:** zero to 255

The data range can be normalized between zero and 255 (this is the same for all primitive types) or from the minimum to maximum of the datatype. The latter option can generate very large numbers for longs, floats and double primitive types.

**Port:** Domain

**Type:** Option Menu

**Menu Item:** Square

**Menu Item:** Non-square

Determines whether the lattice should have the same number of points in each direction. If set to non-square, widgets controlling the number of points in the J and K dimensions will be unhidden, and their values can be set. then

**Port:** J Size

**Type:** Slider

This widget controls the number of points in the J-direction.

**Port:** K Size

**Type:** Slider

This widget controls the number of points in the K-direction.

## OUTPUTS

**Port:** Output

**Type:** Lattice

The generated lattice

## PROBLEMS

Generating large lattices can take a while. The module issues a warning messages if it thinks it is going to be busy for some time.## SEE ALSO

ReadLat DiffLat PrintLat[ Documentation Home ] © The Numerical Algorithms Group Ltd, Oxford UK. 1996