Before we give the complete syntax for an SEIF file, we continue the illustrative example that we started in Section 3.1.4 and show how to specify an input file appropriate for the problem of Section 2.5. Once again, there are many possible ways of specifying a particular problem; we give one in Figure 4.2. The arithmetic expressions given are written in Fortran.
The file must always start with an ELEMENTS card, on which a name (in this case EG3) for the example may be given (line 1), and must end with an ENDATA card (line 40).
We next need to specify the names and attributes of any auxiliary quantities and functions that we intend to use in our high level description of the element functions. These are needed to allow for consistency checks in the subsequent high-level language statements and must always occur in the TEMPORARIES section of the input file. Lines 3 to 6 indicate that we shall be using temporary quantities SINV1, ZERO, ONE and TWOP1, and the character R in the first field for these lines states that these quantities will be associated with floating point (real) values. The character M in field 1 of Lines 7 and 8 indicates that we may use the intrinsic (machine) functions SIN and COS. These are of course Fortran intrinsic functions appropriate for the high-level language used here.
We now specify any numerical values which are to be used in one or more element descriptions within the GLOBALS section. On lines 10 and 11, we allocate the values 0 and 1 to the previously defined quantities ZERO and ONE. Note that such cards require the character A in field 1 - if an assignment were to take more than 41 characters (the width of field 7), it could be continued on subsequent lines for which the string A+ is required in field 1.
Finally we need to make the actual definitions of the function and derivative values for the element types and specify the transformations from elemental to internal variables if they are used. Such specifications occur in the INDIVIDUALS section from lines 12 to 39 of the example. We recall that there are four element types 3PROD, 2PROD, SINE and SQUARE and that their attributes (names of elemental and internal variables and parameters) have been described in the SDIF file set up in Section 3.1.4. Two of the element types (3PROD and SQUARE ) use internal variables so we need to describe the relevant transformation for those.
On line 13, the presence of the character T in field 1 announces that the data for the element type 3PROD is to follow. All the data for this element must be specified before another element type is considered. On lines 14 and 15 we describe the transformation from elemental to internal variables that is used for 3PROD. Recall that the transformation is and . On line 14, the first of these transformations is given, namely that U1 is to be formed by adding 1.0 times V1 to -1.0 times V2. The second transformation is given on the following line, namely that U2 is formed by taking 1.0 times V3. Both lines are marked as defining transformations by the character R in field 1 -- continuation lines are possible for transformations involving more than two elemental variables on lines in which the string R+ appears in the same field.
We now specify the function and derivative values of the element type with respect to its internal variables. On line 16, the code F in field 1 indicates that we are setting the value of the element type to U1*U2, the Fortran expression for multiplying U1 and U2. On lines 17 and 18, we specify the first derivatives of the element type with respect to its two internal variables U1 and U2 - the character G in field 1 indicates that gradient values are to be set. On line 17, the derivative with respect to the variable U1, specified in field 2, is taken and expressed as U2 in field 7. Similarly, on line 18, the derivative with respect to the variable U2 (in field 2), U1, is given in field 7. Finally, on lines 19 to 21, the second partial derivatives with respect to both internal variables are given. These derivatives appear on cards whose first field contains the character H. On line 19, the second derivative with respect to the variables U1 (in field 2) and U1 (in field 3), 0.0, is given in field 7. Similarly the second derivative with respect to the variables U1 (in field 2) and U2 (in field 3), 1.0, occurs in field 7 of line 20 and that with respect to U2 (in field 2) and U2 (in field 3), 0.0, is given in field 7 of the following line.
The same principle is applied to the specification of range transformations, values and derivatives for the remaining element types. The type 2PROD does not use a transformation to internal variables, so derivatives are taken with respect to the elemental variables V1 and V2 (or one might think of the internal variables being V1 and V2, related to the elemental variables through the identity transformation). The values and derivatives for this element type are given on lines 22 to 28. The type SINE again does not use special internal variables and the required value and derivatives are given on lines 29 to 33. Note, however, that the value and its second derivative with respect to both use the quantity ; for efficiency, we set the auxiliary quantity SINV1 to the Fortran value SIN(V1) on line 30 and thereafter refer to SINV1 on lines 31 and 33. Notice that this definition of auxiliary quantities occurs on a line whose first field contains the character A. Finally, the type SQUARE, which uses a transformation from elemental to internal variables , is defined on lines 34 to 39. Again notice that the value 2.0 occurs in both first and second derivatives, so the auxiliary quantity TWO is set on line 36 to hold this value.