Download the .txt file here: Release Notes.




This document describes the features that have been added to the latest
FEBio release as well as the more important bug fixes. Please consult
the FEBio User’s Manual for a more detailed description of the new features.
To report any bugs or request new features, please visit the FEBio forum


R E L E A S E 2.9.0 4/25/2019


* This is the first version of FEBio that is released under the MIT open source license. This license allows users, including commercial entities, to copy, modify, and redistribute the source code of FEBio, under the conditions set forth by this license. See Copyright-FEBio.txt for more details and contact the developers for any questions.

* Several options were added to the FEBio prompt: “config” for (re-)loading config file, “load” to load a plugin, “unload” to unload a plugin.

* The “material axes” plot variable was added that allows users to store the material axes (as a 3×3 matrix) to the plot file.

* The “SPR Lagrange strain” plot variable was added that uses the SPR method for evaluating Lagrange strain at the nodes.

* Support for “mat3d” material parameters was added to the MeshData section.

* The quad4 shells now use the 3-field formulation by default.

* The “porous neo-Hookean” material was added to model a porous solid whose stiffness becomes infinite as the pores collapse to zero volume. Porosity can be defined in the material or will be extracted from parent material if it is biphasic/multiphasic.

* Several issue with the restart feature were fixed, including some issues with adding steps or modifying load curves via a restart input file.

* Bug was fixed in using FESlidingInterfaceBW with optimization.

* A new optimization feature was implemented that allows you to define a list of element values that can be used in the objective function of the optimizatsion.

* Users can now also optimize the material axes parameters of a material.

* A bug was fixed in evaluation of the stiffness of several rigid connectors, which may improve convergence of models that use rigid connectors.

* A bug was fixed in the evaluation of stresses in continuous fiber distribution uncoupled materials.



R E L E A S E 2.8.5 11/4/2018


* Several issues were fixed with rigid connectors. This affected problems that prescribed a rigid body displacement or a “ramped” rigid force when the rigid body was attached to a rigid connector.

* A bug was fixed that was preventing the mass and moment of inertia to be calculated correctly in dynamics analyses when users specified the center of mass in the FEBio input file (as opposed to letting FEBio calculate it).



R E L E A S E 2.8.4 11/1/2018


* Solution variables can now be used in the optimization module as a function parameter.

* All materials are now checked for missing required properties, instead of just top-level ones.



R E L E A S E 2.8.3 9/26/2018


* A bug was fixed in FEBio’s tensor library that affected the convergence and possibly the accuracy of the PRLig, muscle, and tendon materials.

* A bug was fixed in the algorithm that inverts surface elements for higher order elements. This affects the DataMap plugin.


R E L E A S E 2.8.2 8/17/2018


* A bug was fixed in the parsing of the ElementData section, which was causing problems with reading heterogeneous parameters.

* A bug was fixed in reading fiber data from the MeshData section for the 2.5 spec.


R E L E A S E 2.8.1 7/25/2018


* A bug was fixed related to reading the fiber values from the ElementData section for FEBio spec 2.0.


R E L E A S E 2.8.0 7/2/2018


* A fluid-structure interaction (FSI) solver has been implemented, which allows deformation of the fluid mesh in computational fluid dynamics analyses, as well as interactions with surrounding solid domains. The module for FSI analyses is “fluid-FSI” and the material type for fluid domains that deform is “fluid-FSI”. Boundary conditinos and surface loads applicable to fluid analyses have been updated to account for deforming boundary surfaces.

* Domains can now be assigned to body loads. In order to do this, add the “elem_set” attribute to the body load definition.
<body_load type=”const” elem_set=”set01″/>
Here, set01 is an element set defined in the Geometry section of the input file.

* Two flags were added to the sliding-elastic contact interface that allow users to flip the normals of the master and slave surfaces. In the contact definition, set flip_master to 1 to invert the normals on the master surface. Similarly, set flip_slave to 1 to invert the normals on the slave side.

* A new time control parameter was added, named “dtforce”, which forces the time stepper to take the maximum time step. The max time step size is given either by the dtmax variable, or the must-point curve, if defined.

* The Biphasic solver now uses non-symmetric stiffness matrices by default.

* Fixed bug in the evaluation of math expressions for the non-const body force load.

* The FEBioHeat module has been removed from FEBio, but is still available as a plugin. Please see the plugin download page.

* performance improvements: omp support was added to “sliding facet-on-facet” and the algorithm for allocating the global stiffness matrix was significantly improved.

* Fixed bug in timer management that was causing inaccurate timings for solvers implemented as plugins.

* Penta15 elements which are assigned a nearly-incompressible (uncoupled strain energy density) material no longer use the three-field formulation, for consistency with other quadratic elements.


R E L E A S E 2.7.1 6/4/2018


* This minor update fixes an important bug, related to specifying material axes in the ElementData section (for 2.0 format) or MeshData section (2.5 format) for solid mixtures.


R E L E A S E 2.7.0 4/2/2018


* A new computational fluid dynamics solver has been implemented, based on the formulation reported in Ateshian GA, Shim JJ, Maas SA, Weiss JA. “Finite Element Framework for Computational Fluid Dynamics in FEBio.”, J Biomech Eng. 2018 Feb 1;140(2).

* The optimization module has been completely revised in order to support more powerful features. The improved “data-fit” model allows users to optimize almost all model input parameters (not just material parameters) against almost all model output parameters by curve fitting the output parameter to a user-defined data curve. The new “target” data model allows users to optimize input parameters in order to reach user-defined values for one or more output parameters.

* Several new elements were added: A new penta15 element was added, which represents a pentahedral element with quadratic shape functions. A 5-node pyramid element with linear shape functions was added as well.

* FEBio’s plugin framework now also supports “solver” plugins, which allow users to create entire new physics modules via the plugin framework. To illustrate this powerful new mechanism, a plugin called FEBioChem was developed that solves the nonlinear reaction-diffusion equations and can be used to model chemical reactions in a non-deforming mixture. This plugin can be downloaded from FEBio’s plugin website.

* A plugin can now also be loaded from the command line using the -import command line option. This feature is useful for loading a plugin from within the IDE (e.g. Visual Studio) without the need for modifying the configuration file. Currently, only one plugin can be loaded this way. (Loading multiple plugins must still be done via the configuration file.)

* Several contact algorithms have been renamed in order to obtain a more consistent naming convention for the various contact algorithms.
— sliding_with_gaps –> sliding-node-on-facet
— facet-to-facet sliding –> sliding-facet-on-facet
— sliding-tension-compression –> sliding-elastic
— tied –> tied-node-on-facet
— facet-to-facet tied –> tied-facet-on-facet
— sliding2 –> sliding-biphasic
— sliding3 –> sliding-biphasic-solute/sliding-multiphasic

The old names are considered obsolete but will continue to be supported for the time being.

* The sliding-elastic contact formulation now also supports frictional contact.

* Improvement to update of solid bound molecules in multiphasic analyses.

* A new symmetry plane feature was implemented that allows user to model axisymmetric problem in a more straightforward manner (without the need to create the actual geometry of the symmetry plane.)

* This version introduces new array plot variables, which are convenient for storing arrays of data to the plot file especially when the size of the array is not known in advance but depends on the model input. These new plot variables are now used by many of the solute and solid-bound molecule plot variables (e.g. effective solute concentration). As a result, the plot file that is written by this version of FEBio must be read with the newest version of PostView (version 2.2).

* A new and more accurate algorithm for calculating the total contact force of the sliding-facet-on-facet contact formulation was implemented.

* The mat_axis parameter is now supported in the MeshData section. It can be defined as a ElementData with the var parameter set to “mat_axis”. Then, for each element of a part the “a” and “d” parameters must be defined.

* Support was added for initial rigid body velocities in the 2.5 format. It is defined in the rigid_body subsection of the Boundary section. Use the tag “initial_velocity” for defining the rigid body’s initial velocity and “initial_angular_velocity” for defining its initial angular velocity.

* Support was added for reading 16-bit (unsigned) RAW images. This is, for instance, used by the FEWarp plugin, which implements an FE based image-registration method.

* Mathematical expressions can now be used to define surface data in the MeshData section. This data can then be used by most surface loads. This makes it essentially possible to prescribe surface loads via a mathematical expression.

* A rigid cable feature was introduced that allows users to connect several rigid bodies via a cable. The cable can then be placed under tension by prescribing the cable force.

* A new shell formulation has been introduced in FEBio, which accommodates elastic, biphasic and multiphasic materials. These shells (tri3, tri6, quad4, quad8) now represent the default formulation; they supersede the formulation used in FEBio 2.6.2. Boundary conditions for these shells include (x,y,z) displacements of nodes on the front face, and (sx,sy,sz) displacements of nodes on the back face of the shell. For biphasic shells, front and back face effective fluid pressure (p, q) may be prescribed. For multiphasic shells, front and back face effective solute concentrations (c, d) may be prescribed. These shells can be attached to solid elements or sandwiched between solid elements. The old shell formulation may still be used, by specifying <shell_formulation>0</shell_formulation> in the <Control> section. The old shell formulation uses boundary conditions (x,y,z) for the displacements of nodes on the shell mid-surface, and (u,v,w) as components of directors (rotations) at those nodes.


R E L E A S E 2.6.2 3/28/2017



1. A performance issue was fixed in the assembly of unsymmetric matrices. This fix may result in a signficant reduction of runtime for problems requiring a nonsymmetric stiffness matrix. Speedups of a factor 5x to 10x have been observed for these types of problems.

2. A bug was fixed in the second derivatives of shape functions for tet10.

3. The EFD material was modified to evaluate stresses and tangent more efficiently.

4. A bug was fixed in the tangent of the Ogden material.

5. A more efficient method was implemented for calculating the total contact force for the sliding2 contact interface.

6. A more efficient method was implemented for evaluating the contact area for sliding2 and sliding-biphasic.

7. Several issues were addressed with the restart feature.

8. when max_retries is set to zero, serialization is not done.

9. A bug was fixed in solvent supply “Starling” to properly read the parameters qc and qv.

10. More efficient implementation for rigid body forces.


1. A new shell formulation was implemented that adds several new capabilities to shells, namely compressive loading of shells, attaching shells to solid elements, and placing shells between solid elements. In this formulation, “rotation” degrees of freedom represent nodal displacements on the shell bottom surface. Since this formulation defines the top surface as the reference surface, slight difference can be noticed in convergence and results. The old formulation is still available, but now requires a special control flag. Set <shell_formulation> to 0 in the <Control> section to recover the old formulation.

2. Quadratic shell elements have been implemented: quad8, quad9, tri6

3. A tied multiphasic contact interface has been added to enforce continuity of solid displacements, effective fluid pressure, and effective solute concentrations at a tied interface between multiphasic materials.

4. A 20-node cubic tetrahedral element was implemented (tet20). This element has 4 corner nodes, 2 nodes on each edge, and one node at the center of each face.

5. The parameter update_penalty was added to the sliding-multiphasic interface to recalculate auto-penalty at the start of each time step.

6. Two new chemical reactions were added: “mass-action-forward-effective”, and “mass-action-reversible-effective”. These reactions employ the effective solute concentrations instead of actual solute concentrations, which will make a difference when the multiphasic mixture has non-zero fixed-charge density and charged solutes.

7. The 2.5 file format now supports Part and Instance keywords for defining multiple-parts model. The Part keyword defines a part, including nodes, elements, nodesets, surfaces, etc. Then, the Instance keyword can be used to instantiate a particular part. The same part can be instantiated multiple times.

8. Added plot_range, and plot_zero_state control parameters. The plot_range parameter specifies a range and only time steps that fall within this range will be stored to the plot file. The plot_zero_state flag is used to indicate whether to store the “zero” (i.e. reference) state even when it doesn’t fall inside the plot range.

9. Added reform_each_time_step control parameter. Setting this to 0 will prevent the quasi-Newton solver from reforming the stiffness matrix at the start of each time step. This may result in a significant reduction of runtime for quasi-linear problems that have many time steps, such as transient or dynamic analyses with small strains.

10. Added “rigid sliding” contact interface, which generalizes the rigid wall feature. Now, any rigid surface can be used as part of the rigid sliding contact interface. Rigid surfaces have to be defined in the new “Rigid” section in the input file.

11. Inhomogeneous linear constraints are now supported.

12. Added “rigid lock” constraint to constrain two rigid bodies to move together.

13. Added optional force and moment damping for revolute and prismatic joints to minimize oscillations during dynamic analyses.


R E L E A S E 2.5.2 11/17/2016


1. A bug was fixed in exporting element data to the log file.

2. An issue was fixed with the definition of fixed bcs in the 2.0 format.


R E L E A S E 2.5.0


A. Features and Bug Fixes

1. FEBio 2.5 defines a new format specification (FEBio format specification version 2.5) which improves support for using set definitions. It also replaces the ElementData section, which used to be defined in the Geometry section, with the more versatile MeshData section. This new section not only allows users to define element data, but also surface data and nodal data. This data can then be mapped to boundary conditions and loads to create spatically varying data fields. The Discrete section is also reformatted so that large discrete element sets can be defined more concisely.

2. SPR stresses now support HEX20 and HEX27 elements. The SPR stresses are more accurately recovered stressed and should be the preferred stress measures for higher order elements.

3. Several improvements and bug fixes have been made for first order computational homogenization problems. Users can now also define “probes” which allow the deformation of the RVE models to be tracked.

4. Higher order shell elements can now be defined. A quad8 shell defines an eight node quadratic quadrilateral shell. A tri6 shell defines a six node quadratic triangular shell element. These shell elements overcome the locking behavior characteristic of quad4 and tri3 shells. They should be used as the preferred choice. Shell “rotation” degrees of freedom refer to the “director” degrees of freedom, which is a vector whose length is the shell thickness in the current configuration, and whose direction represents the rotation degrees of freedom.

5. A coupled and uncoupled formulation of the Gent hyperelastic material have been implemented.

6. The reported timings at the end of the log file are broken down by the different solution steps. The reported timings are now more accurate (Windows only).

7. The Broyden solution strategy was implemented and can be used as an alternative quasi-newton solver to the standard BFGS method. The Brodyden method performs much better than BFGS for non-symmetric problems (e.g. biphasic, multiphasic).

8. Several preconditioners for the FGMRES iterative solver have been implemented.

B. Changes to the plugin framework

1. The FE_SDK_VERSION was increased to 2.5.0. This implies that plugins need to be rebuild before they can be used with the 2.5 version of FEBio. Some minor changes to the plugin may also be necessary.

2. Material plugins that implement the Init function must now return a bool:

bool MyMaterial::Init()
if (something is wrong) return false;
else return true;

3. Plot variables now use the general FEDataStream class for storing data.

bool MyPlotVariable::Save(FEDomain& dom, FEDataStream& a)
for (int i=0; i<dom.Elements(); ++i)
mat3ds s = dom.TaxReturnValue(2016);
a << s;
return true;

4. The PluginNumClasses funcion is no longer required. If it is not defined, FEBio will keep calling the PluginGetFactory until it returns null.


R E L E A S E 2.4.1 12/11/2015


1. BUG FIX: Optimization
Fixed bug in FEMaterial::GetParameter for optimization problems.


R E L E A S E 2.4 9/25/2015


1. FEATURE: new rigid body solver
A new rigid body update algorithm was implemented that fixes some issues with the
previous implementation. The new solver is now used automatically so users don’t need
to do anything special. If for some reason the old solver is still needed, it is
still available by setting the Module tag to solid_old in the FEBio input file.

<Module type=”solid_old”/>

2. FEATURE: rigid connectors
Nonlinear constraints have been implemented to connect rigid bodies
with joints (rigid joints) or springs and dampers (rigid connectors).
Rigid joints include revolute (hinge), prismatic (slider),
cylindrical, planar and spherical joints. The degrees of freedom of
rigid joints may be optionally prescribed using load curves. Reaction forces and moments
at these rigid connectors may be saved to the logfile using a new
rigid_connector_data class.

3. FEATURE: Damage materials and damage criteria
A new elastic damage model has been implemented to describe damage in
any of the elastic materials defined in FEBio, using a reactive
framework where the damage variable D represents the fraction of bonds
in that material that have broken. This damage material requires the specification of
an elastic material, a damage criterion (a function of state) that governs damage
initiation and progression, and a cumulative density function that describes the
probability of damage at a particular value of the damage criterion.
This damage model may be used within a solid mixture to describe heterogeneous and
anisotropic damage responses.

4. FEATURE: Biphasic and multiphasic tangents diagnostics
Tangent diagnostics have been introduced for the biphasic and
multiphasic solvers. These can be used to validate the analytical
expressions for the tangents against numerical approximations.

5. FEATURE: Plot field filters and alias
Some plot fields support filters that can be used for disambiguation. For example,
the solute concentration can now be stored using the following tag.

<var type=”solute concentration[‘sol1’]”/>

The filter is entered between square brackets. For this plot variable, the
filter denotes the name of the solute (defined in the Globals section). If the
filter is a string (like in this example), it is entered between quote marks.

An alias can be defined for a plot file variable by appending the type definition
with an equal sign an the alias name. For instance,

<var type=”solute concentration[‘sol1’]=sol1 concentration”/>

Post processors (such as PostView) can use the alias as an alternative for
displaying the field variable name.

6. FEATURE: Callback plugins
A new plugin type is supported termed callback plugins. Callbacks are special
functions that are called by FEBio at specific points during the initialzation
and solution phase and are a convenient mechanism for interacting with FEBio.
FEBio uses callbacks for updating the window title and to show progress. Other
applications of callbacks can be the extraction of information during the
nonlinear solution iterations. Via callback plugins, a plugin can now also define
callback functions.

7. FEATURE: Initial condition plugins
New initial conditions can now also be defined in plugins. These initial conditions
can be used inside multi-step analysis. Special initial conditions can be defined
to transfer data between steps in a multi-step analysis or initialize variables that
are not used in previous analysis steps (e.g. when combining static and dynamic
analyses in a multi-step analysis).

8. FEATURE: Fixed BC’s in multi-step analyses
Previously, fixed boundary conditions can only be defined at the model level and thus
persisted throughout the entire simulation. Now, they can be defined inside the Boundary
sections of Steps in a multi-step analysis (as prescribed boundary conditions).

9. FEATURE: Simplifications for material plugins
There are two new constructions supported for material plugins that can make creating
material plugins easier. First, there is automatic parameter checking which may eliminate
the need for defining the FEMaterial::Init() function. This solves the problem that
errors can only be reported from the Init() function by throwing exceptions. However, it is not
always safe to throw exceptions from within a plugin so automatic parameter checking
is the preferred way for validating the value range. Second, material classes that define
properties no longer need to define the special functions for defining the material properties.
Instead a template class FEPropertyT can now be used to define material properties.

10. FEATURE: Fiber with toe-linear response
A new fiber constitutive model has been introduced to describe a toe
region with a power law, followed by a linear region. This model is
available as a stand-alone fiber model, or as part of a continuous
fiber distribution.

11. BUG FIX: stiffness matrix for (bi/tri/multi)-phasic problems
The linearization of the solid matrix velocity in biphasic,
biphasic-solute, triphasic and multiphasic domains has been modified
to correctly reflect the time-discretization used for evaluating the
solid velocity from the solid displacement. These changes should
slightly improve the convergence characteristics of the corresponding solvers.


R E L E A S E 2.3 5/28/2015


1. FEATURE: Pressure Boundary Load
The pressure boundary load now implements a non-symmetric stiffness matrix in addition to the symmetric
formulation. Although the symmetric formulation often results in good convergence behavior, it is not
consistent with the pressure residual unless the boundary of the pressure load surface is constrained.
It this latter condition is not satisfied, the consistent non-symmetric formulation can result in better
convergence behavior. To use the non-symmetric formulation, add the following to the pressure load definition.


2. FEATURE: Element, Surface and Node Sets
Elements sets, surface, and node sets can now be defined in the input file. These can be used to define
boundary conditions, loads, and contact definitions more concisely. See sections 3.8.4 of the FEBio user’s
manual and following for an in-depth discussion.

3. FEATURE: Parameters Section
A new Parameters section was added to FEBio file format, where users can define parameters that can be used
in most variable definitions. Parameters are defined by name/value pairs in the Parameters section.

<param name=”var1″>1.0</param>

Then, parameters can be used as the values of most xml tags by preceding the parameter name with the ‘@’ symbol.

<material id=”1″ type=”neo-Hookean”>

4. FEATURE: Include Section
Added new Include section to the FEBio file format, which will include another .feb file verbatim. This can
be used (in addition to the “from” attribute) to split the model definition across multiple files.

5. FEATURE: New Reaction Rate
A new reaction rate was implemented where the reaction rate is proportional to exponential of strain energy density.

6. FEATURE: Vector Load Curve
A loadcurve can now be defined for vector parameters. The loadcurve will scale the vector.

7. FEATURE: Improved Contact Detection
Improved contact detection for several contact implementations (sliding_with_gaps, facet-to-facet sliding, tied,
facet-to-facet tied, sticky). Certain special cases in the contact projection are now handled correctly. This
results in fewer contact detection failures which could cause stability issues in some contact problems.

8. FEATURE: Volume Constraint
A volume constraint is added that can be used to preserve the volume of an enclosed space. This could be used to
model the containment of an incompressible fluid inside a solid.

9. FEATURE: Point-to-Point Constraint
A point-to-point distance constraint was implemented which enforces a constant distance between two points.

10. FEATURE: Conewise Materials
Two new materials have been introduced to model Conewise Linear Elastic solids (cubic and orthotropic symmetry):
“cubic CLE” and “orthotropic CLE”.

11. FEATURE: Contact Node Relocation
Support was added for node relocation on initial contact for all contact interfaces. This feature forces nodes
that have an initial penetration to lie on the contact surface. To use this feature add <node_reloc>1</node_reloc>
to the contact definition.

12. FEATURE: Augmentation Load Curve
The augmentation flag of most contact interfaces now accepts a loadcurve attribute which can be used to control
when augmentations are performed. This can be used for instance to enforce augmentation only on the last time step.

13. FEATURE: Negative Jacobian Output
Output of negative Jacobians can now be controlled via a flag in the configuration file. Set the
<output_negative_jacobians> flag to 0 to turn off printing of all the negative jacobians. (By default, FEBio
prints all the negative Jacobians). When set to 0 FEBio will only print a single warning when the time step
has to restart due to negative Jacobians.

14. FEATURE: Retry after NANs
FEBio will now retry the time step when NANs are encountered. (Previously, FEBio simply terminated.)

15. FEATURE: Updated Sticky Interface
The sticky interface (a variation of tied which allows for initial separation) now has two new parameters:
the <max_traction> parameter can be used to release the tie when the normal traction exceeds this value.
The <snap> parameter sets an initial distance of penetration before the slave node is tied to the master surface.

16. FEATURE: Euler-Lagrange Strain Output
A new output variable was added to output the Euler-Lagrange strain. Add <var type=”Lagrange strain”/> to the
plotfile section to output the Lagrange strain directly to the plotfile.

17. FEATURE: Constraints Repeated in Multiple Steps
Constraints can now be repeated in multiple steps. This can be useful when a constraint has to persist across
multiple steps. Assuming a constraint was defined in some step,

<constraint name=”my_constraint” type=”volume”>


to repeat the constraint in a subsequent step, simply reference it by name:
<constraint name=”my_constraint”/>

18. FEATURE: Break Points
Break-points can be defined which will pause the run at the specified time and show the FEBio prompt. This can
be used for debugging application after a certain time has reached. To define a break-point, add the –break
command line option followed by the time value after which FEBio will pause. E.g.

febio2 –i input.feb –break 0.5

This will pause FEBio after time 0.5 has been reached.

19. FEATURE: New Output Level
– A new output_level flag is implemented that controls the frequency of writing log data to file. Add it to
the Control section of the input file.


The possible values are:
– OUTPUT_NEVER: Don’t output anything
– OUTPUT_MAJOR_ITRS: Output at the converged time step solutions (default)
– OUTPUT_MUST_POINTS: Only output at must points
– OUTPUT_FINAL: Only output final converged solution.

20. FEATURE: Prescribed Active Contraction Materials
Six new materials have been introduced to model prescribed active contraction: “prescribed uniaxial active
contraction”, “uncoupled prescribed uniaxial active contraction”, “prescribed trans iso active contraction”,
“uncoupled prescribed trans iso active contraction”, “prescribed isotropic active contraction”, and
“uncoupled prescribed isotropic active contraction”.

21. FEATURE: New Viscoelastic Material Classes
Two new classes of viscoelastic materials have been introduced: “reactive viscoelastic” and “uncoupled
reactive viscoelastic” which may be used to model quasi-linear and nonlinear viscoelasticity.

22. FEATURE: Local Coordinate Systems in Multigeneration Materials
– The “multigeneration” material has been updated to pass local coordinate systems down from parent to
children materials.

23. FEATURE: New Continuous Fiber Distribution Classes
Introduced two new classes of continuous fiber distributions: “continuous fiber distribution” and
“continuous fiber distribution uncoupled”. These materials provide a variety of fiber constitutive models,
fiber distribution densities (2D and 3D), and integration schemes.

24. FEATURE: Contact Gap and Traction Output for Periodic Boundary Conditions
Periodic boundary conditions now also output the contact gap and contact traction. (The contact gap is the
deviation from periodicity).

1. BUG FIX: Restart Feature
Several issues with the restart feature were fixed.

2. BUG FIX: Augmented Lagrangian for Incompressibility
Augmented Lagrangian formulation for incompressibility is fixed.

3. BUG FIX: Contact Traction Export
A bug was fixed in the export of contact tractions of tied interface.

4. BUG FIX: Multi-Step Constraints
Several issues were fixed with using constraints in multi-step analyses.


R E L E A S E 2.2 12/23/2014


1. FEATURE: Tri6 Element Shape Functions
Implemented modified shape functions for tri6 elements.

2. FEATURE: Gasser, Ogden, Holzapfel material
Added a compressible version of FEGasserOgdenHolzapfel material.

3. FEATURE: Damage Plotting for Multigeneration Materials
Added plotting of damage for multigeneration materials.

4. FEATURE: Fiber Exp Linear Material
Added coupled and uncoupled fiber-exp-linear material.

5. FEATURE: Reactive Viscoelasticity Material
Added coupled and uncoupled reactive viscoelasticity materials.

6. FEATURE: Ramp Rigid Body Force
Implemented the “ramp” rigid body force which ramps the force from its current
value to the desired value. This can be used to switch between displacement and
load control in a multi-step analysis.

7. FEATURE: Must-point Repeat Extend
Must-point loadcurves now work with repeat extend type.

8. FEATURE: Tied Interface Gap for Shells
Tied interface now takes initial gap into account for shells (only on slave side).

9. FEATURE: Quad9 Surfaces
Implemented FE_QUAD9 surface element.

10. FEATURE: Hex27 Element
Implemented hex27 element.

11. FEATURE: NANS in Convergence Norms
Checks for NANS in the convergence norms is now always done. When a NAN is detected, the time step is retried.

12. FEATURE: Self-Contact
Added support for self-contact in FESlidingInterface.

13. FEATURE: Osmotic Virial Expansion Material
Added new FEOsmoticVirialExpansion material. Added bond relaxation functions for reactive viscoelastic
materials. Updated FEElasticMultigeneration to improve nesting of nested materials. Updated
FEFiberIntegrationGaussKronrod. Updated FEReactiveViscoelastic material.

14. FEATURE: Damage Materials
Implemented FEDamageMaterial and FEDamageMaterialUC to model damage in any FEElasticMaterial and
FEUncoupledMaterial. FEDamageCriterion and FEDamageCriterionUC are parent classes to a variety of
damage criteria. FEDamageCDF is a parent material to a variety of cumulative distribution functions
that relate the damage to the damage criterion.
The existing FEDamageMaterialPoint class was moved to its own file.

15. FEATURE: Strain Energy Density
Introduced FEStrainEnergyDensity function in FEElasticMaterial and FEDevStrainEnergyDensity in
FEUncoupledMaterial classes. Implemented analytical expression for the calculation of the strain energy
density in almost all the materials, except a few for which documentation is not available.
Fixed bug in the calculation of the Tangent and Stress in FELinearOrthtropic and FELinearTransIso.
Added link to GNU Scientific Library ( for the evaluation of special functions
(namely, the exponential integral, for calculating strain energy density of fibers in FETransIsoMooneyRivlin
and related materials). Use -DHAVE_GSL to compile and link with this library.

16. FEATURE: Initial Temperature
Added support for initial temperatures.

17. FEATURE: Reaction Rate Nims
Added FEReactionRateNims class for reaction rates.

18. FEATURE: Continuous Fiber Distribution Material
Added uncoupled continuous fiber distribution material with all contingent material functions.
Updated continuous fiber distribution models by adding two additional fiber integration schemes
(Gauss-Kronrod and Triangular). Fixed bug in the general scheme for continuous fiber distributions
which prevented proper running on multiple threads. Removed obsolete FEEFD model (which had never been
documented). Added the ability to define a local orientation for each continuous fiber distribution.

1. BUG FIX: Tri6 and Tri7 Projection Algortithms
Fixed bug in projection algorithms for tri6 and tri7.

2. BUG FIX: Hex27 Contact
Fixed problems with hex27 contact.

3. BUG FIX: Serialization
Fixed serialization in several materials.

4. BUG FIX: Multistep Pressure Stiffness
Fixed bug in pressure stiffness evaluation for multistep problems.

5. BUG FIX: Invalid Rigid Body
Added check for invalid rigid body reference in rigid contact section. Made sure that a model with zero
equations doesn’t crash FEBio.

6. BUG FIX: Quadratic Quads
Fixed bug in xplt format related to storage of quadratic quads (now version 0.4). Added support for projection
on quad8 facets and implemented project_to_nodes for this element.

7. BUG FIX: Concentration DOFs
Fixed bug in parsing fixed concentration dofs.


R E L E A S E 2.1 7/30/2014


1. FEATURE: Rotation Matrix
Added method for calculating rotation matrix from quaternion. Added support for exporting rigid body rotation matrix to log file.

2. FEATURE: Coupled Materials
Added coupled Mooney-Rivlin and coupled Veronda-Westmann materials. Fixed problem with coupled trans-iso material.

3. FEATURE: Newmark Integration
Implemented general Newmark integration for dynamic analyses.

4. FEATURE: Plugin Error Code
FEBioPlugin::Load now returns an error code that can be used to identify if and why the plugin failed to load.

5. FEATURE: Plotfile Compression
Implemented compression for plot files.

6. FEATURE: New Prompt Paradigm
Given no command line arguments, return to prompt after run/error.

7. FEATURE: Rigid Body Dynamics
Implemented rigid body dynamics, using Puso 2002 and Simo and Wong 1991 algorithms. Modified update of rotation degrees of freedom to use Cayley transform.

8. FEATURE: Euler Angles
Added function to calculate Euler angles from quaternion. Added Euler angle plot variable which plots Euler angles for rigid bodies.

9. BUG FIX: Rigid Joint
Fixed bug in rigid joint force and stiffness.

10. BUG FIX: OpenMP
Fixed several openmp directives.

11. BUG FIX: Serialization
Fixed serialization in viscoelastic material and FEElasticMixture.


R E L E A S E 2.0 5/2/2014


1. FEATURE: Plugins
A plugin mechanism has been added for FEBio. Plugins are dynamic libraries which extend the capabilities of FEBio at runtime without the need to recompile the entire source code. This offers the user a powerful mechanism for extending the default feature set of FEBio with little effort. This has involved a major restructuring of the code.

OpenMP directives have been added to speed up several sections of the code. Users can expect improved performance and reduced runtimes for many areas of applications. Problem areas that rely on complex material formulations seem to benefit greatly from this new capability (e.g. bi- and multiphasic, EFD type materials, homogenization, etc.).

3. FEATURE: New File format specitication
FEBio 2.0 supports the new FEBio file format specification 2.0. This new format adds several new features including the ability to add surfaces and nodesets which can be referenced in the boundary conditions that use them. See the FEBio User’s Manual for details regarding this format. The older format (version 1.2) is still supported but considered deprecated.

4. BUG FIX: Restart
Fixed several bugs in the (cold) restart feature. This feature allows users to restart the code from a dump file, which is a file generated at the last converged state of a previous run.


R E L E A S E 1.8.0 10/25/2013


1. FEATURE: Chemical Reactions
Chemical reactions may be modeled within a multiphasic mixture.

2. FEATURE: Huiskes and Carter-Hayes Materials Modifications
Changed names of constant and Huiskes reaction rates to be more descriptive.
Modified Carter-Hayes list of parameters.

3. FEATURE: SPR Projection
Implemented the Superconvergent Patch Recovery stress recovery algorithm.

4. FEATURE: Levenberg-Marquardt Methods
Allow users to choose between the older and the new Lourakis
Levenberg-Marquardt methods.


R E L E A S E 1.7.1 9/4/2013


1. FEATURE: Reset Diagnostic Tool
Added reset diagnostic tool.

2. BUG: Reset
Fixed some problems related to the reset feature.


R E L E A S E 1.7.0 6/25/2013


1. FEATURE: Spherical Fiber Distribution exponential term
Extended FESphericalFiberDistribution fiber model to include exponential term.

2. FEATURE: Lourakis Levmar optimization
Implemented the Lourakis Levenberg-Marquardt method for parameter optimization.
Implemented support for box and linear constraints and for reading measurement
data from a text file.

3. FEATURE: Gauss-points reported as one-based
Gauss-points for negative jacobians are now reported as one-based.

4. FEATURE: Time for non-const body forces
Added time as a variable for non-const body forces.

5. FEATURE: Tied Contact and Tri6 elements
Fixed tied interface to work with quadratic tri6 elements.

6. FEATURE: Uncoupled Active Contraction material
Implemented new uncoupled active contraction material for use in solid mixtures.

7. BUG: Tied Contact
Fixed bug in stiffness matrix for tied contact.

8. BUG: Fiber material
Fixed bug in fiber material.


R E L E A S E 1.6.1 5/1/2013


1. FEATURE: Log File variable “T”
Added temperature log file variable (“T”)

1. BUG: Active Contraction
Fixed definitions of active contraction parameters.

2. BUG: Node Data Record
Fixed bug in node data record.

3. BUG: Heat Solver log data
Fixed problem in exporting log data for heat solver.


R E L E A S E 1.6.0 4/2/2013


1. FEATURE: Contact for 10-noded quadratic tetrahedron
Implemented tri6 contact for sliding2, sliding3, sliding-tension-compression and
tied-biphasic contact.

2. FEATURE: Integration rules for 10-noded quadratic tetrahedron
Implemented 7-point integration rule for tri6 elements and 8-node integration rule
for tet10 elements. Implemented 7-point Gauss-Lobatto rule for tri6 elements and the
11-node Lobatto rule for tet10 elements.

3. FEATURE: 20-node hex and 8-node quad elements
Implemented 20-node hex and 8-node quad quadratic elements. Added nodal projection
algorithm for 20-node hex element.

4. FEATURE: Gap output
Revised gap output in sliding2, sliding3 and sliding-tension-compression to save gap
only inside contact region and zero outside.

5. FEATURE: Multi-step contact
Contact interfaces can now be used with multi-step analyses.

6. FEATURE: Superconvergent Patch Recovery
Added SPR stress plot field. Added condition number criteria for the SPR stress.

7. FEATURE: Additional output fields for contact surfaces
Added contact force, fluid force, and pressure gap output for contact surfaces.

8. FEATURE: Multiphasic sliding contact
Implemented multiphasic sliding contact. Allows specification of multiple ambient concentrations.

9. FEATURE: Solvent supply and Starling equation
Implemented solvent supply in biphasic and multiphasic materials and created constitutive
model for Starling equation.

10. FEATURE: Virial Expansion material
Added Virial Expansion material.

11. FEATURE: Self-contact for sliding_with_gaps
Implemented a self-contact algorithm for sliding_with_gaps.

12. FEATURE: febio_spec version 1.3
Implemented support for febio_spec version 1.3.

13. FEATURE: Heat Transfer
Added heat sources. Implemented convective heat flux. Added heat flux plot variable.

14. FEATURE: Reset() for Biphasic, Triphasic and Multiphasic
Added Reset() function to FEBiphasicSoluteDomain, FETriphasicDomain and FEMultiphasicDomain.

15. FEATURE: Parameter optimization
Added ability to specify multiphasic parameters for optimization. Added ability to
specify optimization parameters for biphasic-solute and triphasic materials.
Added ability to control logfile and screen output during parameter optimization via
<log_level> option in optimization file.

16. BUG: Tangent stiffness
Fixed bug in calculation of tangent stiffness for uncoupled materials in FEEFDUncoupled,
FEFungOrthotropic, FEFiberExpPowUncoupled. Simplified code for FESFDMooneyRivlin,
FEEFDVerondaWestmann, FEEFDMooneyRivlin to use corrected FEEFDUncoupled and new material
FESFDUncoupled. Simplified tangent calculation in FEMooneyRivlin.

17. BUG: Referential Permeability tangent matrix
Fixed bug in referential permeability tangent matrix.


R E L E A S E 1.5.2


1. FEATURE: Multiphasic materials
Multiphasic materials have been implemented in FEBio. Multiphasic materials may
be used to model the transport of a solvent and any number of neutral or charged
solutes; biphasic-solute and triphasic mixtures may be analyzed as special cases
of a multiphasic mixture.

2. FEATURE: shell strain in xplt format
Shell strains can now be stored in the new xplt output format. To incorporate
shell strains, add the following to the plotfile section

<var type=”shell strain”/>

Shell strains are averaged over the element and only the averaged strain is stored
in the plot file.

3. FEATURE: 10-noded quadratic tetrahedron
A quadratic 10-noded tetrahedral element has been implemented in FEBio. The element
is available for all solid domains (solid, biphasic, multi-phasic, etc) and also
work with the sliding contact interfaces (sliding_with_gaps, facet-to-facet sliding).
The element defines four corner nodes and six edge midpoints. The higher order element
allows for more accurate predictions with fewer elements. The elements are defined
using the tet10 tag.


The first four nodes are the corner nodes, the next six nodes define the edge midpoints.

4. FEATURE: sliding-tension-compression contact
A new contact algorithm was implemented that allows for sliding contact while
preventing separation. This contact interface may be used to model arbitrarily
oriented symmetry planes. For example, axisymmetric problems may be analyzed
using only a thin wedge representation of the 3D geometry (a single element in the
circumferential direction), requiring fewer elements.

5. FEATURE: Cylindrical fiber generation
A new fiber generator was implemented for transversely-isotropic materials that defines
the fiber orientation based on a cylindrical distribution.

6. FEATURE: minaug and maxaug for all contact interfaces
For all contact interfaces the user can specify
the minimum nr of augmentations (minaug) as well as the maximum nr of augmentations
(maxaug) for the augmented Lagrangian updates.

7. FEATURE: Faster gap calculation for sliding2, sliding3 and tied-biphasic contact
The algorithm for calculating the gap between two contacting surfaces has been modified
to use an octree search algorithm. This algorithm operates much more efficiently than
the previous brute-force search algorithm, especially with contact surfaces having thousands
of patches.

8. FEATURE: Multigeneration growth of solids
A new class of solid mixtures has been introduced where each solid represents a generation
in a multigenerational growth framework. Users define the time when a generation is
deposited and the corresponding solid only becomes active starting at that time. The
reference configuration of a generation is given by the current configuration at the
start of that generation. This class of material can be used to induce residual stresses
in a multigenerational solid.

9. BUG: Modified auto-penalty calculation for contact
The auto-penalty algorithm for contact interfaces has been modified to address
issues with anisotropic materials. It can have an effect on existing FEBio files.

10. BUG: EFD integration
The new integration rule for the EFD materials has been replaced with the old one
as a potential issue with the new rule is being investigated.


R E L E A S E 1.5.1


1. FEATURE: Tied-biphasic interface
A new tied-biphasic interface has been implemented. It combines a tied-interface, used
for tying two non-conforming surfaces, with a biphasic interface which allows fluid to
pass across the teid-interface.

2. FEATURE: new contact search algorithm
Some contact interfaces whose projection algorithm is based on slave-normal projection
have a new projection algorithm. This affects e.g. biphasic, triphasic and multi-phasic
contact interfaces.


R E L E A S E 1.5.0


1. FEATURE: solutes
FEBio has been updated to allow different solutes to be used in different regions
of a model. For example, adjacent regions of biphasic-solute materials need not
have the same solute. A solute table must now be provided in the input file, which
lists all the solutes appearing in a particular analysis. Each region that contains
solutes must provide the solute id’s corresponding to the entries in the solute
table. For biphasic-solute materials, backward compatibility is maintained with
the FEBio 1.4 file format, though only one solute may be used throughout an analysis
in the old format.

2. FEATURE: Triphasic materials
Triphasic materials have been implemented in this version. A triphasic material consists
of a solid, a solvent, and two solute species that are monovalent counter-ions.
The solid matrix may carry an electric charge (the fixed-charge density),
in which case the triphasic material will undergo swelling due to Donnan osmotic
pressure. Electric potential and current density are evaluated in all
triphasic analyses.

3. FEATURE: Cell growth
A cell growth material has been implemented, which describes the growth of cells as
driven by osmotic forces, due to the increasing (or decreasing) content of
intracellular solid and membrane-impermeant solute.

4. FEATURE: relative boundary conditions
Relative boundary conditions have been implemented for all nodal degrees of freedom
of displacement, fluid pressure, and solute concentration. Relative boundary conditions
are meaningful only in multi-step analyses. When a nodal degree of freedom is
specified to be relative at a particular step, the value prescribed for that node is
superposed over the value of that degree of freedom at the end of the preceding step.

5. BUG: tied-interfaces with triangular surfaces
A bug was fixed in the tied interface projection algorithm. Slave nodes were
not projected correctly onto triangular master elements. The bug fix should
improve convergence and create better results for models using tied interfaces
with triangular surface elements.

6. BUG: orthotropic elasticity
A bug was found and fixed in the implementation of the orthotropic elastic

7. BUG: restart
Several issues with the restart functionality were addressed.

8. BUG: file attribute in logfile and plotfile XML element
Support was added for the file attribute of the logfile and plotfile XML
elements. This attribute allows users to define the file name of the log-
and plotfiles. For example:

<logfile file=”log.txt”>…</logfile>

will name the logfile log.txt.


R E L E A S E 1.4.0


1. FEATURE: FEBio input file format
– The new nested format for visco-elastic materials is defined. The elastic
part is now defined as a subcomponent of material element. The old format
(which uses solid_id to refer to the elastic component) is still supported
but should be considered obsolete.
– Modified implementation and input file format of solid mixtures. Format is
now consistent with nesting multiple solid material descriptions within a
single <material> tag.

2. FEATURE: Plot file
– New FEBio plot format
– Contact traction is added as an option for the FEBio plot file.
– The facet-to-facet sliding has been updated to output contact pressure when
Lagrangian augmentation is off and to evaluate net contact pressure in two-
pass analyses.
– Added support for outputting nodal reaction forces to the plot file.
– Added support for discrete elements in FEBio plot file.

3. FEATURE: Data logging
– Principal stress and princial strain can be requested as output for element
data. Use s1, s2, s3 for the principal Cauchy stress components and E1, E2,
E3 for the principal Lagrange strain components.
– The deformation gradient can now be output as an element output option. Use
F11, F12, etc. to output the components of the deformation gradient to the
– Include x;y;z coordinates in element data logfile output options.

4. FEATURE: Command line
– A short hand command line syntax is now allowed. For example you can run an
FEBio file using
>febio file.feb
Note that there is no -i. This is convenient since now you can run an FEBio
input file from Windows Explorer by right-clicking it and selecting FEBio to
run the file.
– Added -silent command line option.
– Added option to export version info from the command line.
– The FEBio command prompt now comes up when the program is started without command
line options.

5. FEATURE: Biphasic/Biphasic-solute
– Solute transport in neutral porous solid has been implemented.
– Added framework for mass supply in biphasic-solute problems.
– Steady-state biphasic analysis mode has been implemented.
– Implemented fluidflux boundary condition for mixture velocity.
– Implemented biphasic-solute sliding3 contact.

6. FEATURE: New materials
– Added Fung orthotropic compressible material.
– Added cell-growth material.
– Modified “linear orthotropic” material to allow user-specified preferred
material directions.
– Added single fiber constitutive relations (exponential-power law relation)
for compressible and uncoupled representations.
– A simple damage model was implemented for some hyperelastic materials.
Currently you can use “damage neo-Hookean”,
“damage Mooney-Rivlin” and “damage trans iso Mooney-Rivlin”.
– A version of a compressible Ogden material was implemented. This material
should be preferred over the (uncoupled) Ogden material when the material
is compressible.

7. FEATURE: New element
A new tetrahedral element formulation was implemented. This formulation uses
nodal averaging of the deformation gradient to overcome the well-known locking
problems of linear tetrahedral elements. This formulation can be used by
setting the integration rule for tet elements to UT4. Additional parameters can
be defined that affect the behavior of this element.

8. FEATURE: Body forces
– A point-body force feature was implemented. This body force applies a force
to the domain that is centered around a fixed point and decays exponentially
with increasing distance from this fixed point.
– Implemented centrifugal body force.
– Implemented the non-const body force.

9. FEATURE: Must point load curve
The user can now set the load curve type for must point load curves. It used to
be set to STEP but can now be defined in the input file.

10. FEATURE: New iterative solver
The MKL RCICG iterative solver has been implemented. To use it, select “rcicg”
as the type of the linear_solver element in the FEBio input file.

11. FEATURE: Diagnostics
– Reimplemented tangent diagnostics feature which now offers two scenarios:
uni-axial and simple shear.

12. BUG: Multi step
– A bug was fixed that was applying inactive traction boundary conditions in a
multi-step analysis.
– A bug in the auto-time stepper could cause negative time steps in multi-step,
resulting in the analysis running backwards in time.

13. BUG: Rigid constraints
A bug was fixed in the initialization of rigid constraints.

14. BUG: Sliding2
A bug was fixed in the sliding2 contact interface for calculation of net contact

15. BUG: Multi-scale problems
– Users can now use ctrl+c to interrupt multi-scale problems.
– FEBio will now terminate a multi-scale problem if the micro RVE problem fails.

16. BUG: Restart feature
The restart feature underwent a major revision and cleanup. Most issues with
this feature are now addressed.

17. BUG: Eigenvalues
A bug was fixed in the algorithm that calculates eigenvalues. This will affect
all aspects of the code where eigenvalues are used. In particular, these are
the implementations of the Ogden-type materials.

18. BUG: Arruda-Boyce material
The stress and tangent calculations of the Arruda-Boyce material contained
some errors.


R E L E A S E 1.3.0


1. FEATURE: FEBio license
Support was added for FEBio license files. This was implemented to allow
commercial institutes the right to use FEBio for their research and development.
Companies can now purchase a license key that they then use with FEBio.
Academic researchers can still use FEBio for free.

2. FEATURE: FEBio format 1.1
– A new input format is define for FEBio, namely format 1.1. This format
addresses some issues in the older format and reflect some changes to the
internal code structure of FEBio. This applies mostly to rigid body constraints.
In the old format, these constraints were defined as part of the material
definition. In this new format, they have to be defined as part of the new
Constraints section.
– Added support for reading empty xml elements.

3. FEATURE: New materials
– Implemented referentially orthotropic and referentially transversely
isotropic permeability.
– Added referentially isotropic permeability poroelastic material, FERefIsoPerm.
– Added FEPerfectOsmometer class to describe equilibrium swelling of the Boyle-
van’t Hoff type.
– Modified FEDonnanEquilibrium and FEEllipsoidalFiberDistribution so that they
can be user-defined materials.
– Modified FEElasticMixture to check for duplicate entries in <solid_ids>.
– Simplified stress and tangent calculations in FERandomFiberNeoHookean an
FERandomFiberVerondaWestmann materials.
– Implemented class FEElasticMixture : public FEElasticMaterial to represent
mixtures of elastic solids.

4. FEATURE: Three-field hexes
By default, FEBio uses the three-field formulation for hexahedral elements.
An option was added allowing the user to turn three-field formulation on or

5. FEATURE: Plof file
Springs are now included in the LSDYNA plot file.

6. FEATURE: Heat-flux BC
Implemented the heat flux boundary condition for heat transfer problems.

7. FEATURE: Fluid flux
A prescribed fluid flux boundary condition was implemented for poroelastic
analysis. This boundary condition allows the user to define the fluid flux at
the surface of the FE model.

8. FEATURE: Implemented biphasic-elastic contact
A new sliding contact algorithm has been implemented. This sliding contact
formulation also includes fluid flow across the contact interface for biphasic
problems. If both contacting surfaces are biphasic, the algorithm considers
the flow from one surface into the other by forcing the pressure to be the same
on either side of the contact interface.

9. FEATURE: Multi-step feature
Support was added for pressured loads and the constant traction loads in the
multi-step feature. When defining these boundary conditions as part of the Step
boundary condition, they will only remain active during this step. In other
steps, they will be inactive.

10. FEATURE: Tension-only springs
An alternative spring implementation was implemented that only exerts a force
in tension. In compression, the spring force is zero.

11. FEATURE: Micromaterial
The micromaterial no longer forces skyline solver. The micro-scale problem will
now the same linear solver as the macro-problem (Padiso by default).

12. BUG: Biphasic contact
– A bug was fixed in the biphasic contact augmented Lagrangian convergence
criterion on fluid pressure/flux.
– A limitation was removed that prevented from correctly defining 3-body
biphasic contact problem.

13. BUG: Memory leak
A memory leak was fixed that was caused by not deleting the domains properly
curing a running restart.


R E L E A S E 1.2.2


1. FEATURE: Micro-material
Using the new micro-material, FEBio has taken a first step in the solution
of computational homogenization problems. For such problems, the macro-scale
problem’s material response is described by the iterative solution of a
micro-scale problem.
In FEBio a new material, called “micro-material” is used to solve computational
homogenization problems. The material references the micro model which is
specified in a separate input file.

2. FEATURE: Relative kinematics
An option was added to describe rigid body kinematics in a local coordinate system
and connect the rigid bodies in a child-parent hierarchy. This facilitates the
description of complex rigid body prescribed kinematics.

3. FEATURE: Set minimum residual
Whenever the residual drops below a minimal value, FEBio assumes that there are
no force acting on the system and will consider the time step as converged. The
user can now set the value of this minimum residual using the <min_residual>
parameter in the <Control> section of the input file. The default value is 1e-20.

4. FEATURE: New constraints section
A new section was added that will deal with constraints. Although all constraints will
eventually be moved to this section, for now it was added to allow the user to describe rigid kinematics (see item 5).

5. FEATURE: Redefine rigid kinematics in multi-step analysis
The user can now redefine the rigid body constraints using the Constraints section in
a multi-step analysis. The Constraints section may be repeated in each step, and the user may redefine the rigid body constraints in each step.

6. FEATURE: Parameter optimization
A new parameter optimization algorithm was implemented. Although parameter optimization
has been implemented for a while, it was not available since it used the NAG library.
The NAG routines have now been replaced with a custom implementation of the Levenberg-
Marquardt method, making the parameter optimization module available for all FEBio users.

7. FEATURE: Enhanced loadcurves
Two new features were added to the load curves. First, the user can define the load curve
type, which can be set to step, linear or smooth. For the smooth type, FEBio will inter-
polate the load curve values with a cubic polynomial creating smooth curves (C1 continuous).
Second, the user can now also define the extend mode which defines the values of the load
curve outside its specified domain. The new options are set as attributes to the <loadcurve>
element. For example, the following defines a smooth load curve with linear extrapolation
outside the domain.

<loadcurve type=”smooth” extend=”extrapolate”>

The extend mode can take on the following values: “constant”, “extrapolate”, “repeat”,
“repeat offset”. The default value is “constant”.

8. FEATURE: Nodally integrated tet
A new nodally integrated tet element is available which performs better in incompressible
and bending problems. Performs better in the sense that it suffers less from locking
problems that often cause problems using the default linear tet elements in FEBio.

9. FEATURE: Constant surface traction boundary condition
A new boundary condition was implemented which allows the user to apply a constant traction
force to a surface. Unlike the pressure boundary force, the surface traction will remain
independent of the deformation.

10. BUG: Crash when using triangular shells
A bug was found and fixed in the input routine for triangular shells. The bug was responsible
for unexpected crashes that could occur anywhere during the run.

11. FEATURE: FEBio compiled on Vista 64bit and Win7 32bit
Executables have been compiled on Windows Vista, 64 bit and Windows7 32bit. If the executable
is set to XP Comptability mode, it will not run correctly.


R E L E A S E 1.2.1


1. FEATURE: mat_axis
A mat_axis option was added for the ElementData section. The user can now
override the material axis for each element individually.


R E L E A S E 1.2.0


1. FEATURE: Sparse linear solvers
FEBio now adds support for several fast sparse linear solvers, such as Pardiso
and SuperLU. The preferred linear solver can either be specified in the
configuration file or in the FEBio input file by adding the following line
to the Control section (e.g. for Pardiso):

<linear_solver type=”pardiso”></linear_solver>

These new sparse linear solvers are faster than the default skyline solver
since they take better advantage of the sparsity of the stiffness matrix and
can use multiple processors. Note that if you want to use multiple processors
you may need to set specific environment variables. We refer to the documentation
of the linear solvers for more details.

2. FEATURE: Contact improvements
Two new frictionless sliding contact algorithms were implemented which add more
stability to contact analysis. The first is referred to as the facet-to-facet
sliding, and the second one is reffered to as sliding2. To select a particular
algorithm, set the type attribute of the contact xml-element to the appropriate
value (e.g. for facet-to-facet sliding).

<contact type=”facet-to-facet sliding”> … </contact>

For sliding2, simply enter the value “sliding2”. The sliding2 algorithm is
inherently unsymmetric, which means you’ll need to use a non-symmetric linear
solver (both pardiso and superlu can handle non-symmetric matrices). However,
this algoritm does have a symmetric mode, although this mode was shown not to
be as robust as the non-symmetric. You can choose between the two modes by
setting the following flag in the contact section.


A value of 0 will use the non-symmetric mode. Please see the user’s manual for
more details on these new contact algorithms.

3. FEATURE: Biphasic contact
The new sliding contact algorithm sliding2 can also deal with biphasic contact.
Here two poroelastic materials are brought in contact and can exchange fluid
across the contact interface. The contact algorithm also automatically enforces
a free-draining boundary condition on the part of the surface that is not in
contact. To use biphasic contact you’ll need to define two contacting poroelastic
surfaces and you need to set the contact type to “sliding2″.

<contact type=”sliding2″> … </contact>

In addition, you’ll need to define several control parameters which are described
in detail in the user’s manual.

4.FEATURE: auto-penalty
A new auto-penalty algorithm was implemented for all sliding contact algorithms.
This algorithm derives the penalty factor from the initial elasticity tensor of
the material. The advantage is that the algorithm now works with any material.
To use the new algorithm, add the following xml-element to the contact section
of the input file.


Note that the old algorithm is still available for now for backward compatibility
but is considered obselete and may be removed in future releases.

5. FEATURE: Isotropic elastic
A new material was implemented to replace the linear elastic and the St.Venant-
Kirchhoff material. This material is valid for both small deformations and
large deformations and reduces to linear elasticity for small strains. An
example illustrating the use of this material:

<material id=”1″ type=”isotropic elastic”>

Note that the linear elastic and the St.Venant-Kirchhoff materials are still
available for backward compatibility, but it is highly recommended to use
this new material instead.

6. FEATURE: Convergence tolerances
A simple mechanism was implemented to turn off particular convergence tolerances.
As of this version, setting a value of 0 (zero) for the displacement (dtol),
energy (etol) or residual (rtol) will deactivate the corresponding convergence
criteria. Similarly, setting a value of zero for the line search tolerance (lstol),
will deactivate the line search.

7. FEATURE: Time command
The time command will display the time that has passed so far and also gives an
estimate of the remaining time. The command can be entered at the FEBio command
prompt which is activated after interrupting the run with ctrl+c.

8. BUG: Running Linux input files on Windows
An issue was identified that prevented files created on a linux machine to be run
on windows. The problem had to do with way the different platforms deal with line
endings. The issue has been resolved, and both platforms should now be able to read
files that were created on the other.


R E L E A S E 1.1.7


1. FEATURE: Initial nodal velocities
Support fot initial nodal velocities was added to FEBio and to the FEBio
input file. To set initial nodal velocities, add the Initial section to the
input file.


<node id=”1″>1,0,0</node>

<node id=”n”>1,0,0</node>

Note that you need to run the problem dynamically for this to have any effect.
To run a dynamic analysis, add the following element to the Control section
of your input file.

<analysis type=”dynamic”></analysis>

2. FEATURE: Strain-dependant poroelasticity
A new poroelastic material was added that has a strain dependant permeability
tensor. This material uses the constitutive model proposed by Holmes and Mow.

3. FEATURE: Customizing plot file output
You can now replace the predefined LSDYNA data fields with FEBio datafields.
To do this, define the plotfile element in the Output section of your input file.
You can then define maps to redefined the meaning of an output field in the plot
file. For example,

<map field=”velocity”>CONTACT_TRACTION</map>

will replace the velocity data with contact traction data.

4. FEATURE: Frictional contact
The sliding interface is augmented with a frictional algorithm. To use friction
simply add the following two parameters to the your contact section.


The first parameter sets the friction coefficient. The second parameter is the
frictional penalty parameter.

5. FEATURE: Contact stiffness multipliers
The user can set a scalar multiplier for both the normal as well as the
tangential stiffness. The “ktmult” parameter defines the multiplier for the
tangential component (default = 0), and “knmult” the multiplier for the
normal component. These parameters need to be set in the sliding interface
contact section of your input file.

<contact type=”sliding_with_gaps”>



6. FEATURE: Configuration file
FEBio now use a configuration file to store platform dependant parameters.
Currently it only stores the default linear solver you wishes to use which
is set to Pardiso on most platforms. The configuration file needs to be
stored in the same location of the FEBio executable. See the manual for more
options about using this configuration file.

7. BUG: Node numbering
When a negative jacobian occurs the node numbering were reported as zero-based
in stead of one-based. This has been fixed.


R E L E A S E 1.1.6


1. FEATURE: Multi-step analysis
The user can now split the analysis in separate steps where in each step
he can define different control parameters and boundary conditions. This
is useful for instance for defining time dependant boundary conditions or
for switching between (quasi-) static and dynamic analysis. Multi-step
problems are defined slightly different. For each step you need to define
a <Step> section in the input file. The overall structure of the input file
now looks like this.

<!– global control parameters (e.g. title) –!>
<!– material data –!>
<!– global boundary constraints –!>
<!– local control parameters –!>
<!– local boundary constraints –!>


In each step section, you can redefine the control parameters, as well as
specify boundary conditions that will only be enforced during this step.
Note that the boundary constraints defined outside the step section are
considered global and will remain active during all steps.

2. FEATURE: Ogden material
The Ogden material was added to the FEBio’s material library. To use this
material set the material type to “Ogden”. Please see the user manual for
a description of the material parameters.

<material id=”1″ type=”Ogden”>

Note that this material is formulated using an uncoupled formulation. Incom-
pressibility can be enforced by either increasing the bulk modulus (k) and
by setting the augmentation flag (<laugon>) to “1”.

3. BUG FIX: Contact
A bug was fixed in the frictionless contact algorithm. Improved convergence
can be expected for some contact problems.


R E L E A S E 1.1.5


1. FEATURE: Visco-elasticity
Visco-elasticity has been added to the material library. To use the visco-elastic
material you need to add two materials: (1) the visco-elastic material and (2)
a material describing the elastic equilibrium repsonse.

<material id=”1″ type=”neo-Hookean”>
<material id=”2″ type=”visco-elastic”>

The solid_id element references the material id of the elastic material.
The visco-elastic material is described using a Prony series. Each term
in this series is parameterized by a relaxation time (ti) and a scalar
modulus gi. Up to six terms can be prescribed.

2. FEATURE: Continuous fiber material
A new material model was added that has a 2D random fiber distribution.
This model replaces the “random” fiber type that could be used to describe
random fiber materials. Currently, this material uses a Mooney-Rivlin matrix.

3. FEATURE: Body forces for shells
Body forces can now also be allowed to shell geometry.

4. FEATURE: Linear orthotropic material
A linear orthotropic material was added to FEBio’s material library.

5. FEATURE: Linear constraints
The user can now apply linear constraints to the problem. A linear constraint
defines a degree of freedom in function of the other dofs. It is always of
the form.

ui = A1*u1+ … + A(i-1)*u(i-1) + A(i+1)*u(i+1) + … + An*un

As many linear constraints can be applied as desired. Only the non-zero
coefficients need to be specified.

6. FEATURE: SuperLU solver
The SuperLU solver has been implemented. To select it, add the following
line to the Control section of the input file.

<linear_solver type=”superlu”></linear_solver>

7. BUG FIX: Off-diagonal strains in logfile
The off-diagonal strians reported in the logfile were off by a constant
term of 0.5.


R E L E A S E 1.1.4


1. FEATURE: New muscle and tendon material models
The muscle and tendon material models due to Silvia Blemker have been
implemented. These models can be used to simulate the passive and active
response of muscles and the passive response of tendons. See the user
manual for more details on these material models.

2. FEATURE: Strain output in log file
The element strain values can now also be outputted to the log file. See
the user manual for more details.

2. BUGFIX: Plot file data for triangular shells
The stress and strain data for triangular shells was not stored correctly
in the plot database file. This has now been fixed.

3. BUGFIX: Divergence logic
A small bug was fixed in the divergence logic.


R E L E A S E 1.1.3


1. FEATURE: Iterative linear solver
An iterative linear solver has been added that can be used as an alternative
to the default skyline solver to solve the system of linear equations Ku = R.
This iterative solver is attractive for large problems that either require too
much memory or take too long to factorize the stiffness matrix.
To select the solver, add the following section to the Control section
of your input file.

<linear_solver type=”conjugate gradient”>

This solver takes three parameters (shown in the example above with their
default values). The “tolerance” parameter specifies the convergence tolerance
on the residual norm of the linear system, where the residual is defined here
as r = R – Ku. The “max_iterations” parameter sets a maximum on the number of
iterations. The “print_level” parameter sets the amount of output that the
linear solver will generate. When set to zero (=default), no output is generated.
When set to a non-zero value, convergence information is printed only to the
screen (not to the logfile!).

2. FEATURE: Shell strains
FEBio can now output shell strains. To output shell strains set the “shell_strain”
parameter to 1 in the “plotfile” section of the “Output” section of your input file.


The default value for this flag is 0 (=off).

3. FEATURE: Progress indicator in window title
A progress indicator is displayed in the title of the console window
or terminal for linux/mac). That way the user can monitor the progress of a
run even when the window is minimized.

4. BUG FIX: NIKE3D wedge element
FEBio read the node numbering incorrectly of the wedge element for NIKE3D
input files.

5. BUG FIX: Linesearch
A small bug was fixed in the linesearch algorithm.


R E L E A S E 1.1.2


1. FEATURE: Augmented Lagrangian for incompressible materials
An augmented Lagrangian algorithm was added for the incompressibility
enforcement. To use this feature, add the following two parameters
to any material that uses a decoupled formulation (e.g. Mooney-Rivlin)


The first parameter activates the augmented Lagrangian for incompres-
sibility and the second parameter specifies the augmented Lagrangian
convergence tolerance.

2. FEATURE: TC nonlinear orthotropic
A tension-compression nonlinear orthotropic material was added. To use
this material set the material type to “TC nonlinear orthotropic” and
define the material parameters. See the user’s manual for a description
of the material parameters.

3. FEATURE: Contact auto penalty calculation
The initial penalty factor can now be calculated automatically. Simply
specify the “auto” attribute and as value “on” or “off” to use the
auto penalty estimation. Default is off.

<penalty auto=”on”>1</penalty>

In this case the specified value of the penalty element is a scale factor.

4. FEATURE: Max condition number
When the condition number of the stiffness matrix gets too large, the matrix
becomes ill-conditioned. When this happens, FEBio will reform the stiffness
matrix. The maximum value for the condition number (previously hardcoded at 1e5)
can now be set by the user. To set this value, add the “cmax” parameter to
the control section of your input file.


5. BUG FIX: Contact with tetrahedral elements
There were a few bugs found and fixed in the contact algorithm
for tetrahedral elements. One bug was rather severe since it could
crash FEBio.

6. BUG FIX: Dilatational stiffness
A bug was found and corrected in the routine that calculates the dilational
stiffness. This may improve convergence behavior for all materials using a
decoupled formulation.

7. BUG FIX: Auto timestepper
A bug was found and fixed in the auto timestepper routine. Specifically,
the max time step size was sometimes not respected when it was specified
through a loadcurve.


R E L E A S E 1.1.1


1. FEATURE: Data check option
A command line option was added that requests FEBio to check the file for
potential problems, but without running the file. To use the feature add
the -c option on the command line. For instance, the following command line
will perform a data check on the file without running the problem.

>febio -i in.feb -c [enter]

2. FEATURE: Tied contact interface
A tied contact interface was added. This interface allows you to connect two
non-conforming meshes. A tied contact is defined similarly as a sliding
contact interface, except the contact type is now set to “tied” and there
is two pass option. For, instance the following example defines a simple
tied interface.

<contact type=”tied”>
<surface type=”master”>
<surface type=”slave”>

3. BUG FIX: Divergence logic
A small bug was fixed in the algorithm that determines whether an iteration
is diverging or not.

4. BUG FIX: Rigid body reaction forces
When using prescribed rigid body forces, the rigid body reaction forces where
not reported accurately.

5. BUG FIX: Rigid body data logging
A bug was fixed in the data logging feature of rigid body data when the user
did not explicitly define the rigid material id(s).

6. BUG FIX: Bug in bandwidth optimizer
A bug was found and fixed in the bandwidth optimization algorithm.

7. BUG FIX: St.Venant-Kirchhoff
The St.Venant-Kirchhoff material was not recognized by FEBio when spelled
like this. Instead it expected a hyphen instead of the first dot. This is
fixed and now the correct type for this material is spelled as follow:


R E L E A S E 1.1.0


1. FEATURE: Bandwidth reduction algorithm
A bandwidth reduction algorithm has been implemented for the default Skyline
solver. This algorithm attempts to minimize the bandwidth of the global
stiffness matrix. The result can be a dramatic reduction in memory
requirements and computing time. To use the algorithm, simply add the
following option to the Control section of your input file.


2. FEATURE: Data Logging
The user can request specific data to be stored in the log file. Data can be
requested for nodes, elements and rigid bodies. To request additional data you
need to define the new Output section in your input file. In the Output
section, define a logfile section and in this section define the data that you
wish to add to the log file.

<node_data data=”x;y;z”></node_data>

3. FEATURE: Rigid wall interface
The rigid wall interface is a simplification of the sliding contact interface
where the master surface is a movable wall which can be defined implicitly
using a plane equation. No geometry needs to be defined for the wall. The
position of the wall can be controlled with a load curve.

<contact type=”rigid_wall”>
<plane lc=”1″>0,0,1,0</plane>

4. FEATURE: User fiber distribution
An option has been added for transversely isotropic materials to input a user
defined fiber distribution. The local fiber direction can now be defined on an
element per element basis. To use this option set the fiber type to “user” in
the material section. In addition, define the new ElementData section in the
Geometry section of your input file. In this section specify for each element
the local fiber direction.

<element id=”1″>

5. FEATURE: Shell formulation
FEBio now supports shell elements. The current formulation allows either four
node quadrilateral or three node triangular shells with possible thickness
variations over the shell’s surface. Shells are defined in the Geometry
section of your input file. Use quad4 for a quadrilateral element and tri3
for a triangular element.

<quad4 id=”1″ mat=”1″>1,2,3,4</quad4>
<tri3 id=”2″ mat=”1″>5,6,7</tri3>

The shell thickness is defined in the ElementData section and needs to be
speficied for each node.

<element id=”1″>

6. FEATURE: Restart File
The user can define a restart input file that can be used to alter some
control parameters when restarting a previously terminated run. To request the
creation of a restart file, add the following option to the Control section.


This option requests the creation of a dump file that can be used to restart
the analysis. When restarting the analysis you can specify a restart input file
that may override some of the original control options.

7. FEATURE: Rigid Body Forces
Prescribed forces can now be applied directly onto the rigid body’s center of
mass. To specify a force simply set the type attribute of the corresponding
rigid body’s degree of freedom to force and set the value to the force’s
magnitude. Applying a force to a rotational degree of freedom defines a torque
around the center of mass.

<material id=”1″ type=”rigid body”>
<trans_x type=”force” lc=”1″>5.0</trans_x>


8. FEATURE: Plot Level
The user has now more control over when exactly a state is added to the
plotfile. Choices include: never, all major iterations, all minor iterations,
only for must points, …. Enter the following option in the Control section of
your input file to set the plot level.


9. BUG FIX: Improved Contact
Several bugs were found and fixed in the contact implementation. Improved
convergence can be expected for contact analyses.

10. BUG FIX: Linesearch
A bug was found and fixed in the linesearch algorithm. Problems that depend
heavily on a linesearch will show improved convergence.

11. BUG FIX: Memory allocation failure
FEBio now prints an error message when memory allocation for the global
stiffness matrix fails.