Labels in Feko

In the PREFEKO language and Feko in general, items in a model are identified by their labels. Operations are performed and electromagnetic properties are applied to the items through their labels.

Labels are set either directly in CADFEKO or by preceding geometry cards in EDITFEKO with the LA card. When importing specific mesh formats by means of the IN card then labels can also be imported (for instance the NASTRAN property gets converted into an Altair label).

Labels can consist of any or a combination of the following:
  • A positive integer number, including zero (for example, 0, 1, 2 ..9).
  • Any valid expression (for example, 3*#i+2). The expressions are evaluated, and the resultant numerical value is used in the label.
  • A string of characters (valid are, a..z, A..Z, 0..9 and the underscore “_”), optionally followed by a variable (which starts with the “#” sign). Such variables at the end are evaluated and replaced by the corresponding numerical value (rounded to an integer).
    Note: String labels are case insensitive. The labels Roof and ROOF are treated identically.
For example, the following labels are valid:
23
5*#k+#j/2
LeftWing
Front_Door
Part#i
The following labels are invalid:
Left+Wing (invalid character '+')
-23 (negative integer)
Part_#i_#k (two variables)


Figure 1. Example demonstrating the usage of labels (display of labels in colour with legend in POSTFEKO.

You can use the CB card in EDITFEKO to change labels (for example, after having imported geometry). A powerful wild card algorithm (expanding a non-specific label name containing a wild card character into a set of specific labels) is supported. Some Feko cards allow you to specify label ranges while other cards allow labels for created geometry to be derived from other labels (for example when using symmetry with the SY card). It is therefore important to understand how the label algorithm works.

The labelling algorithm first evaluates expressions or replaces variables, and then the label is split into the associated number and the remaining base string. The associated number is split off from the back of the label, and if there are no digits, this is set to zero.

Table 1. Examples of splitting a label into its base string and associated number.
Label Base string Associated number
1   1
Roof Roof 0
Part_17 Part_ 17

When incrementing labels, the base string is kept and the associated number is incremented. There is just one exception: the label zero will always remain zero.

Table 2. Label incrementing example (increment by two).
Label Incrementing label
1 3
Roof Roof
Part_17 Part_19