FAME manual
FAME version 0.1
Table of contents
Introduction
FAME is a program to analyze limit states with the kinematical method. The considered failure mechanism is a chain of rigid blocks (bodies) that slide relatively to each other. The blocks are separated with planar surfaces that correspond to shear bands in reality. The restriction to planar surfaces implies that the individual blocks undergo translations but not rotations. As a consequence, only force equilibrium but not moment equilibrium can be considered. The considered failure mechanisms have only one degree of freedom, i.e. the motion of one block determines the motion of all other blocks. The considered motions do not include formation of gaps or interpenetration of bodies. Note that edges are allowed to squeeze. The motion of the blocks relative to each other mobilizes shear resistances (due to friction and cohesion) at the interfaces. A limit state is obtained when the interface forces are equal (and opposite) to the fully mobilized shear resistances (i.e. shear strength). If a configuration is stable, then the shear resistances will not be fully mobilize. To achieve full mobilization of shear resistance we need to apply an additional force. This is the force which will cause collapse of the structure. The orientation of this force has to be determined by the user. FAME will then calculate the value of this force ("F_limit"). This value can be compared with the actual force ("F_actual") to give the factor of safety (FOS):
FOS = F_limit / F_actual
The user-defined failure mechanism (i.e. the geometry of the individual blocks) has to be varied to find that mechanics which gives the minimum limit load F_limit. Future version of program will contain an algorithm to search minimum of F_limit. The program is able to display the failure mechanism and the calculation results in 3D using OpenGL library.
Input file
Input file format
The input file is a plain text file. Each line beginning with ';', space or tab is taken as comment and ignored (with one exception for spaces or tabs, in the definition of interface properties, as described later). Float numbers should be written in [-]nnn[.nnn] format. 3D vectors (e.g. vertices) should be described by three float numbers on one line separated by spaces. Lists are sequences of numbers on one line separated also by spaces.
All input data must be in a defined sequence, you cannot change the order of them. Comments are only for your convenience, they are completely ignored by program. The program works also without comments, but you may have problems with possible later modifications.
Input file example
We will start with the simplest example: one tetrahedron.
It is good idea to put short description at the start of file. Later you can easily identify that the file is input for FAME program. This is not mandatory, the program will work without this comment. You should start lines with ';' character, FAME will ignore then.
; Input file for FAME program ; Example with one tetrahedron
Next, you should define the vertices of the individual blocks. In other works, you should specify the failure mechanism.
; Number of vertices of the mechanism 4 ; Vertices coordinates ; Vertices will be numbered starting from one 0 0 0 5 0 6 -5 0 6 0 7 6
We don't need variation and water level now, but we cannot omit this information.
Next, you should define the bodies (blocks) in our model (mechanism). Here we have only one body
; Number of movable bodies 1
FAME knows several types of predefined bodies (e.g. tetrahedron). First we should specify, which kind of body we want. Geometry of body follows:
; Type of body No. 1 tetrahedron ; List of vertices ; The sequence of the first three vertices should be counterclockwise 1 2 3 4
Properties conforming for all kinds of shapes follows
; Numbers of faces connected with ground (comma and space separated) ; Numbering starts from one 2 3
Faces with theese numbers will be taken as in contact with ground. Proper numbers of faces you will find in this table.
Physical properties of this body:
; Density of body 2.0
External forces affecting this body:
; Force vector acting upon body 0 0 0
And direction of collapse load which we are looking for. Only one body should have this vector non zero.
; Direction of collapse load 0 1 0
As the last part of input file, the interface properties follow. Each line contains the description of one interface. This is the only place in input file, where lines starting with space or tab are not ignored. Comments (lines starting with ';') are ignored as usual. The first number should be the number of the body (starting from one). The second one must the number of another body or zero, indicating interface with ground (we can think that the rigid ground has the number zero). For an interface with ground we must specify the number of face for which we are defining interface properties (it is the same number as in the body definition, taken from this table. For body-body interface this is not necessary, because only one face should be shared between two bodies and this one is automatically checked by the program. The last two numbers specify the interface properties: friction angle and cohesioon.
; Interface properties ; Body 1 Body 2 Optional face num Friction angle Cohesion ; (for interfaces ; with ground) 1 0 2 30 0 1 0 3 30 0
You can find the file here. How to use it with the program will be described later in this section.
More complicated example
Now we will try a mechanism with two bodies (blocks): two tetrahedrons. At the begining of file we should describe the vertices as before:
; Input file for FAME programs ; Example with two tetrahedrons ; Number of vertices in model 5 ; Vertices coordinates ; Vertices will be numbered from one 0 0 0 5 0 6 -5 0 6 0 7 6 0 -7 0
Next we simply define two boodies instead of one, the body definitions are in the same way as before. Remember that only one body should have non-zero vector of collapse load.
; Number of movable bodies 2 ; Type of body No. 1 (tetrahedron, pyramide, prism) tetrahedron ; List of vertices ; The sequence of the first three vertices should be counterclockwise 1 2 3 4 ; Numbers of faces connected with ground (comma and space separated) ; Numbering starts from one 2 3 ; Density of body 2.0 ; Force vector acting upon body 0 0 0 ; Direction of collapse load ; Only one body should have this defined, the others should have 0 0 0 0 0 0 ; Type of body No. 2 (tetrahedron pyramid prism) tetrahedron ; Coordinates of vertices ; The sequence of the first three vertices should be counterclockwise 1 3 2 5 ; Numbers of faces connected with ground (separated by colon or space) ; Numbering starts from one 2 3 ; Density of body 2.0 ; Force vector acting upon body 0 0 0 ; Direction of collapse load ; Only one body should have this defined, the others should have 0 0 0 0 1 0
And as the last part, the interface properties follow. As written before, interfaces with ground need face number specification, interfaces between two bodies don't, the shared faces are autodetected.
; Interface properties ; Body 1 Body 2 Optional face num Friction angle Cohesion ; (for interfaces ; with ground) 1 0 2 30 20 1 0 3 30 20 2 0 2 30 20 2 0 3 30 20 1 2 30 20
You can find the file here. How to use it with the program will be described later in this section.
Known shapes
FAME is currently able to work with the following types of blocks: tetrahedron, pyramide, prism and wedge.
Tetrahedron | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|
|
||||||||
Pyramid | ||||||||||
|
|
|
||||||||
Prism | ||||||||||
|
|
|
||||||||
Wedge | ||||||||||
|
|
|
||||||||
Program execution
FAME has currently two versions: commandline one and X/OpenGL one. Both sould be started from commandline and they read input data from stdin. Evaluated model info, progress of calculation and numerical results are written in stdout. You can specify the level of verbosity of output (see section about commandline params).
Commandline version
Commandline version is called failure. Assuming that FAME programs are installed somewhere in our PATH we can work with input file 'example1.fame' (our first example from section about input file format) by running command
failure < example1.fame
The program will read the input file redirected to its stdin, check model topology, calculate collapse load and print some model info and results.
Model info { Water level: 0 Model vertices { 1. <0, 0, 0> 2. <5, 0, 6> 3. <-5, 0, 6> 4. <0, 7, 6> } Body info { Face { <0, 0, 0> <5, 0, 6> <-5, 0, 6> Center: <0, 0, 4> Normal: <0, -1, -0> Area: 30 Percolated area: 0 Fixed: 0 Cohesion: 0 Friction angle: 0 } Face { <0, 0, 0> <0, 7, 6> <5, 0, 6> Center: <1.66667, 2.33333, 4> Normal: <0.673489, 0.481063, -0.561241> Area: 31.1809 Percolated area: 0 Fixed: 1 Cohesion: 0 Friction angle: 30 } Face { <0, 0, 0> <-5, 0, 6> <0, 7, 6> Center: <-1.66667, 2.33333, 4> Normal: <-0.673489, 0.481063, -0.561241> Area: 31.1809 Percolated area: 0 Fixed: 1 Cohesion: 0 Friction angle: 30 } Face { <5, 0, 6> <0, 7, 6> <-5, 0, 6> Center: <0, 2.33333, 6> Normal: <-0, -0, 1> Area: 35 Percolated area: 0 Fixed: 0 Cohesion: 0 Friction angle: 0 } Center: <0, 1.75, 4.5> Volume: 70 Percolated volume: 0 Density: 2 Weight: 1400 External forces on this body: <0, 0, 0> Equilibrium force direction: <0, 1, 0> } Varied vertices: } Body 1 velocity: <1.16713e-17, -1.16667, -1> Cohesion force on interface 1 <-> ground: <-0, 0, 0> Cohesion force on interface 1 <-> ground: <-0, 0, 0> Friction force on interface 1 <-> ground ... Value: 862.659 Direction: <-0.583258, -0.0369848, 0.811444> Friction force on interface 1 <-> ground ... Value: 862.659 Direction: <0.583258, -0.0369848, 0.811444> Equilibrium force value: 63.8106
X/Open GL version
X/OpenGL version is called xfailure. It will do the same job as commandline version and then display resultiong model in graphical window. Let work with our second example file example2.fame by running command
xfailure < example2.fame
Program will do the calculations and then opens the graphical window. We can translate the model by holding the middle mouse button and moving the mouse. Holding CTRL key with middle button will rotate the model and holding SHIFT key with it will scale the model. After some positioning we can get the window looking like this
By pressing 's' key we will get shaded display of model
Faces connected with ground are displayed red, faces shared between two boodies orange and free faces are white. All faces are partially transparent for better display of the model geometry
By pressing 'w' and then 'n' key we will get wireframe display with normals of all faces displayed.
Red normal with spheres on both ends means that the face is connected with ground, orange one is at faces shared between two bodies and yellow normal is on free faces. To default hidden line display we can return by pressing 'h' key.
Commandline parameters
- -v
- level of verbosity. The program will write information and results to stdout depending on the following table. You will probably not need levels higher than the default.
0 ... silent, nothing is written to stdout 1 ... resulting equlibrium force is printed 2 ... model geometry added 3 ... intermediate results added (this level is default) 6 ... evaluated sets of equations added 9 ... sequence of topological checks of model added 10 ... everything except parser 12 ... parser prints each line processed
Authors
- Vaclav Cermak
- e-mail: disnel@itam.cas.cz
- http: http://www.disnel.com
- Dimitrios Kolymbas
- e-mail: dimitrios.kolymbas@uibk.ac.at
Ing. arch. Vaclav Cermak
Last modified: Sun Jul 13 13:39:43 CEST 2003