Arrays Window
EES allows the use of array variables. EES array variables provide the array index in square brackets, e.g., X[5] and Y[6,2]. In most ways, array variables are just like ordinary variables. Each array variable has its own guess value, lower and upper bounds and display format. However, simple arithmetic operations are supported for array indices so that the use of array variables can be more convenient in some problems. The Insert/Modify Array command provides an easy way to enter the values of an array. A detailed discussion of the use of array variables appears in Section 1.7 of the Mastering EES ebook. Array range notation can be used to simplify passing of array variables to functions and procedures.
The index value of an array can be any one of the following:
i) a numerical quantity or expression
ii) an EES variable that has previously been set to a value
iii) an EES variable that is set to a value in the Parametric table
iv) the TableRun# keyword.
A convenient shorthand method for entering multiple array values uses Array Range Notation as follows:
X[1..4] =[22, 33, Z^2, a*b]
is equivalent to entering
X[1]=22
X[2]=33
X[3]=Z^2
X[4]=a*b
Units can be assigned to all of the numerical values within the brackets by appending the units at the end of the assignment statement, e.g.,
X[1..4] =[22, 33, Z^2, a*b] [Btu/hr]
This will set the units of X[1..4] to [Btu/hr]
Array variables may be used in the main program (i.e., the EES equations that follow Functions, Procedure and Subprograms at the top of the Equations window), as well as in EES internal functions, procedures, subprograms and modules. The values of all variables including array variables are normally displayed in the Solution window after calculations are completed. A separate solution window is provided for each function, procedure, subprogram and module. However, array variables may optionally be displayed in a separate Arrays table window, rather than in the Solution window. A separate tabbed Array table is provided for each function, procedure, subprogram and module, as well as for the main program. Displaying the arrays in the Arrays table not only makes it easier to view the data, but it also allows the array variables to be plotted or copied to a spreadsheet program.
By default, arrays appear in the Arrays table window for the main program, but not for functions procedures, subprograms of modules. To have the array variables in these program elements appear in an Arrays table, include a $ARRAYS ON directive within the equations for the program element. Use the $ARRAYS OFF directive to restore the display to the default behavior in which the array variables are displayed in the Solution window. The default behavior for the main program is controlled with the Use Arrays window check box in the Preferences dialog of the Options menu. If this option is selected, the Arrays table will automatically be produced after calculations are completed. Alternatively, the default behavior can be changed by placing a $ARRAYS ON/OFF directive within the main program.
The first time the Arrays table is created for any program element, the columns in the table are arranged in alphabetical order with the array index value in the first column. Any new array variables that are introduced into the problem are added at the right of the table. Consequently, the columns may not appear in alphabetical order. Clicking the Sort button at the upper left of the table will rearrange the columns to be in alphabetical order.
The values of in the cells of the Arrays window cannot be changed. A range of cells may be selected and copied and later pasted to a different EES table or an external application.
The size of the window can be changed by dragging the bottom-right corner to the desired height and width. If the new width and/or height of the window is greater than needed to contain the table, it will be automatically adjusted to fit. Hold the Ctrl key down to override this behavior.
When there are many columns in the Arrays table, the columns of particular interest may be difficult to find. There are several options to make the process of locating the important columns easier. In addition to placing the columns in alphabetical order with the Sort button, a column can be moved to any location by right-clicking on the column name and changing the column position number. The column position can also be changed by dragging the column header cell (i.e., the cell at the top of a column) to a new location. The background color of a column can be changed. A yellow background, for example, makes the column stand out and therefore easy to find. Columns that are not of interest can be hidden by right-clicking on the column name and then changing the format style to hidden. The column order and color choices are saved with the EES problem information. A hidden column can be restored by changing the format style in the Variable Information dialog window.
The values in any Arrays table may be plotted using the New Plot Window and Overlay Plot commands in the Plot menu. Part or all of the data in the Arrays window can be copied to another application by selecting the data followed by the Copy command in the Edit menu. Data in the table can be copied in the same manner as for the Parametric table. If you wish to include the column name and units along with the numerical information in each column, use the Copy Table with Headers command instead of the Copy command.
Array variables are similar to other EES variables. However, it is possible to change a characteristic of all array variables at once. If the Arrays table is visible, right-click in the header cell to bring up the Format Arrays Table dialog for the specified column. If the units of all variables in the array are identical, those units will be displayed in the Units box as shown in the figure on the left. If the units for the array elements are not all the same, the Units box will display 'mixed', as shown in the figure on the right. In either case, the units of all elements in the array, as well as their alternate units and display format digits and style can be changed by editing the fields in the this dialog.
Note that checking Auto set array units in the Options tab of the Preferences dialog will force the units and alternate units of all array variables to be same as those for the first element when the Arrays table is displayed. The $AutoSetArrayUnits ON has the same effect.
The array name and all array characteristics (e.g., guess value, bounds, display format, and units) can also be changed or viewed in the Variable Information dialog window. If the Show Array Elements checkbox in the Variable Info dialog is de-selected, then only the parent names of the arrays, e.g., X[ ] are shown. Any changes made to the parent array are applied to all elements in the array.
Array variables may be designated as key variables to be displayed in the Solution window. To designate an array variable as a key variable, select it in the Arrays table and right-click on it. Then select Key Variable from the popup menu.
Note: EES saves every variable that you introduce. Using Arrays, it is possible to introduce many variables that you later do not wish to use. For example, if you originally start a problem using array X with 500 subscripted variables and then later change the name to Y, EES will maintain all of the information for both arrays X and Y. In this way, it is easy to exceed the maximum number of allowable variables, which is 3,000 for the Annual license, 6,000 for the Commercial license and 12,000 for the Professional license. The 64-bit Professional license provides an upper limit of 24,000 variables. However, you can purge unused variables with the Purge Unused Variables command in the Options menu.
In the Professional license, all tables are equipped with a control to automatically resize the column widths. The control appears as a left-right arrow icon in the upper left cell of the table, as shown below. Clicking the icon causes all of the columns to be adjusted to a width that is just large enough to display all of the information the column. Clicking the icon again returns the column widths to their original values. If the Ctrl key is depressed when the icon is clicked, the column widths will be set to their default values.