Understanding output file¶
By default, oofem produces output in the form of a readable text file, called
the output file. Its content can be controlled to some extent in the
OutputManager record of the input file. One can filter the output for
selected solution steps and for specific sets of nodes and elements, for
example.
Do not confuse the output file with the console log. The console log reports
the progress of the solution (which step is being solved, how the equilibrium
iterations converge) and can be redirected with the -qo and -qe
options; the output file contains the results and is named in the first line of
the input file.
Controlling the content¶
The OutputManager record accepts the following selectors:
tstep_allOutput for all solution steps.
tstep_step <n>Output for every n-th solution step.
tsteps_out <size> <list>Output only for the explicitly listed solution steps.
dofman_all/element_allOutput for all dof managers / all elements.
dofman_output <size> <list>/element_output <size> <list>Output only for the listed dof managers / elements. Ranges may be given in the
{(first last)}form.dofman_except <size> <list>/element_except <size> <list>Suppress the output for the listed dof managers / elements.
Restricting the output to the steps and components of interest is worth doing for larger models — for a mesh of any size the complete output of every integration point in every step runs into hundreds of megabytes and is not readable anyway. In that situation an export module (see Postprocessing) is the better tool.
An Example¶
Consider the same linear elastic analysis of the beam structure as in the previous section. We first run the solver with the example
$ ./oofem -f /home/user/oofem.src/tests/regression/sm/beam2d_1.in
Upon successful execution, the text output file containing the simulation
results is created (the name of the output file is specified in the input
file). In our case, the beam2d_1.out file is created in the current working
directory. The output file can be inspected in any text editor.
Header section¶
Every output file starts with a header containing information on the solver version, the repository and commit the solver was built from, the job description and the starting date and time of the analysis.
############################################################## www.oofem.org ###
____ ____ __________ ___
/ __ \/ __ \/ __/ __/ |/ /___ _______
/ /_/ / /_/ / _// _// /|_/ // _ \/ __/ _ \
\____/\____/_/ /___/_/ /_(_)___/_/ \_, / OOFEM ver. 3.0
/___/ Copyright (C) 1994-2025 Borek Patzak
################################################################################
Git URL:https://github.com/oofem/oofem.git,
branch:devel, hash:v3.0
Starting analysis on: Wed Jun 9 09:32:17 2021
Homework www sm40 no. 1
The Git URL block identifies the exact sources the results were produced
with, which makes an old output file traceable; quote it when reporting a
problem. The last line is the job description record copied verbatim from the
input file.
Solution step section(s)¶
The output file continues with the output for each solution step of the analysis. This consists of a simple header indicating the solution step time
==============================================================
Output for time 1.00000000e+00
==============================================================
The output for a solution step consists of the output of the problem domain(s)
Output for domain 1
consisting of the output for all nodes and elements. We start with the nodal
output. The output for each node starts with the Node keyword, followed by
the node label and the internal number (in parentheses). This is followed by an
indented block containing the output for every degree of freedom of the node.
The DOF meaning is identified by an integer code after the dof keyword. The
codes are defined by the DofIDItem enum. For example, the mechanical
unknowns have the following codes: 1 for displacement in the x direction,
2 for displacement in the y direction, 3 for displacement in the z
direction, 4 for rotation around the x axis, 5 for rotation around the
y axis and 6 for rotation around the z axis (see
src/core/dofiditem.h
for the full definition). Our 2D beam structure is in the xz plane, so the
relevant DOFs are displacement in x, displacement in z and rotation around y,
corresponding to DOF codes 1, 3 and 5. The d code in the dof output means
that the actual value is printed; for some analyses the velocities (v) and
accelerations (a) of the corresponding unknown can be printed as well.
DofManager output:
------------------
Node 1 ( 1):
dof 1 d -1.37172495e-03
dof 3 d 0.00000000e+00
dof 5 d -2.38787802e-05
Node 2 ( 2):
dof 1 d -1.37172495e-03
dof 3 d 2.03123137e-14
dof 5 d -1.01549259e-06
Node 3 ( 3):
dof 1 d -1.37172495e-03
dof 3 d 4.20823351e-05
dof 5 d 0.00000000e+00
Node 4 ( 4):
dof 1 d -1.75286359e-03
dof 3 d 5.50267187e-04
dof 5 d 1.05205838e-05
Node 5 ( 5):
dof 1 d -1.34016320e-03
dof 3 d 0.00000000e+00
dof 5 d 4.07440098e-04
Node 6 ( 6):
dof 1 d 0.00000000e+00
dof 3 d 0.00000000e+00
dof 5 d -0.00000000e+00
The nodal output is followed by the element output. The actual format depends
on the particular element, but generally the internal variables at each
integration point are reported, prefixed by GP and the integration rule and
point numbers. In the case of a beam element, the local displacements and end
forces are printed as well.
Element output:
---------------
beam element 1 ( 1) :
local displacements -1.3717e-03 0.0000e+00 -2.3879e-05 -1.3717e-03 2.0312e-14 -1.0155e-06
local end forces 0.0000e+00 -8.9375e+00 0.0000e+00 0.0000e+00 -1.5062e+01 -7.3499e+00
GP 1.1 : strains +0.0000e+00 +0.0000e+00 +0.0000e+00 +3.6323e-05 +0.0000e+00 +0.0000e+00 -2.4500e-33 +0.0000e+00
stresses +0.0000e+00 +0.0000e+00 +0.0000e+00 +4.2897e+00 +0.0000e+00 +0.0000e+00 -3.0625e+00 +0.0000e+00
GP 1.2 : strains +0.0000e+00 +0.0000e+00 +0.0000e+00 +2.0106e-05 +0.0000e+00 +0.0000e+00 -2.4500e-33 +0.0000e+00
stresses +0.0000e+00 +0.0000e+00 +0.0000e+00 +2.3745e+00 +0.0000e+00 +0.0000e+00 -3.0625e+00 +0.0000e+00
GP 1.3 : strains +0.0000e+00 +0.0000e+00 +0.0000e+00 -1.0531e-06 +0.0000e+00 +0.0000e+00 -2.4500e-33 +0.0000e+00
stresses +0.0000e+00 +0.0000e+00 +0.0000e+00 -1.2437e-01 +0.0000e+00 +0.0000e+00 -3.0625e+00 +0.0000e+00
GP 1.4 : strains +0.0000e+00 +0.0000e+00 +0.0000e+00 -1.7270e-05 +0.0000e+00 +0.0000e+00 -2.4500e-33 +0.0000e+00
stresses +0.0000e+00 +0.0000e+00 +0.0000e+00 -2.0396e+00 +0.0000e+00 +0.0000e+00 -3.0625e+00 +0.0000e+00
...
The stress and strain components are reported in the element’s own local
coordinate system; for a beam element these are generalized quantities (forces
and moments rather than stresses). Their number and ordering follow from the
stress-strain mode of the element and are documented per element type in the
OOFEM Element Library Manual.
The number of GP blocks follows from the element type and its integration
rule.
For structural analyses the reaction table is reported:
R E A C T I O N S O U T P U T:
_______________________________
Node 1 iDof 3 reaction -8.9375e+00 [bc-id: 1]
Node 3 iDof 5 reaction 0.0000e+00 [bc-id: 2]
Node 5 iDof 3 reaction -1.8750e+01 [bc-id: 1]
Node 6 iDof 1 reaction 1.8000e+01 [bc-id: 3]
Node 6 iDof 3 reaction -2.0312e+01 [bc-id: 3]
Node 6 iDof 5 reaction -5.3999e+01 [bc-id: 3]
Only the DOFs constrained by a Dirichlet boundary condition appear here, and
[bc-id: n] identifies which boundary condition of the input file is
responsible. Checking that the reactions sum up to the applied load is the
quickest sanity check on a new model.
Finally, the solution time for every time step is reported.
User time consumed by solution step 1: 0.004 [s]
The output is then repeated for each solution step of the problem. Finally, the accumulated total solution time is reported.
Finishing analysis on: Wed Jun 9 09:32:17 2021
Real time consumed: 000h:00m:00s
User time consumed: 000h:00m:00s
If the output file ends without this closing block, the analysis did not finish — it either diverged or was interrupted — and the results of the last step present in the file should not be trusted.