The issue of version 1.5 of PHOENICS was accompanied by many improvements in the PHOENICS Input Language. Some of the more important were:-
The new words thus introduced into the PIL "dictionary" at this stage were:-
ARRAY, BOOLEAN, CALL, CASE, CHAR, CHKLEN, CHKVAR, CLEAR, DCOM, DO, DUMP, ELSE, ENDCASE, ENDDO, ENDIF, ENDLOOP, ENDMAIN, ENDSUB, EXIT, GCLEAR, GDOM, GDRAW, GETCOV, GETOUT, GETPTC, GETSOL, GGET, GDRAW, GOTO, GPATCH, GRDCHK, GTEXT, GVIEW, IF, INLET, INTRPT, LABEL, LOCATE, LOOP, MESG, MESGA, MESGB, MESGM, NOCOPY, NOCOMM, NODEF ORELSE, OUTLET, PLINE, PRNTIM, PTEXT, Q1MESG, Q1QUIT, RADIAT, READVDU, RSET, SEE C, SEE L, SHOMEN, SORT, SUBGRD, SUBROUTINE, THEN, VALUE, WALL, WHEN XCYIZ.
The introduction of the new facilities was accompanied by the necessity for certain restrictions, as follows:-
Colons may be used only for expression evaluation and may otherwise appear in Q1 files only in comments. Commas may not be used to delimit commands.
Individual arguments to PIL commands (except MESG) are limited to 40 characters. A MESG line can be up to 132 characters long, including the MESG( part.
No names which PIL recognises as reserved can be used as variable names. These include all the integer and real PIL variables, and all other reserved names; eg GRAV is now a forbidden name for a user-declared variable).
Logical variables cannot have values .TRUE., .FALSE., .T. or .F. assigned to them, as they could in early versions of PIL, but must be assigend either T or F. For example, CARTES=.F. is illegal.
Lines ending in '$' are automatically "wrapped-around", and will be written in a new Q1 file as continuations only if they exceed 68 characters. If a line exceeds 68 characters as a result of expression substitution (see Section 3.3), it will be automatically 'folded' at column 68. Thus:
is echoed and written to a new Q1-file as:
A '+' in column 1 causes anything to the right to be regarded as a PIL command, regardless of its location.
From PHOENICS 2008, a single line of PIL may be up to 1024 characters in length, with as many $ continuation lines as needed. The restrictions on the lengths of individual commands still apply. The main use for very long lines is for InForm, where the expressions can get very long.
Lines over 68 characters in length will be written out 'folded' at the 68th character, with as many continuation lines as needed.
There now follows a group-by-group summary of functions of argument-setting commands, which includes those introduced with version 1.5.
ARRAY to declare local-to-satellite arrays. BOOLEAN to declare local-to-satellite logical variables. CHAR to declare local-to-satellite character variables. TEXT to name calculation; up to 40 characters are allowed. INTEGER to declare local-to-satellite integer variables. REAL to declare local-to-satellite real variables.
GROUPS 2, 3, 4 and 5:
REGEXT to set default dimensions of grid regions. RSET to set grid distributions in regions SUBGRD to generate power-law grids for sections of the domain. GRDPWR to generate power-law grids in t, x, y and z directions.
GSET to generate complex bfc grids. VIEW to display grid planes. XCYIZ to set cyclic boundary conditions for bfc grids. READCO to read in to satellite from a disc file the corner coordinates for the definition of a body-fitted grid. SETPT to set the corner coordinates of any control cell for a body-fitted grid. DOMAIN to specify sub-domains for generating body- fitted grids. SETLIN to set corner coordinates along a line, or in aN area or volume specified by the domain command. MAGIC to generate curvilinear (bfc) grid coordinates within a region defined by domain. FIXDOM to prevent local grid distortion with magic(l).
SOLVE to dictate which field variables are to be stored and solved. STORE to dictate which variables are to be stored. SOLUTN to specify details of solution when requirements differ from defaults implied by solve. RADIAT to activate a 2-, 4- or 6-flux model of radiatiON.
TERMS to dictate which terms of partial differential equations to include.
TURMOD to activate a 1- or 2-equation turbulence model.
CONPOR to define region of constant porosity. RESTRT to specify which variables are to be read from the restart file. PATCH to define spatial extents of field-intialisatioN patches in the domain of integration. INIT to dictate field initialisations for individual variables (used in conjunction with patch commaND).
INLET to define an inflow boundary, used in conjunction with value. OUTLET to define an outflow boundary, used in conjunction with value. VALUE to define boundary conditions for individual variables, at inlets, outlets and walls. WALL to define a wall boundary condition, used in conjunction with value. PATCH to define spatial and temporal extent of boundary-conditions patches in the domain of integrations. COVAL to dictate boundary conditions and sources for individual variables (used in conjunction with patch command).
RELAX to dictate for each variable the magnitude and type of under- relaxation required.
OUTPUT to dictate output requirements for each field variable.
PATCH to define spatial and temporal extent of profile- and contour- plotting patches in the domain of integration. PLOT to dictate plotting ranges for individual variables (used in conjunction with patch command).
LOAD to 'load' a case from the phoenics input library. SATRUN to execute all groups in a named fortran satlit routine.
SOLUTN(W1,Y,Y,N,N,N,N); OUTPUT(W1,Y,N,N,N,Y,Y) SOLUTN(H1,Y,Y,N,N,N,N); OUTPUT(H1,Y,N,N,N,Y,Y)
As can be seen, use of the keyword permits considerable condens- ation; should users wish subsequently to change any of the settings which the keyword has effected, they can do so by use of lower-level commands. for example:
ensures that the whole-field solver is used for h1 in preference to the slab-by-slab one, because the fourth argument of SOLUTN is now y.
When the keywords are entered interactively, control is returned with advice on which groups to examine for the data settings implied by the keyword used.