VisIt's Ultra Wrapper

Allows plotting and manipulation of curves within VisIt using command syntax from the Ultra II curve plotting program. Not all of Ultra's commands are currently available from VisIt's wrapper. This document describes only the functionality currently available. For more detailed information on Ultra II, please consult http://wci.llnl.gov/pact/ultra.html.

Basics of the VisIt Ultra session

The Ultra wrapper is run from VisIt's CLI. When loaded, VisIt's CLI prompt turns into an 'Ultra' prompt U-> and only Ultra syntax commands are accepted.
Things to keep in mind:

- Curves from the file, as listed with 'menu' command are referenced by a number.
- Curves currently being displayed, as listed with the 'lst' command, are referenced by a letter.
- Spaces are used to delimit items on the input line.
- Ranges of curve numbers or data-id’s may be indicated using colon notation. For example, a:f or 5:9.

Here are some basic commands to get started:

Start the Ultra session

> >>> LoadUltra()

Start the Ultra session and execute a script

> >>> LoadUltra("myscript")

Get help

> U-> help

Load curve file

> U-> rd file-name

See list of curves available for plotting

> U-> menu

Select curves for plotting

> U-> select 1:3

> U-> select 1 3 7

See list of curves that are currently displayed

> U-> lst

End the Ultra session

> U-> end

Supported Ultra commands

The supported commands are presented here in the same groupings as used by the Ultra II manual.

- I/O commands
- Math Operations which do not generate a new curve
- Math Operations which do generate a new curve
- Environmental inquiry commands
- Environmental control commands
- Plot control commands
- Curve control commands

I/O commands

These commands access disk files either for reading or writing.

> rd | Read curve data file.
> | Usage: rd file-name
> save | Save currently plotted curve and/or curves from the menu to the specified disk file.
> | Usage: save file-name curve-list

Math Operations which do not generate a new curve

These functions all take as arguments a list of curves (some take an additional argument - most often a number). The specified operation is performed on the curves without creating new ones; that is, they modify existing curves.

> abs | Take the absolute value of the y values of the curves.
> | Usage: abs curve-list
> absx | Take the absolute value of the x values of the curves.
> | Usage: absx curve-list
> acos | Take the cos-1 of the y values of the curves.
> | Usage: acos curve-list
> acosx | Take the cos-1 of the x values of the curves.
> | Usage: acosx curve-list
> asin | Take the sin-1 of the y values of the curves.
> | Usage: asin curve-list
> asinx | Take the sin-1 of the x values of the curves.
> | Usage: asinx curve-list
> atan | Take the tan-1 of the y values of the curves.
> | Usage: atan curve-list
> atanx | Take the tan-1 of the x values of the curves.
> | Usage: atanx curve-list
> cos | Take the cosine of the y values of the curves.
> | Usage: cos curve-list
> cosh | Take the hyperbolic cosine of the y values of the curves.
> | Usage: cosh curve-list
> coshx | Take the hyperbolic cosine of the x values of the curves.
> | Usage: coshx curve-list
> cosx | Take the cosine of the x values of the curves.
> | Usage: cosx curve-list
> dx | Shift the x values of the curves by a fixed value.
> | Usage: dx curve-list value
> dy | Shift the y values of the curves by a fixed value.
> | Usage: dy curve-list value
> divx | Divide the x values of the curves by a fixed value.
> | Usage: divx curve-list value
> divy | Divide the y values of the curves by a fixed value.
> | Usage: divy curve-list value
> exp | Take the exponential of the y values of the curves, i.e., y = ey.
> | Usage: exp curve-list
> expx | Take the exponential of the x values of the curves, i.e., x = ex.
> | Usage: expx curve-list
> ln | Take the natural logarithm of the y values of the curves.
> | Usage: ln curve-list
> lnx | Take the natural logarithm of the x values of the curves.
> | Usage: lnx curve-list
> log10 | Take the base 10 logarithm of the y values of the curves.
> | Usage: log10 curve-list
> log10x | Take the base 10 logarithm of the x values of the curves.
> | Usage: log10x curve-list
> mx | Scale the x values of the curves by a fixed value.
> | Usage: mx curve-list value
> my | Scale the y values of the curves by a fixed value.
> | Usage: my curve-list value
> powa | Raise a fixed value, a, to the power of the y values of the curves, i.e., y = ay.
> | Usage: powa curve-list a
> powax | Raise a fixed value, a, to the power of the x values of the curves, i.e., x = ax.
> | Usage: powax curve-list a
> powr | Raise the y values of the curves to a fixed power, i.e., y = ya.
> | Usage: powr curve-list a
> powrx | Raise the x values of the curves to a fixed power, i.e., x = xa.
> | Usage: powrx curve-list a
> sin | Take the sine of the y values of the curves.
> | Usage: sin curve-list
> sinh | Take the hyperbolic sine of the y values of the curves.
> | Usage: sinh curve-list
> sinhx | Take the hyperbolic sine of the x values of the curves.
> | Usage: sinhx curve-list
> sinx | Take the sine of the x values of the curves.
> | Usage: sinx curve-list
> sqr | Take the square of the y values of the curves.
> | Usage: sqr curve-list
> sqrt | Take the square root of the y values of the curves.
> | Usage: sqrt curve-list
> sqrtx | Take the square root of the x values of the curves.
> | Usage: sqrtx curve-list
> sqrx | Take the square of the x values of the curves.
> | Usage: sqrx curve-list
> tan | Take the tangent of the y values of the curves.
> | Usage: tan curve-list
> tanh | Take the hyperbolic tangent of the y values of the curves.
> | Usage: tanh curve-list
> tanhx | Take the hyperbolic tangent of the x values of the curves.
> | Usage: tanhx curve-list
> tanx | Take the tangent of the x values of the curves.
> | Usage: tanx curve-list
> xmax | Filter out points in curves whose x-values > limit.
> | Usage: xmax curve-list limit
> xmin | Filter out points in curves whose x-values < limit.
> | Usage: xmin curve-list limit
> ymax | Filter out points in curves whose y-values > limit.
> | Usage: ymax curve-list limit
> ymin | Filter out points in curves whose y-values < limit.
> | Usage: ymin curve-list limit

Math Operations which do generate a new curve

Most of these functions take as arguments a list of the curves. The specified operation is performed using the curves to create new ones. The original curves are not modified.

> + | Take the sum of the curves, i.e., a + b + ... + n.
> | Usage: + curve-list
> - | Take the difference of the curves, i.e., a - b - ... - n.
> | Usage: - curve-list
> * | Take the product of the curves, i.e., a x b x ... x n.
> | Usage: * curve-list
> / | Take the quotient of the curves, i.e., a / b / ... / n.
> | Usage: / curve-list

Environmental inquiry commands

These functions are provided to gain access to information about the state of the session.

> help | Return information about the specified command. If no argument is supplied, return a list of command categories.
> | Usage: help [command]
> lst | Return a list of the curves currently displayed.
> | Usage: lst
> menu | Return a list of the curves available for plotting.
> | Usage: menu

Environmental control commands

These functions allow you to manipulate the environment of the Ultra session on a global level.

> end | Exit Ultra session gracefully. Deletes all plotted curves from VisIt's viewer.
> | Usage: end
> erase | Erase all curves on the screen.
> | Usage: erase
> quit | Exit Ultra session gracefully. Deletes all plotted curves from VisIt's viewer.
> | Usage: quit

Plot control commands

These functions control the plotting characteristics of ULTRA II which affect all displayed curves.

> axis | Set whether or not to draw axes on graphs.
> | Usage: axis on | off
> | Default: on
> data-id | Set whether or not to plot curve identifiers. This was formerly the marker command.
> | Usage: data-id on | off
> | Default: on
> domain | Set the domain for plotting. Typing de (for default) will let the curves determine the domain.
> | Usage: domain low-lim high-lim
> | Usage: domain de
> | Default: de
> grid | Set whether or not to draw grid lines on graphs.
> | Usage: grid on | off
> | Default: off
> range | Set the range for plotting. Typing de (for default) will let the curves determine the range.
> | Usage: range low-lim high-lim
> | Usage: range de
> | Default: de
> x-log-scale | Set log scale on or off for the x axis.
> | Usage: x-log-scale on | off
> | Default: off
> y-log-scale | Set log scale on or off for the y axis.
> | Usage: y-log-scale on | off
> | Default: off

Curve control commands

These functions control the individual curves that are currently being displayed. They range in type from controlling the appearance of the curve to deleting it.

> del | Delete the specified curves.
> | Usage: del curve-list
> lnstyle | Set the line styles of specified curves.
> | Usage: lnstyle curve-list solid | dotted | dashed | dotdashed
> | Default: solid
> lnwidth | Set the line widths of specified curves. A line width of 0 will always give the thinnest line which the host graphics system supports.
> | Usage: lnwidth curve-list width
> | Default: 0
> select | Select curves from the menu for plotting. The list must be space delimited. Ranges may be indicated with a colon. For example, 2:6 will generate 2 3 4 5 6.
> | Usage: select number-list