Input file is created by records. In the current implementation, the
particular record is represented by one line in input file.
The order of records in file is
compulsory, and is following
- output file record, see section 4,
- job description record, see section 5,
- analysis record, see section 6,
- domain record, see section 7,
- output manager record, see section 7.1,
- components size record, see section 7.2,
- node & element-side record(s), see section 7.3,
- element record(s), see section 7.4,
- cross section record(s), see section 7.5,
- material type record(s), see section 7.6,
- nonlocal barriers record(s), see section 7.7,
- load, boundary conditions record(s), see section
7.8,
- initial conditions record(s), see section 7.9,
- time functions record(s), see section 7.10.
- optional xfem manager and associated record(s), see section 7.11
When line begins with '#' character, then it is skipped by parser and
provide a way, how to include comments inside input file.
Records contain many fields, each field is characterized by
keyword and its associated field value. Some keywords have no field values.
Except the first field, the order of remaining fields in record is
optional. There are several
exceptions, which will be described in particular sections.
The type of field value is specific to keyword.
General format of field, characterized by keyword ``Keyword'' with
corresponding value (marked as #) of type ``type'' is
Keyword(type) #.
If keyword is variable, depending on entity type which is
described by particular record, then the keyword is preceded by star. We call such keyword
as entity keyword (For example keyword, which describes element
type). The possible
substitutions for entity keyword are typed using
Typewriter font family.
Often, many fields are specific to particular entity keyword. Then we describe
general format of record without these specific fields and we describe
them in entity keyword specific part of record description.
Sometimes, there are fields without keywords. These are usually
compulsory, with fixed position in record. Their occurrence is
described using so called named values. The format of named value is
``(name#)(type)'', where a value of required type should be
substituted.
In a special case of analysis record, the input record can be followed
by optional meta-step input records (see section
6). Then certain fields originally in analysis
record should appear in meta-step record instead. This is marked by
adding ``M'' superscript to keyword. Then the field format is Keyword
(type) #.
As already mentioned, each field value is typed. The possible types are:
- in - integer number.
- rn - real number.
- ch - character (usually for unknowns description ('d' for
displacement unknown, 't' for temperature unknown, ...).
- ia - integer array, format of integer array is
``size val(1) ... val(size)'', where size, val(1),...,val(size) are
integer numbers. Values are separated by one or more spaces.
- ra - real array, format of real array is
``size val(1) ... val(size)'', where size is integer number and val(1),
..., val(size) are real numbers. Values are separated by one or more spaces;
- rm - real matrix, format of real matrix is
``rows columns {val(1,1) val(1,2) ...; val(2,1) ...}'', where ``rows'' and ``columns'' are integer numbers and val(1,1),
..., are real numbers. Columns are seperated by space or comma and lines by semicolon.
- dc - dictionary. Dictionary consist of pairs, each pair has key
(character type) and its associated value (integer type).
Format of dictionary is
``size key(1) val(1) ... key(size) val(size)'', where size is integer
number, key(1),...,key(size) are single character values, and val(1),
..., val(size) are real numbers. Values are separated by one or more spaces;
- rl - range list. Range list syntax is { number1 .. numberN (start1
end1) (start2 end2)}. The enclosing brackets are compulsory. The range
list represent list of integer values. Single values can be specified
using single values (number1, .., NumberN). The range of values
(all numbers from startI to endI including startI and endI can be
specified using range value in the form (startI endI). The range is
described using its start and end values enclosed in parenthesis.
Any number of ranges and single values can be used to specify range list.
- et - entity type. For example, it describes the finite element
type. Possible type values are mentioned in specific sections.
- s - character string. The string have to be enclosed
in quotes ("") following after corresponding keyword.
- expr - function expression. The expression have to be enclosed
in quotes (""). The expression is evaluated by internal parser and
represent mathematical expressions as a function of certain variables.
The variable names and meaning are described in specific sections.
The usual arithmetic operators like -,+,*,/ are supported and their
evaluation order is taken into account. The evaluation order can be
changed using parenthesis. Several built-in functions are supported
(sqrt, sin, cos, tan, atan, asin and acos) - these must be typed using
lowercase letters and their arguments must be enclosed in parenthesis.
The general format of record is
| |
keyword1(type) # [keyword2(type) #] |
| |
... |
| |
[keywordXX(type) #] |
The keywords and their values are separated by one or more spaces. Please note, that a single record cooresponds to one input line in input file. If any keyword or field value is enclosed within angle brackets
then it is related to parallel version of oofem is not available in sequential version.
When some field is enclosed in brackets [ ], then it's use is optional
and often overwrites the default behavior or adds additional (but
optional) information or property (for example adds a loading to
node).
Borek Patzak
2011-12-29