DISCLAIMER: USE AT YOUR OWN RISK !!! ------------------------------------ THESE PROGRAMS ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,EITHER EXPRESS OR IMPLIED, INCLUDING,WITHOUT LIMITATION, EXPRESSED FITNESS FOR A PARTICULAR PURPOSE BETZ DOES NOT WARRENT THAT THE FUNCTIONS CONTAINED IN THE PROGRAMS WILL MEET YOUR REQUIREMENTS, OR THAT THE OPERATION OF THE PROGRAMS WILL BE UNINTERRUPTED OR ERROR FREE. IN NO EVENT WILL BETZ BE LIABLE FOR ANY DAMAGES, INCLUDING, WITHOUT LIMITATION, INCIDENTAL OR CONSEQUENCIAL DAMAGES, AND DAMAGES FOR LOST DATA OR PROFITS, ARISING OUT OF THE USE OF OR INABILITY TO USE THESE PROGRAMS, EVEN IF BETZ HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. WRITTEN BY JOHN C. GUNTHER, 4/89 COPYRIGHT 1989 BETZ LABORATORIES, INC. ALL RIGHTS RESERVED. "Release Notes" for $TERNARY ---------------------------- A new procedure for producing trilinear contourplots is now available called $TERNARY. The new procedure is significantly better the the old, $TRILINEAR procedure (which is still available) because it uses the new CONTOURPLOT object rather than the old GRAPH to produce the trilinear contourplots. Specifically, the new program provides the following features not available with the old one: o Any number of functions can be over-layed onto the same contour plot. (This feature is particularly useful when a mixture must be developed which simultaneously satisfies constraints on several measured quantities (e.g. viscosity and stability.) The old procedure was limited to a single function.) o Contour LINES rather than the filled contour REGIONS of the original program. o The ability to set/change contour levels by using RS/1's CONTOURPLOT editor - without having to rerun the procedure. o An improved "ternary information table" format for easier non-interactive runs. (The ability to edit this data structure from within the procedure's "main loop" and then do a rerun was also provided for easier use.) o Generally improved performance both when plotting and running the procedure. The new procedure also incorporates nearly all of the features available in the old procedure. The old procedure, $TRILINEAR is still available for those situations in which "filled region" contours may be preferred to the contour lines produced by $TERNARY. (Note: The CONTOURPLOT option of RS/1 is required to use the new procedure.) Using $TERNARY -------------- To use the procedure, enter RS/1 as usual. Then type (at the "#"): # CALL $TERNARY and respond to the procedure's prompts. The dialogue is very similar to that of the old $TRILINEAR procedure. You can get help at most prompts by entering a "?" in response to them. The procedure can also be called non-interactively: # CALL $TERNARY(contourplot,ternary_info_table,quiet) Where: contourplot - name of NEW contourplot object to create ternary_info_table - name of table with info on how to construct the contourplot. (see next section for format. This table can be easily created in the interactive mode.) quiet - if FALSE (the default) places you into the mainline loop (prompts for "what next? - display, edit, etc.") after contourplot is generated. If true, the contourplot is generated and you are returned to command level afterwards without any prompting. For example, # CALL $TERNARY('CP1','CP1TBL',FALSE) (Note the use of quotes on the first two parameters.) IMPORTANT PRACTICAL NOTE: Most contourplots require a graphics terminal or a plotter in order to display/plot properly. By contrast, the old GRAPH based procedure ($TRILINEAR) can produce reasonable output on non-graphics terminals and ordinary printers. RS/1 MAY PRODUCE AN ERROR IF YOU ATTEMPT TO DISPLAY THE CONTOURPLOTS PRODUCED BY THIS PROCEDURE ON A NON-GRAPHICS TERMINAL. Ternary Information Table Format -------------------------------- When run in the interactive mode, the procedure automatically produces a "ternary information table" from the user's responses, which can be saved by answering "YES" at the "Save ternary information table ?" prompt. The ternary information table contains all the information the procedure needs to create a ternary phase diagram (trilinear contour plot.) The format of the various columns of this table is given below. Each row corresponds to either one of the mixture variables, or one of the the contoured functions. Each column of each row corresponds to the information as shown below (NOTE: column info is different depending on if the row represents a mixture variable or a contoured function. In practice, this "overloading" does not create confusion but rather simplifies making changes to the table): Col # Col name Information ------------------------------------------------------------------------------ 0 Label Either Axis label (if mixture) or Contour Key label. 1 Function/Axis Text string of function being contoured, or X1,X2,X3 or FIXED keywords to indicate if the mixture variable is contoured (and on which axis) or fixed. 2 Settings Assignment (a=10) or list of assignments (a=2; d=4) which indicate either setting of FIXED mixture variables or setting(s) of process variables in a function. NOTE REQUIRED SEMI-COLONS BETWEEN MULTIPLE SETTINGS. (In the case of the mixture rows, the Settings string is parsed to determine the name of the mixture variable associated with the row.) 3 Range/Levels Either LOW,HIGH for mixture variable rows, or contour levels (10,20,30,40, etc.) for function rows. 4 Pseudo True/False to use pseudo-components transformation. 5 Ncalcs Number of function calculations along each axis - total calculations = ncalcs**2 - forming a grid of points at "ncalcs" equal intervals along each rectangular axis. 6 grid_line_spacing Spacing between grid lines drawn on the plot. 7 xtotal What all mixture variables must sum up to. (Generally either 100 for percentage formulations or 1 for fractional formulations - but need not be.) Note: Col 4,5,6 and 7 are "global" - only the first row is used for these cols. In most practical cases it is clear from the context what changes to make in this table to achieve a desired change in the contourplots produced. However, it should be noted that whereas the interactive mode performs extensive checking of user input, THE NON-INTERACTIVE MODE ASSUMES THAT THE TERNARY INFORMATION TABLE HAS THE RIGHT FORMAT. (Since changes to this table tend to be minor, in practice this is not as big a problem as it might seem.)