Q1 Implementation

Overview

This section describes how the settings made in the various object dialog boxes are
captured in the Q1 file. The description concentrates on those features pertinent to
PHOENICS-VR. Standard Q1 settings are not described in detail - the meanings of PIL
statements can be ascertained from the relevant Encyclopaedia entries.

> DOM, MONIT, Xpos, Ypos, Zpos
The location of the monitoring position (probe),

> DOM, SCALE, Xscale, Yscale, Zscale
The display scaling factors in the X, Y and Z co-ordinate directions. These allow domains
with extreme aspect ratios to be displayed as if they had a less extreme aspect ratio.

> DOM, INCREMENT, increment_size
The increment size sets the distance the probe moves, or how much an object size or
position changes each time a size or position button is pressed. It has units of metres.

{> GRID, MAXCELL, Xmax, Ymax, Zmax}
The maximum cell size in each direction as a fraction of the domain size. Only written if
any one is not the default value of 0.05.

{> GRID, MINCELL, Xmin, Ymin, Zmin}
The minimum cell size in each direction as a fraction of the domain size. Only
written if any one is not the default value of 0.005.

{> GRID, MAXRAT, Xrat, Yrat, Zrat}
The maximum size ratio between the first cell in any region and the last cell in the
previous region, and the last cell in any region and the first cell in the next region.
Only written if any one is not the default value of 1.5.

{> GRID, POWER, Xpow, Ypow, Zpow}
The expansion power used to adjust the grid within a region. Only written if any one
is not the default value of 1.2.

{> GRID, EXPANS, T/F T/F T/F}
This sets the form of the expansion to Geometrical (T) or Power-Law (F). Only written if
any one is not the default value of T.

{> GRID, BOUNDS, T/F T/F T/F T/F T/F T/F}
Sets whether the first and last regions in X Y and Z use symmetrical expansions (T), or
expand outwards towards the domain edge (F). Only written if any one is not the default
value of F.

{>GRID, RSET_dir_reg, ncells,
power, [G]}
The optional GRID,RSET line is written for each region that has had its grid set, where:

dir is X, Y or Z;

reg is the number of the region;

NCELLS is the number of cells for that regions. A negative number of cells indicates
that the expansion is to be applied symmetrically from either end of the region;

power is the expansion power. A negative power indicates that the expansion starts at
the far end of the region and works backwards to the start; and

G is present if a geometrical progression is being used.

If auto-meshing is on for any direction, the auto-generated RSET commands are written
to the Q1 as comments as a record of what the auto-mesher did, and to allow users to
manually disable the auto-mesh whilst retaining the grid settings.

{> DOM, CDCALC, YES}
switches the calculation of drag coefficient on. If the line is absent or is NO, the drag
coefficients are not calculated.

{> DOM, REFDEN, reference_density}
Sets the reference density to be used in the calculation of drag coefficient. If the line
is absent, a value of 1.189 is assumed.

{> DOM, REFAREA, area_x, area_y, area_z}
Sets the reference, or normalisation, areas in the three coordinate directions. If the
line is absent values of 1.0 are assumed.

{> DOM, MOMCEN, Xu, Yu, Zu}
Sets the coordinates of a point about which moments of the total force are taken.

{> DOM, SWPSTPnn, first_step, last_step, number_of_sweeps}
Sets the number of sweeps per time step in the time step band first_step <= ISTEP <=
last_step. nn is the band number. Up to 15 bands are allowed. They do not need to cover
all steps - the steps not covered will use the number of sweeps set in the normal way via
LSWEEP.

{> DOM, SWPTIMnn, start_time, end_time, number_of_sweeps}
Sets the number of sweeps per time step in the time band time < current_time <=
end_time. nn is the band number. Up to 15 bands are allowed. They do not need to cover all
steps - the steps not covered will use the number of sweeps set in the normal way via
LSWEEP.

Note that SWPSTP and SWPTIM settings are mutually exclusive - only one method of
changing the number of sweeps per step can be used in a case.

{>DOM, P_AMBIENT, Pamb}
Sets the ambient or external pressure for the domain in Pascals. If the line is absent,
Pamb is taken to be 0 Pa. This pressure is always relative to the Reference Pressure (PRESS0) set on the Main Menu,
properties panel.

The ambient pressure is used as the default external pressure at inlets, outlets,
openings, and as the default initial pressure for fluid blockage objects.

{>DOM, T_AMBIENT, Tamb}
Sets the ambient or external temperature for the domain. If the Reference Temperature(TEMP0) set on the Main Menu, Properties
panel, is set to 273, this temperature is in Centigrade. If the Reference Temperature is
0.0, this temperature is in Kelvin. The absolute ambient temperature in Kelvin is always
Tamb+TEMP0.

The ambient temperature is used as the default external temperature at inlets, outlets,
openings, and as the default initial temperature for fluid blockage objects and thinplt
objects.

{>DOM, INI_AMB, YES}
When set to YES, the initial values of pressure (FIINIT(P1)) and temperature
(FIINIT(TEM1), [and FIINIT(TEM2), FIINIT(T3) if present]) are all set to the current
ambient value, and are updated whenever the ambient values are changed. The values set in
Group 11 of Q1 are ignored, unless they signal a restart.

When set to NO, or if the line is absent, the settings made in Group 11 of Q1 will be
used. New cases will have the setting YES.

{>DOM, INI_BUOY, YES}
When set to YES, the reference temperature for the Boussinesq buoyancy option is taken to
be Tamb regardless of the Group 13 settings. For the Density-difference buoyancy option, the
reference density is recalculated from Pamb and Tamb using the current density formula.
The reference buoyancy settings in Group 11 of Q1 will not be used.

When set to NO, or if the line is absent, the settings made in Group 11 of Q1 will be
used. New cases will have the setting YES.

Settings made for domain size and monitor location in this section will override those
made in the normal PIL sections of the Q1 file.

> OBJ, POSITION, Xpos, Ypos, Zpos
The co-ordinates of the West-South-Low corner of the object bounding box in the order
X,Y,Z. See Object
Position. The keyword 'AT_END' can be used to denote that the object is located at the
domain end.

> OBJ, SIZE, Xsize, Ysize, Zsize
The size of the object bounding box in the order X, Y, Z. See Object Size. The
keyword 'TO_END' can be used to denote that the object should extend from its origin
(position) to the end of the domain.

> OBJ, GEOMETRY, geometry_file_name
The name of the geometry file used for the object geometry. In BFC, this is the same as
the object name. This was called CLIPART in earlier versions. [This keyword will still be
understood.] See Object
Shape.

{> OBJ, TEXTURE, file_name}
If a texture has been applied to an object, the name of the texture file will be written.
If the texture file is not in the \phoenics\d_prelude\textures folder, the complete path
will be written. See Applying Textures.

> OBJ, ROTATION24, rotation_code
The rotation code used to orient the geometry within the bounding box, if not BFC. See Object Orientation.

{>OBJ, SELECTABLE, NO}
When this line is absent (or set to YES) the object is selectable by picking
from the screen. This is the default. When set to NO, the object can only be
selected from the list in the Object Management Dialog.

{> OBJ, BLOCK, block number}
In multi-block BFC cases, the block to which the object belongs.

{> OBJ, ROT-ANGLE, alpha, beta, theta}
The alpha, beta and theta rotation angles (if not zero and not BFC). This was called
ARBORIEN in earlier versions. [This keyword will still be understood.] See Object Rotation.

{> OBJ, ROT-MODE,OLD}
The object rotation mode is set to 'Old method'. If the line is not present or the value
is DEFAULT or 0, the default rotation mode will be used. See Object Rotation Mode.
Other values are not allowed.

{>OBJ, ROT-CENTRE, centre}
The object rotation centre is set to centre, where centre is one of:

{> OBJ, VISIBLE, NO}
The object is hidden. If the line is not present or the value is YES the object is
visible. For backward compatibility -1 can mean NO.

{>OBJ, GRID, NO}
The object does not create grid regions in any of the three directions. If the line is not
present or the value is YES the object creates regions in all three directions. See Object Affects Grid.
For backward compatibility 1 can mean YES and 2 can mean NO.

If the object is set to only affect the grid in some but not all directions, the line
is written as:
>OBJ, GRID, p,p,pwhere each p must be Y (affect grid) or N (don't affect grid) for the X, Y and Z
directions.
Y,Y,Y is equivalent to YES and will not be written when the Q1 is saved, as this is the
default.
N,N,N is equivalent to NO and will be written as NO when the Q1 is saved.

{>OBJ, DOMCLP, NO}
The object is not constrained by the domain. If the line is not present or the value is
YES, then the object is constrained. See Object
constrained by domain.

{>OBJ, COLOR-VAL, colour number}
The colour number for user-defined colour. Valid entries are in the range 0-256. The
corresponding colours are shown in Appendix
A. See Object
Colour.

{>OBJ, WIREFRAME, YES}
The object is to be drawn in wireframe. If the line is not present, or the value is NO,
the object will be drawn as normal.

{>OBJ, OPAQUE, opaqueness value}
The opaqueness value for the object. Any integer value between 0 (completely
transparent) and 100 (completely opaque) can be used. 100 is assumed if the line is
absent.

The remaining object-related settings depend on the object type, and the selections
made.

Settings made for object size and location in this section will override those made in
the normal PIL sections of the Q1 file.

In the following sections, settings shown in [ ] denote Phase 2 values which only
appear if IPSA is active.

Note that in Versions prior to 3.5, the >OBJ command had the form >OBJn, where n
was the sequence number of the object. The numbers had to be consecutive.

From Version 3.5, the 'n' is optional, and can be any character string. The only
restriction is that any identifying string must be the same for all >OBJn lines for a
particular object. To make Satellite write a Q1 with numbered objects (e.g. for use in an
earlier version of PHOENICS), add the line:

Object_numbers = on

to the [Q1] section of CHAM.INI.

For downward compatibility, Q1 files with numbered objects (>OBJn) will be read
correctly.

Time limits for sources

In transient cases, most of the object types will have a setting which defines when
they are active:

where scal is one of the SOLVEd scalars, and possible settings for scal_source
and the corresponding meanings of val1 and val2 are given in Table 3 below. One such line
for each scalar with a source. _scal is the name of the variable the source
applies to.

Table 3: Settings for the scal_source keyword

Scal_source

Result

Val1

Val2

FIX_VAL

Fixed Value

0.0

Value

FIX_FLX

Fixed source

0.0

Source S (total or m-3)

LIN_SOU

Linear source
S = Vol * C (V - Cp)

C (m-3)

V

QAD_SOU

Quadratic source
S = Vol * C (V - Cp)2

C (m-3)

V

USR_DEF

S = Vol * C (V - Cp)

C (constant or GRND)

V (constant or GRND)

The setting:

> OBJ, SCAL_FIXF, 1.000000E+00

or

> OBJ, SCAL_FIXF, 2.000000E+00

determines whether the fixed scalar source in Table 3 is a total value for the object
(1.0), or is per unit volume (2.0).

Initial pressure (if set):> OBJ, INI_PRESS, Pinit

Pinit may be the character string P_AMBIENT to indicate the value set for P_AMBIENT in
the domain section. This is the default.

Initial temperature (if set):> OBJ, INI_TEMP, Tinit

Tinit may be the character string T_AMBIENT to indicate the value set for T_AMBIENT in
the domain section. This is the default.

[> OBJ, INI_TEMP-2, Tinit_2]

Initial scalar (if set):> OBJ, INI_scal, Cinit

where scal is one of the SOLVEd scalars. One such line for each scalar
with an initial value.

Initial porosity (if set):> OBJ, INI_por, poros

where por is one of EPOR, NPOR, HPOR or VPOR. One such line for each
scalar with an initial value.

[Initial Volume fraction:
> OBJ1, INI_R2, R2init

The initial value of R1 is not written, as internal consistency checks ensure that
R1+R2=1.0]

where heat_source is as in Table 1 above, and
_W, _E etc denote the West, East etc faces of the object. Note that these settings will
only appear if the object geometry is default.dat or one of the cuboid geometries.

Tin and Tin_2 may be the character string P_AMBIENT to indicate the value set for
P_AMBIENT in the domain section. This is the default.

Inlet Scalar:> OBJ, INLET_scal, Cin

where scal is one of the SOLVEd scalars. One such line for each scalar
with an inlet value.

Inlet Turbulence - User-set:> OBJ, KE_IN, KEin> OBJ, EP_IN, EPin

OR Inlet Turbulence - Intensity (%):> OBJ, TURB-INTENS, Tintens

Emissivity:> OBJ, EMISSIVITY, Emiss

Area Ratio:
> OBJ, AREA_RATIO, area_ratio

If the line is absent, a value of 1.0 is assumed

Linked Angled-in:
> OBJ, LINK, status

Status can be PREVIOUS or NEXT, indicating the immediately-preceding or
immediately-following Angled-in object (which need not be the adjacent object in the
list). If the
line is absent, no linkage is assumed.

Linked Angled-in Heat source:
> OBJ, ADDQ, Q

where Q is the additional heat in W added to the fluid passed between the two linked
Angled-ins. If the LINK flag is not set, this setting is ignored.

Pext is the external atmospheric pressure in Pascals. If 'Set
buoyancy from ambient' on the
Main
Menu Properties panel is 'ON', then:

the reference pressure (PRESS0) will be reset
to this value,

the Ambient pressure will be set to zero.

If the Ideal Gas
Law is used for density, the reference density used for buoyancy (BUOYD)
will be recalculated using this pressure and the set external temperature.
If the density is constant, the reference temperature for buoyancy (BUOYE)
will be reset to the external temperature.

External temperature:
> OBJ, TEMPERATURE, Text

Text is the external atmospheric temperature in Centigrade. If 'Set
buoyancy from ambient' on the
Main
Menu Properties panel is 'ON', the Ambient temperature will be reset to Text.

Wind with 'density is':
> OBJ, DENSITY, RHOin

If the line is missing, domain fluid is assumed.

Pressure coefficient - linear
>OBJ, COEFFICIENT, Coef

The default setting is for a linear coefficient with a value of 1000. This keeps
the internal pressure very close to the set external pressure.

Pressure coefficient - quadratic
>OBJ, COEFFICIENT, Coef, QUADRATIC

When a quadratic coefficient is used, it represents the number of velocity heads
lost crossing the domain boundaries.

Wind speed at reference height:
> OBJ, VELOCITY, Velocity

The default wind velocity is 10m/s.

Wind direction relative to North
>OBJ, WIND_DIR, angle

By default the wind blows from the North, so the angle is zero.

Angle between north-facing axis and North
>OBJ, AXIS_DIR, angle

By default the Y axis points North, so the angle is zero.

External temperature:
> OBJ, TEMPERATURE, Tin

Tin may be a real value, or may be the character string T_AMBIENT to indicate the value set
for T_AMBIENT in the domain section. This is the default. The default ambient temperature is 20C.

If the external velocity in any direction is IN-CELL, it is echoed here as SAME. If it
is DEDUCED, it is echoed as DEDUCED. In earlier versions it was echoed as GRND1. This
setting is still accepted. For DEDUCED, two extra lines may appear:

>OBJ, VELIN, vin[>OBJ, VELIN2, vin2]
where vin is the initial guess for the external velocity normal to the outlet. If the line
is absent, a value of zero is assumed.

>OBJ, RELAX, relax[>OBJ, RELAX2, relax2]
where relax is a liner relaxation factor used to slow down the rate of change of the
deduced external velocity. If the line is absent, a value of 0.3 is assumed.

If VOUT (and VOU2 for two-phase case) is STOREd, the deduced velocity is made available
for plotting in the Viewer.

External Scalar:
> OBJ, OUTLET_scal, val

where scal is one of the SOLVEd scalars and val is the value. One such line
for each scalar with an external value.

Note that 'In-Cell' is echoed as SAME.

Emissivity:> OBJ, EMISSIVITY, Emiss

External temperature for radiative link:
> OBJ, T_EXT, Text

Text may be the character string T_AMBIENT to indicate the value set for T_AMBIENT in
the domain section. This is the default.

OR Deduced External velocity:
> OBJ, VELOCITY, DEDUCED
[> OBJ, VELOCITY-2, DEDUCED>OBJ, VELIN, vin[>OBJ, VELIN2, vin2]>OBJ, RELAX, relax[>OBJ, RELAX2, relax2]
where vin is the initial guess for the external velocity normal to the outlet. If the line
is absent, a value of zero is assumed. Relax is a liner relaxation factor used to slow
down the rate of change of the deduced external velocity. If the line is absent, a value
of 0.3 is assumed.

If VOUT (and VOU2 for two-phase case) is STOREd, the deduced velocity is made available
for plotting in the Viewer.

where angle can be between 0 - 360 or the character string FROM_WIND, indicating
that the angle should be taken from the first WIND object.

Vertical direction
> OBJ, UP-DIR, Z

At present the SUN object only works with Z as the Upright direction. As the
default Up direction is Z, this is usually not a problem.

When a weather file is not in use, the following flags are written:

Direct Solar radiation
> OBJ, Q_DIRECT, Qdir

where Qdir is the direct solar radiation in W/m2. It may also be the
character string ALTITUDE, indicating that the direct radiation should be
calculated from the solar altitude. The direct solar radiation is obtained from
a polynomial fit to table A2.24 of The CIBSE Guide, Volume A Design Data.

Diffuse Solar radiation
> OBJ, Q_DIFFUSE, Qdif

where Qdif is the diffuse solar radiation in W/m2. It may also be the
character string ALTITUDE, indicating that the direct radiation should be
calculated from the solar altitude. When set to ALTITUDE, an extra line is
needed:

> OBJ, SKY, condition

where condition is CLEAR or CLOUDY. This determines how the diffuse radiation is
calculated. The diffuse solar radiation is obtained from a polynomial fit to
table A2.25 of The CIBSE Guide, Volume A Design Data.

Latitude of location
> OBJ, LATITUDE, latit

where latit is the latitude of the location. The Equator is at 0 degrees, the
Northern hemisphere is 0 to 90 (at the North pole), and the Southern is 0 to -90
(at the South pole).

Date
> OBJ, DATE, day/month/year

The day is set as an integer. The month as one of Jan, Feb, Mar, Apr, May, Jun,
Jul, Aug, Sep, Oct, Nov or Dec. The year is given in full, e.g. 2012. For
example 1/Apr/2011.

Time
> OBJ, TIME, hour/minute/second

The hour is given in the 24hr system. Minutes and seconds are integers in the
range 0 - 60. For example 13/30/00 denotes half past one in the afternoon.

When a weather file is in use:

> OBJ, WEATHERFILE, filename

where filename is the name of the weather file, including the .epw extension. If
the file is not in the current working directory, the path to the file must
be given.

Note that if SUN and WIND are both set to use a weather file, they will both use
the same weather file, and will both use the same date and time of day.

The following flags are not written, as their values are taken from the weather
file:

The coefficient and power required for some of the expressions are written as:

> OBJ, PDROP_COE, coefficient (assumed value of 1.0 if line absent)
> OBJ, PDROP_POW, power (assumed value of 2.0 if line absent)

Solar absorption factor. If a
SUN object is active,
the fraction of the incident solar radiation absorbed by this thin plate is set by> OBJ, SOL_ABSORB_L, Factor_low_side> OBJ, SOL_ABSORB_H, Factor_high_side

where Factor_low_side refers to the low-coordinate face and Factor_high_side refers to the
high-coordinate face. The factors are values between 0. and 1.0. If the line is not present,
1.0, 1.0 is assumed.

If the Leaf Area Density varies with height, the name of the file containing the values
of h vs. LAD is given as:

> OBJ, LAD_FILE, file_name

The file itself should be an ASCII text file containing two columns of numbers in free format. The first
column is the height normalised by forest height, or actual height, and the second the Leaf Area Density at that height.

> OBJ, LAD_NORM, NO

This indicates that the height in the file is not normalised. If the line is absent or is set to YES, it will be
assumed that the height is normalised.

Lead Area Index
> OBJ, LEAF_AREA_I, type

where 'type' is one of: Extremely sparse, Very sparse, Slightly sparse, Slightly dense, Very dense or User.

When set to 'User' the value of the Leaf Area Index is held as:

> OBJ, LAI, lai

where 'lai' is the actual value.

Drag Coefficient
> OBJ, DRAG_COEF, type

where 'type' is one of: Single deciduous, Mixed forest, Row of deciduous, Conifers or User

The PATCHES attribute contains a list of the patch names associated with this object.
As many PATCHES lines as needed to hold all the patch names can be used.

All settings relating to the PATCH and COVAL statements linked to a user-defined object
are printed in the relevant Group - these can be Groups 11, 12, 13, or 23. The name of the
controlling object is written as a guiding comment.

The first location argument of PATCH (usually IXF) is set to -1, to indicate that the
patch is to be linked to an object. The remaining five location arguments are zero. As
many PATCH commands can be attached to one user-defined object as required.

In earlier (pre-2009) versions the IXF location argument was used to hold the object
number. This method is still recognised on reading a Q1, but when the new Q1 is written
the object number will be replaced by -1, and the patch name will be echoed in the PATCHES
list.

Satellite modifies the grid so that it fits the edges of the object bounding box. Earth
applies whatever settings are implied by the PATCH to those cells that lie inside the
volume or area defined by the facets of the object.

For area or volume sources, Earth will scale the source by the ratio between the area
(or volume) of the facets, and the area (or volume) of the affected cells, to ensure that
the correct total source is set.

The CELLTYPE object is entirely equivalent to a USER_DEFINED object which has the
>OBJ, GRID attribute set to NO. It is recommended that this be used instead.

The PATCHES attribute contains a list of the patch names associated with this object.
As many PATCHES lines as needed to hold all the patch names can be used.

All settings relating to the PATCH and COVAL statements linked to a cell-type object
are printed in the relevant Group - these can be Groups 11, 12, 13, or 23. The name of the
controlling object is written as a guiding comment.

The first location argument of PATCH (usually IXF) is set to -1, to indicate that the
patch is to be linked to an object. The remaining five location arguments are zero. As
many PATCH commands can be attached to one user-defined object as required.

In earlier (pre-2009) versions the IXF location argument was used to hold the object
number. This method is still recognised on reading a Q1, but when the new Q1 is written
the object number will be replaced by -1, and the patch name will be echoed in the PATCHES
list.

Satellite does not modify the grid to fit the edges of the object bounding box. Earth
applies whatever settings are implied by the PATCH to those cells that happen to lie
inside the volume or area defined by the facets of the object.

For area or volume sources, Earth will scale the source by the ratio between the area
(or volume) of the facets, and the area (or volume) of the affected cells, to ensure that
the correct total source is set.

The CELLTYPE object is entirely equivalent to a USER_DEFINED object which has the
>OBJ, GRID attribute set to NO.

GROUP objects are created interactively from the Object Management panel - Section
4.2.4.1. Each LIST line contains names of the objects selected as members of the group. As
many LIST lines are generated as are required to hold the names of all the objects in the
group, subject to a maximum line length of 68 characters.

When set to Low, the clipping planes are located at the W,S,L corner of the object and
clip everything 'below' them. When set to High, the clipping planes are located at the
E,N,H corner of the object and clip everything 'above' them. Only two clipping_plane
objects are allowed.

The following object types can act as exit boundaries for
GENTRA particle tracks:

INLET

OUTLET

ANGLED_IN

ANGLED_OUT

FAN (at domain boundary)

WIND

WIND_PROFILE

The default action is for these object types to allow GENTRA particles to leave the domain. In this case
no extra Q1 setting is required. If it is required for the object to prevent particles from leaving,
the following setting is written:

>OBJ, GENTRA_EXIT, NO

In this case, the particles will obey the selected wall-treatment option. Further details of GENTRA
are given in The GENTRA User Guide TR/211.

There are several points to bear in mind when hand-editing a Q1 file created by the
VR-Editor:

The Q1 is automatically regenerated when saving EARDAT for an Earth run. Hand-edits such
as comments will be lost. PIL settings will be captured, but will appear as part of the
automatically-written Q1. Hand formatting of PIL statements will thus be lost.

PIL DO loops will be captured in their 'unraveled' form. Nonetheless, a DO loop can be
used to create a number of objects, for example the loop:

will create three objects called BLK1, BLK2 and BLK3 with Z positions 9, 11 and 13
respectively. Note that variables or expressions used in > OBJ lines must be enclosed
in :: to ensure correct evaluation.

Comments placed inside DISPLAY / ENDDIS statements will be preserved as-is. All DISPLAY
sections are echoed in order at the top of the Q1, regardless of their original position.

PIL statements placed after the STOP are read and copied to the EARDAT
file, but are 'invisible' to VR. Using this method, it is possible to overwrite, or
extend, the automatic settings made by VR.

For example, LSWEEP=500 placed after the
STOP will always overwrite any setting made in the menu.

Q1 files which have been heavily hand-edited should be run through satellite in 'silent'
mode, to create the EARDAT file for Earth without losing any of the hand-edits. This can
be done from the command-line with SIL, or from the 'Run - Preprocessor - Text mode - Talk
= F' menu.

The VR-Viewer never writes a Q1, but can read and display Q1 files not created by the
VR-Editor. A new Q1 is not written when going directly from VR-Editor to VR-Viewer.

All PLANT commands must be placed after a PLANTBEGIN comment line, and terminated with
a PLANTEND comment line. The PLANT Menu does this
automatically. All lines in between these comments will be preserved, and written out to
the Q1 at the end of Group 10.

Any user-variable declarations used in the PLANT formulae must also be placed within
the PLANTBEGIN/END lines.

A new GROUND.HTM is generated every time the Q1 is saved. This happens under the
following circumstances:

Run - Solver is clicked. VR-Editor will offer to recompile and relink as the new ground
is newer than the old one. If they are identical, time can be saved by declining the
offer;

In-Form commands or PIL parameterisations must be placed after a SAVEnBEGIN comment,
and terminated with a SAVEnEND comment line. Here 'n' represents the Q1 Group the commands
are to be placed in. The INFORM
Editor does this automatically. If a BEGIN block does not have a matching END
statement, the VR-Editor will issue an error message when the Q1 is saved.

Any user-variable declarations used in the INFORM formulae must also be placed within
the SAVEnBEGIN/END lines.

On exit from VR-Editor, all PIL lines and any In-Form commands found within BEGIN/END sections
will be executed, and then echoed to the end of the relevant Group.

Any PIL statements or comments, not just InForm commands, placed inside a SAVEnBEGIN /
SAVEnEND block will be written back to the Q1 at the end of the nth Group.

All > DOM, > GRID or > OBJ lines placed inside a SAVE25BEGIN / SAVE25END block
will be echoed back to the object-settings part of the Q1 file untouched. In this way,
parameterised object settings can be preserved from one Editor run to the next.

Multiple BEGIN/ENDs for the same Group number are allowed, and will be echoed
sequentially. In-Form or PIL commands outside the BEGIN/END sections will not be
transmitted to the Earth solver, and will be lost from the saved Q1.

In earlier versions (pre 2008) INFORMnBEGIN/END was used instead of SAVEnBEGIN/END.
These older forms will be recognised and treated correctly, but the new Q1 will contain
SAVEnBEGIN/END.

Error messages generated by malformed In-Form commands are echoed to the Text box and
to the file LU6PVR at the time the Q1 is saved. Error messages generated by In-Form at
Solver run-time are written to the RESULT file.

If the PIL logical vredit is set
to F, then any lines within the BEGIN/END block will only be executed when the Q1 is read
on start-up, and a new Q1 will not be written on exit. This is a fail-safe way of ensuring that
user parameterisation cannot be lost, but it does restrict the functioning of the Editor.

An alternative form of InForm statement allows a sub-set of the Inform commands to be
directly linked to the object attributes, and be held in the Q1 together with all the
other attributes. These commands take the form of:

> OBJ, INFkey_var, formula with
condition

In the above , 'key' is one of

SRC -> SOURCE,

STO -> STORED,

INI -> INITIAL,

MAK -> MAKE,

St1 -> STORE1, or

PRN -> PRINT

'var' is one of the STOREd or SOLVEd variables, or a variable declared by MAK (MAKE).

'formula with condition' is the expression to be applied, together with any 'WITH'
options that are needed. The opening and closing brackets of a traditional InForm command
are not needed. Lines longer than the normal Q1 line of 68 characters should be 'folded'
with a $ as the last character to denote a continuation line. As many continuation lines
as needed can be used. Each continuation line should have the same > OBJ,
INFkey_var, string at the beginning. An example is: