Syntax and general rules

Input file is composed of records. In the current implementation, each record is represented by one line in input file. The order of records in file is compulsory, and it has following structure:

  1. output file record, see section 2.1,
  2. job description record, see section 2.2,
  3. analysis record, see section 3,
  4. domain record, see section 4,
  5. output manager record, see section 4.1,
  6. components size record, see section 4.1.1,
  7. node record(s), see section 4.2,
  8. element record(s), see section 4.3,
  9. set record(s), see section 4.4,
  10. cross section record(s), see section 4.5,
  11. material type record(s), see section 4.6,
  12. nonlocal barriers record(s), see section 4.7,
  13. load, boundary conditions record(s), see section 4.8,
  14. initial conditions record(s), see section 4.9,
  15. time functions record(s), see section 4.10.
  16. optional xfem manager and associated record(s), see section 4.11
When input line begins with '#' character, then it is ignored by the parser and can serve as a comment inside input file.

The individual records consist of record keyword followed by one or more attributes. Each attribute is identified by its keyword, which can be followed by attribute value(s). Some attributes have no values. The order of attributes in the record is optional.

Sometimes, the record keyword itself can be variable, taking on a restricted range of possible values. As an example, OOFEM has element record, desribing particulat element, and record keyword determines the particular element type. In this case, the record keyword is preceded by star. We call such record keyword as entity keyword. The possible substitutions for entity keyword are typed using Typewriter font family. Often, some attributes are specific to particular entity keyword. Then the general format of record is described and entity specific attributes are described separately. The possible attributes are then union of general and entity specific attributes.


\begin{lstlisting}[style=oofem, language=oofeminput, caption={Example of input r...
...mask 3 1 2 3
...

Each attribute value has a specific type, which describe its size and layout. To describe the type of an attribute, the following notation is used: Keyword #(type), where type determines the attribute type and # is the placeholder for the attribute value. The possible types of attribute values are following:

The general format of record is

record_keyword #(type) [attribute1_keyword #(type)]
...
[attributeXX_keyword #(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.

When some attribute 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).

If any attribute (and thus its keyword and value) is enclosed within angle brackets $ \langle$ $ \rangle$ then it is related to parallel version of oofem is not available in sequential version.

Example of input record.

As an example, consider the following record description:
Particle #(in) color #(in) mass #(rn)
coords #(ra) name #(s)

The following listing shows the corresponding, properly formatted, input record:
\begin{lstlisting}[style=oofem, language=oofeminput, caption={Corresponding inpu...
...article 2 color 5 mass 0.18 coords 3 0.0 1.0 2.0 name ''P1_36''
\end{lstlisting}

Borek Patzak
2018-01-02