Understanding Febio File Format
Understanding Febio File Format
BIOMECHANICS
Understanding
FEBio file
format
WHAT
IS
FEBIO?
An
open-source,
nonlinear
finite
element
solver
that
is
specifically
designed
for
biomechanical
applications.
Powerful
tool
for
solving
3D
problems
in
computational
biomechanics.
Resources
available
to
download
from
http://febio.org.
Reference
paper:
Maas
et
al.
(2012),
FEBio:
Finite
Elements
for
Biomechanics
Journal
of
Biomechanical
Engineering
Vol.
134
<Material>
...
</Material> Material
properties
</Material>
<Geometry>
Remark:
Geometry ...
Febio text
editing
can
be
performed
basically
in
A NY
text
</Geometry>
editing
software
(eg.
notepad,
etc).
However,
use
of
Sublime
Text
is
r ecommended
due
to
its
friendly
and
practical
user
experience.
File
should
be
saved
as
filename.feb
extension.
Now,
consider
a
very
simple
FE
model
Compression
100N
Hyperelastic
Bone Mooney-Rivlin
tissue
E=23.8MPa
C1=0.108MP
V
=
0.4
C2=0.027
Fixed
Cubic
block
consists
of
three
component
Component
1
( Tissue)
=
10
mm
x
10
mm
x
10
mm Meshed
with
Component
2
( Bone)
=
10
mm
x
10
mm
x
5
mm
hexahedral
element.
Defining
material
<Material>
<material
id=1
name=Tissue
type=Mooney-Rivlin>
<density>1</density>
<c1>0.108</c1> First
material
(tissue)
<c2>0.027</c2> assigned
to
ID
=
1
<k>0.37<k>
</material>
</Geometry
Defining
geometry
- nodes
(0,5,5) (5,5,5)
<Nodes> 8 7
<node
id="1">0,
0,
0</node> 10mm (0,5,0)
<node
id="2">5,
0,
0</node> 4 3
<node
id="3">5,
0,
5</node> 6
1 2 (5,5,0)
<node
id="4">0,
5,
0</node> (5,0,0)
(0,0,0)
<node
id="5">0,
0,
5</node>
<node
id="6">5,
5,
0</node>
<node
id="7">5,
5,
5</node> 20mm
(0,0,0)
<node
id="8">0,
5,
5</node>
<node
id=9>.
10mm
... Recall:
... Component
1
(Tissue)
=
10
mm
x
10
mm
x
10
mm
</Nodes> Component
2
(Bone)
=
10
mm
x
10
mm
x
5
mm
Defining
geometry
- elements
Material
assignment
for
respective
element
(based
on
<Elements
type="hex8"
mat=1"
elset=Element_tissue"> material
block)
<elem
id="1">
1,
2,
4,
3,
5,
6,
7,
8</elem>
<elem
id=2">
...
</elem>
<elem
id=3>
13,
14,
2,
1,
15,
16,
6,
5
</elem>
9
<elem
id=4">
...
</elem> 7 5
<elem
id=5">
...
</elem> 10 4 3 6
<elem
id=6">
...
</elem> 2 1 6 1 2
9
<elem
id=7">
...
</elem> 1 2
3
16
<elem
id=8">
...
</elem> 4 3 16 13 14
</Elements> 17 13 14
<body_load type=constant>
<x
lc=1>0.00</x> Compression
<y
lc=2>100</y> 100N
<z
lc=3>0.00</z>
</body_load>
</Loads>
lc
:
Indicate
load
curve
<Boundary>
incremental
strategy
for
<fix
bc=xyz> convergence.
<node
id=26/> By
default,
its
a
straight
33 32
<node
id=27/> line
curve
passing
two
29 28
points
( 0,0)
and
( 1,1)
31
with
x-axis
represent
26 27
time
unit,
and
y-axis
</fix> represent
loading
ratio. Fixed
</Boundary>
Defining
contact
condition
<Contact>
<contact
type="sticky"
name="Sticky01">
<laugon>0</laugon>
<tolerance>0.2</tolerance>
<penalty>1</penalty>
<minaug>0</minaug>
<maxaug>10</maxaug>
<surface
type="master">
<quad4
id="1">
29,
28,
32,
33</quad4>
<quad4
id="2">
</quad4> 15 16
14
13
</surface>
<surface
type=slave> 33 32
<quad4
id="1">
13,
14,
16,
15</quad4> 29 28
<quad4
id="2">
</quad4>
</surface>
<contact>
<Contact>
Defining
load
data
<LoadData>
<LoadData 1
Time
unit
0 1
Defining
step
<Step> Simulation
that
requires
multiple
<Control> step
shall
be
defined
here.
Any
<time_steps>200</time_steps> condition
(eg.
loading,
boundary,
<step_size>0.005</step_size> etc)
can
be
inserted
in
the
step
<analysis
type="static"></analysis>
block.
</Control>
</Step>
Defining
output
<Output> Output
to
be
displayed
are:
<plotfile type="febio"> 1) Displacement
<var type="displacement"/> 2) Stress
<var type="stress"/>
</plotfile>
Refer
to
FEBio manual
for
</Output>
different
kind
of
output
available.