Me ST El 001
Me ST El 001
ME-ST-EL-001 [TUTORIAL]
Plain strain square (BEM model)
J.D.R. Bordón
Á.G. Vega-Artiles
June 2022
Contents
1 Problem description 1
3 Pre-processing 3
3.1 Gmsh format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1.1 GEO file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1.2 MSH file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2 Native format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 Input data file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4 Post-processing 9
4.1 Nodal solutions file (*.nso) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
4.2 Gmsh results file (*.pos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6 Modifications 13
6.1 Higher number of elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.2 Higher order elements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6.3 SBIE formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1 Problem description
In this first tutorial, a static analysis of a plain strain elastic square is performed using the Boundary
Element Method (BEM), i.e. boundary elements. Figure 1 shows the geometry, required material
properties and boundary conditions, where E is the Young’s modulus, ν is the Poisson’s ratio, L is the
square side length and P is the load. Note that self-weight is not considered. The analytical solution
to this problem is easily obtained, which results are the following displacement and stress fields:
1
(1 + ν)(1 − 2ν)
u1 = P x1 (1)
E(1 − ν)
u2 = 0 (2)
σ11 = P (3)
ν
σ22 = P (4)
1−ν
σ12 =0 (5)
from which it can be checked that tractions ti = σij nj (nj are the components of the outward
unit normal components) obviously verify the boundary conditions. Displacement field is linear along
x1 -direction and constant (null) along x2 -direction. Also, the only non-null stresses (σ11 and σ22 )
are constant. Therefore, numerical solution using linear or higher order elements must recover the
analytical solution.
The problem is solved for L = 1 m, E = 1 N/m2 , ν = 0.25 and P = 1 N/m2 and the results are
the following:
u1 = 0.83x1 m; u2 = 0; σ11 = 1 N/m2 ; σ22 = 0.3 N/m2 ; σ12 = 0.
x2
L E, P
x1
“regions”.
2
region, traction vector depends on the unit normal, which can be discontinuous. Therefore, unlike the
FEM, which has an intuitive continuous volume discretization, the BEM requires taking into account
additional considerations when meshing.
There are several approaches when implementing the BEM. MultiFEBE uses conventional contin-
uous elements with multiple nodes2 where necessary, and an automatic (but configurable) collocation
approach which deals with the collocation of boundary integral equations. Even though in principle it
is possible to automate the process of doubling the nodes from the high-level information in the model,
this responsibility is left to the user for the sake of transparency and versatility, and also because the
rules governing this procedure are easy. Let Ω be a region, andS∂Ω its boundary. The boundary ∂Ω
must be subdivided into a set of boundaries Γj such that ∂Ω = Γj according to the following rules:
1. There must be at least a different boundary Γj for each part of the boundary ∂Ω with different
boundary (or interface) conditions. This is the initial obvious way of subdividing the whole
boundary according to the different physics of each boundary part.
2. Although not mandatory, it is recommended that each boundary is a connected space, i.e. each
boundary is made of one monolithic piece.
3. Each boundary Γj must have unique nodes, or, in other words, each node belongs to only one
boundary.
In summary, the user should think of the whole mesh as a set of smooth independent meshes (one
per boundary).
3 Pre-processing
Pre-processing in MultiFEBE consists of defining the geometry and mesh of the problem. There are
three ways to do such definition: directly from the input file (mode = 0), from another file in the native
format (mode = 1) or from another file in the Gmsh MSH file format version 2.2 (mode = 2), where
syntax will be explained in the following subsections. Furthermore, as the problem will be solved using
only the BEM formulation, the approaches explained in the previous section will be applied.
3
Finally, the mesh generation, the element order and the *.msh file saving can also be specified with
the expressions “Mesh + mesh dimension”, “SetOrder + element order” and “Save + name.msh”,
respectively.
The resulting *.geo file applied to the problem is the following:
// Bottom
Point (1) = {0, 0, 0, es};
Point (2) = {L, 0, 0, es};
Line (1) = {1, 2};
Physical Line ("bottom", 1) = {1};
// Right
Point (3) = {L, 0, 0, es};
Point (4) = {L, L, 0, es};
Line (2) = {3, 4};
Physical Line ("right", 2) = {2};
// Top
Point (5) = {L, L, 0, es};
Point (6) = {0, L, 0, es};
Line (3) = {5, 6};
Physical Line ("top", 3) = {3};
// Left
Point (7) = {0, L, 0, es};
Point (8) = {0, 0, 0, es};
Line (4) = {7, 8};
Physical Line ("left", 4) = {4};
// Mesh generation
Mesh 1;
SetOrder 1;
Save "t1.msh";
Element identifier.
Type of element.
4
Figure 2: Geometry with tangent vectors from the *.geo file.
List of tags, where the two first auxiliary tags are mandatory, and the first one corresponds to the
identifier of the physical entity to which the element belongs and the second one is the identifier
of the elementary model entity to which the element belongs. The rest of the tags are optional.
A list of identifiers corresponding to the nodes of the element.
For example, in this case, an element with the identifiers 3 1 2 3 3 5 6 corresponds to:
3: element 3.
1: type 1 (2-point line).
2: it has 2 auxiliary tags.
3: it belongs to the physical entity 3.
3: it belongs to the line 3.
5, 6: it connects the nodes 5 and 6.
Finally, the *.msh file can be obtain in File → Export or by following the instructions specified in
the section GEO file.
The resulting *.msh file applied to the problem is the following:
$MeshFormat
2.2 0 8
$EndMeshFormat
$PhysicalNames
4
1 1 "bottom"
1 2 "right"
1 3 "top"
1 4 "left"
5
$EndPhysicalNames
$Nodes
8
1 0 0 0
2 1 0 0
3 1 0 0
4 1 1 0
5 1 1 0
6 0 1 0
7 0 1 0
8 0 0 0
$EndNodes
$Elements
4
1 1 2 1 1 1 2
2 1 2 2 2 3 4
3 1 2 3 3 5 6
4 1 2 4 4 7 8
$EndElements
6
[nodes]
8
1 0 0 0
2 1 0 0
3 1 0 0
4 1 1 0
5 1 1 0
6 0 1 0
7 0 1 0
8 0 0 0
[elements]
4
1 1 1 1 1 2
2 1 1 2 3 4
3 1 1 3 5 6
4 1 1 4 7 8
[parts]
4
1 1 "bottom"
1 2 "right"
1 3 "top"
1 4 "left"
[problem]
n = 2D
type = mechanics
subtype = plane_strain
analysis = static
Next step is to configurate the mesh. In this case, a mesh from Gmsh will be used so that it
is necessary to write the option number 2 and the document name obtained from it in the section
[settings]. However, if the mesh were going to be read from the input file, it would require to write the
sections [nodes], [elements] and [parts] instead.
[settings]
mesh_file_mode = 2 "t1.msh"
As the problem has just one material, the section [materials] will need two lines: a first line for the
number of materials in the model and a second line for the properties such as tag, type, E and ν.
[materials]
1
1 elastic_solid E 1. nu 0.25
3 See reference manual.
7
In the section [boundaries], it is necessary to specify the number of boundaries in the first line and
a line per boundary by indicating the boundary identifier, the identifier of the part that discretizes it,
and finally the boundary class. In this example there are 4 boundaries: boundary 1 is the part 1 of
the mesh, boundary 2 the part 2, boundary 3 the part 3 and boundary 4 the part 4 and all of them
are ordinary boundaries.
[boundaries]
4
1 1 ordinary
2 2 ordinary
3 3 ordinary
4 4 ordinary
The format of the section [regions] consists of a first line indicating the number of regions (1).
Furthermore, for each region there must be a block of data consisting of several lines of data. The
first one is the region identifier and the region class (discretization method) (1 be). As the region is
a BE region, then the second line indicates the number and list of boundaries (4 1 2 3 4). The third
line defines the material (material 1). Then, for a BE region, the fourth line defines the number and
list of BE body loads (0).
[regions]
1
1 be
4 1 2 3 4
material 1
0
In the section [conditions over be boundaries], all boundaries will be specify in global coordinates
because they are planar and their normal vectors are parallel to one of the global axes. As a 2D
problem, there are two lines for every boundary: a first line for the x direction and the second one
for the y direction, where the first number of every line indicates the type of condition (here 0 for
displacement and 1 for traction) and the second one its value.
boundary 2: 1 1.
1 0.
boundary 3: 1 0.
0 0.
boundary 4: 0 0.
1 0.
[problem]
n = 2D
type = mechanics
analysis = static
[settings]
mesh_file_mode = 2 "t1.msh"
8
[materials]
1
1 elastic_solid E 1. nu 0.25
[boundaries]
4
1 1 ordinary
2 2 ordinary
3 3 ordinary
4 4 ordinary
[regions]
1
1 be
4 1 2 3 4
material 1
0
boundary 2: 1 1.
1 0.
boundary 3: 1 0.
0 0.
boundary 4: 0 0.
1 0.
4 Post-processing
Post-processing in MultiFEBE consists of analysing the output files exported by the software. Output
files are written according to the type of analysis and model, as well as the input file export section. By
default the path and name of the output files is equal to the input file but with an additional extension.
The path and name can be changed when calling the solver from the terminal as explained in the
reference manual. There are three main native output files with the following additional extensions:
nodal solutions (*.nso), element solutions (*.eso) and stress resultant solutions (*.tot). There is also
one Gmsh output file (*.pos) which contains the case mesh and results (MSH file format version 2.2).
For the current example, only the nodal solutions and the Gmsh output file will be explained.
# Program : multifebe
# Version : 1.0
# File_format : nso
# Specification: 1
9
# Input_file : t1.dat
# Problem n : 2
# Description :
# Timestamp : 2022-01-16 23:38:58.324
# Columns Description
# 1-2 Step index and value.
# 3-5 Region id, class and type.
# 6-8 (if col 4 == 1) Boundary id, class and face.
# 6-8 (if col 4 == 2) Subregion id, number of DOF and 0.
# 9-11 Node id, x1 and x2.
# >=12 Node variables. Depend on the region class and type.
In this case, node variables are the last four numbers where the displacement in x and y direction
are the two first ones and the traction in x and y the remaining ones, respectively.
10
5 0.00000000E+00 0.33333369E+00 0.00000000E+00
6 0.00000000E+00 0.33333307E+00 0.00000000E+00
7 -0.10000000E+01 0.00000000E+00 0.00000000E+00
8 -0.10000000E+01 0.00000000E+00 0.00000000E+00
Figure 4: Nodal displacement results with a displacement factor of 0.5 from the *.pos file.
11
Figure 5: Traction results from the *.pos file.
12
6 Modifications
6.1 Higher number of elements
The process to obtain more elements for the mesh consists of specifying the element size in the *.geo
file. For example, to obtain two elements per boundary it is enough to set the element size as 0.5.
References
[1] C. Geuzaine and J.-F. Remacle, “Gmsh: a three-dimensional finite element mesh generator with
built-in pre- and post-processing facilities.” International Journal for Numerical Methods in En-
gineering, Volume 79, Issue 11, pages 1309–1331, (2009).
[2] C. Geuzaine and J.-F. Remacle, “Gmsh.” http://gmsh.info/
13