uFEM User's Guide

Changed: Thu Feb 3 23:32:45 CET 2005


About uFEM

uFEM is a finite element method software for the structural analysis. It is mainly focused to the civil engineering area. The software can be used (with many limitations) for the static analysis of 2D and 3D structures.

Program Names and Instalation


The program has been developed for the unix-like systems. It means that program files have ho special extension (no ".exe"). The solver is usually named "fem" and the user interface should be "tfem" (terminal version) and "gfem" (graphics/GUI version).

The GUI version requires running graphics environment (X Window System) for run. The terminal one can run on any VT100-compatible terminal but produces no graphics output.

All three files can be placed in any directory which is listed in the PATH environment variable but the "/usr/local/bin/" is recommended.

Configuration Files

Global configuration can be stored in the "/etc/tgfemrc" file. This one may not exists.

Alternative location of the global configuration file can be specified in the "FEM_SETUP_FILE" environment variable or as gfem/tfem's command line parameter (run gfem as "gfem -c your_file" if "your_file" is a full name for your configuration file).

Every user can have their own configuration file ".tgfemrc" which should be placed in his/her home directory (POSIX-compliant operating systems only).

The user's file is read after the global file and may redefine the settings from the global file.

Configuration files are accessed in this order:

  1. /etc/tgfemrc
  3. $HOME/.tgfemrc
  4. -c your_file

All these files are optional - there is no error if one (or more) is missing.


You have to create at least one configuration file (software distribution includes sample file) if you want to call the solver from the user interface (you can use solver from the command line but it is probably les comfortable).

The configuration file should include at least these two line:

The "/tmp" is name of the directory where "fem" places created temporary files (and results) and the "/usr/local/bin/fem" is the full path to the "fem" executable.

Another usefull (but not required) line is

The "/usr/bin/gvim" is full path to the output viewer. It is used to view the text outputs from program. If it is not set then listings are going through the output window.

Graphics User Interface (GUI)

Please don't be confused if your interface has different (simpler) look. There are options for limited systems. Users of these systems should use commands instead of menus and dialogs (other possibilities of program are identical).
This manual descibes standard GUI.


Utility Menu

Utility Menu

The Utility Menu can be used for several operations:

Command Line

Command Line

The command line is a place where you can type the commands. The typed command is executed when the "Enter" key (on your kyeboard) is pressed.

The right part of the commands line is a status indicator (actually shows the text "Ready.."). It can show the "OK" if command was successfull or "Failed!" it it wasn't.
If you see the "Failed!" then please read the terminal output to identify the problem. The status indicator works for the Main Menu, too.

Main Menu

Main Menu

The Main Menu (organised as a tree) can be used for the most of editing operations.

It is very simple to use it. Items can be activated (and the subtrees can be expanded or closed) with pressing of the "Enter" key. You may use double-click of the left mouse button, too.

Switching between the Main Menu and the Command Line can be done with the "Tab" key.

Graphics Window

Graphics Window

The Graphics Window is used for the graphics. It includes some usefull information in the right: the "Time" indicator (will be explained later), the coordinate system indicator ("CS") and the coordinate system symbol.

Mouse Selection Buttons

Graphics Window

These buttons are usefull only you are doing mouse selection. The "Finish" button finishes your operation and the "Cancel" one iterrupts it. Note that "Cancel" has no effect to existing (even newly created) items.

The middle mouse button (if any) has usually the same effect as the "Finish" button.

Tip: If you need to deselect something, the right mouse button helps...

Plot Toolbar

This toolbar can be used for zooming, moving and rotating of the graphics.

Conventions and Tips

Please do not use commas (",") in numbers. Use the dot (".") instead. Be sure that you are using English keyboard when working with uFEM.

You can see the Apply button in some dialogs. It acts like the common OK button but doesn't close the dialog, so you may continue your work (create next node,...).

uFEM is designed to be controlled with three-button mouse. You need only the left button in GUI (clicking on the buttons, menus, etc.) but more buttons are used when selecting items in the Graphics Window. The left button selects things (as mentioned above) and the right one deselects. The middle button finishes selection operation (you can use the "Finish" GUI button instead).

Analysis Guide

The analysis consists from three parts: preprocessing, solution and postprocessing. The first and the third can be done in used interface. An external solver is used for the solution (but it can be called from used interface).


To create a usefull computational model you have to define (in this order):

  1. element types,
  2. sets of real constants ("real sets"),
  3. material types,
  4. nodes of finite elements ("nodes"),
  5. finite elements ("elements"),
  6. boundary conditions ("displacements"),
  7. loads.

Element Types

First you have to select the finite elements that are going to be used. Every type of the element will be labelled with user-defined number. This number will be used in any further work.

It is accessible through Main Menu / Preprocessor / Element Types / Add.

It will show dialog like this:

Main Menu

The "Identifier" field should include your favorite number of the element type (anything you want but it have to be a integer number) type and the "Type" filed should include proper name of an element type.

Real Sets

Real Sets consists from values that are required to full description of finite element. The may include cross-section area and moments of inertia for 1D elements, thickness of plane elements, reinforcement position for "reinforced concrete" elements etc. Real Set definition is required (solution will fail run without it).
Note that there are elements that doen't need any of these values (3D bricks) and no real set definition is needed for these elements.

It is accessible through Main Menu / Preprocessor / Real Sets / Add.

And newer forget to set the values!
There are accessible through Main Menu / Preprocessor / Real Sets / Set Values.

Material Types

Material Types consists from material data: Young's modullus, Poisson ratio, density and so on. Note that all properties should be inputed by used (including shear modullus, if any).

It is accessible through Main Menu / Preprocessor / Material Types / Add.

And newer forget to set the values!
There are accessible through Main Menu / Preprocessor / Material Types / Set Values.


The nodes should be defined prior to finite elements.

The most straightforward way to create a node is Main Menu / Preprocessor / Nodes / Create/Change.

This gives you a simple dialog. If the "Number" field is empty the nodes are numbered automatically. If the "Number" is set to number of existing node that this node is changed to the new values.

You can use other operations (copying or mirroring) to create nodes, too.


There are many ways to create finite elements.

Usually a properties of elements (element type number, real set number, material type number) should be selected first through Main Menu / Preprocessor / Elements / Set Default Properties.

Next, elements can be defined through Main Menu / Preprocessor / Elements / Create/Change.

This gives you a simple dialog. If the "Number" field is empty the nodes are numbered automatically (the same behaviour as for nodes). If the "Number" is set to number of existing element that this element is modified.

Numbers of nodes should be specified (can not be leaved emply) and these nodes must exist.

In gfem you may create nodes by mouse picking through Main Menu / Preprocessor / Elements / Create/Change.

It will ask you for element properties and after it you may start to create elements by picking the nodes. Selected nodes will change their color and size. After a required number of nodes is selected the element is created.

Pressing of the middle mouse button (you have three-button mice, isn't it?) of clicking on the "Finish" button (left bottom corner of program window) will finish the creation of elements.
Note that even pressing of the "Cancel" button don't remove any created element. It hss no effect here.

Elements may be copied. New nodes may be created during copying of elements (if needed).

Note that mirroring of elements is not recomended. It works for 1D elements but it may cause problems for 2D and 3D ones (element orientation michmach).


Displacements can be defined on nodes only. They can be created through Main Menu / Preprocessor / Displacements / Create/Change.

You have to set the number of node and type of a boundary condition ("displacement" but stiffnesses are available, too) here. "Node number should be filled here!. "Size" field is required only for stiffnesses and non-zero displacements.

Note that in case you input node number, type and direction of existing displacement the properties of it will be changed (the "Size" field).

You can create displacements by mouse picking through Main Menu / Preprocessor / Displacements / Create by Mouse.

It is identical to "Create/Change" and the only difference is that nodes are selected by mouse.

Displacements can be copied and mirrored in the same way as nodes.


There are three types of loads: loads on nodes, loads on elements (currently unavailable) and gravitation load.

Loads on nodes can be created in the same way as displacements. The only exception is that the "Value" field is always required. It is possible through Main Menu / Preprocessor / Nodal Loads / Create/Change or Main Menu / Preprocessor / Nodal Loads / Create by Mouse (if you want to use mouse).

Nodal load can be copied or mirrored, too.

Gravitation loads (gravitation acceleration) can be added through Main Menu / Preprocessor / Acceleration / Create/Change.

Note that density on material should be higher than zero in this case.


It the only one load set is defined it is adequate to run the solver through Main Menu / Solver / Solve Current Data.


  1. Listing of results,
  2. Plotting of results.

Listing of results

You can obtain list of results through Main Menu / General Postprocessor / List Results / Reactions.

This command will give you a list of reactions in a window of a text editor or of a other viewer you have defined in a configuration file. The output includes one line per supported DOF so you can see more than one line for a single node. The important information is at the end of the output - there are sums of reactions in X,Y and Z directions (if applicable).

The displacements of nodes are available through Main Menu / General Postprocessor / List Results / DOF Solution .

You also may want to see forces or other results on elements. They are available through Main Menu / General Postprocessor / List Results / Elements Results .

You can select (and print) any type of results in the dialog window but only applicable data will be nonzero. If element includes more than one point where data are computed then there is more than one line for element.

Plotting of results

Plotting is very similar to listing. Please note that there is no way to obtain color map of deformations. You can get deformad shape of structure (but nodes, loads and boundary conditions always remain at original positions) but you can not colorize size of deformations.

The results on elements are available through Main Menu / General Postprocessor / Plot Results / Elements Results .

Obviously, you can't obtain any kind of graphics results in terminal version of the postprocessor (tfem). You have to use gfem for it.

© 2004, 2005 Jiri Brozovsky