The finite element (FE) method has proven to be one the most versatile numerical methods for solving computational problems in physics. Although it was initially applied to problems in mechanics, it has since its inception in the 1950s been used in virtually every field of engineering, including biomechanics and biophysics. Yet, at the time of FEBio’s initial development (ca 2005), no freely available open-source finite element software existed that specifically targeted the biomechanics and biophysics communities. FEBio was developed to fill this emerging need and it would accomplish this by focusing on features that are relevant in the field. The source code would be freely available and designed such that it would be easy for researchers to implement new algorithms (e.g. new constitutive models). A strong emphasis would also be placed on thorough documentation, support, and outreach to the community, which would make it much easier than before for researchers to develop new ideas and share them with others.
In 1995 Dr. Jeffrey Weiss was involved in the development of a deformable image registration algorithm termed Hyperelastic Warping. This method uses a finite element method for solving the image registration problem. The result of this approach is a deformation that is physically realistic and can be used to calculate the strains and, assuming the constitutive properties of the materials are known, the stresses as well. This algorithm was originally implemented in NIKE3D, a nonlinear implicit finite element code for solving problems in solid mechanics, developed by the Lawrence Livermore National Laboratories (LLNL). Unfortunately, NIKE3D was not free and, as a government-owned program, the dissemination of the additions was complicated. Consequently, the algorithm was not widely used outside Dr. Weiss’s lab despite the fact that it had many valuable applications. To overcome this problem, the idea started to develop a new, custom, open-source, FE kernel that would serve as the engine that drives the future developments of the warping algorithm.
Initial Development (2005 – 2009)
The development of this FE kernel commenced in 2005 at the same time that Dr. Steve Maas joined Dr. Weiss’s lab. However, it was quickly realized that the kernel could be used for solving traditional finite element problems as well, and in fact could replace the dependency on NIKE3D. This kernel code was greatly expanded in 2005 and 2006 and became the predecessor to FEBio. When other researchers started to express interest in this new code, the idea of FEBio was born: a new finite element code specifically designed for the biomechanics community. Dr. Gerard Ateshian became one of the earliest researchers to express interest in the FEBio project. With his expertise in mixture theory, Dr. Ateshian joined forces with Dr. Weiss and Dr. Maas and started working on the incorporation of biphasic modeling capabilities in FEBio, a capability that was of significant interest to the biomechanics community.
The first version of FEBio was released in December 2007. To support the creation of FEBio input files and the visualization of FEBio results, PreView and PostView were developed. Also as part of the first FEBio release, a forum was created where users could submit questions, report bugs or propose new features.
In 2008 the FEBio project received its first federally funded grant through the U.S. National Institutes of Health. The main goal for this funding period was to expand FEBio’s capabilities for modeling problems in biomechanics. In particular, the initial implementation of biphasic (or poroelastic) materials was to be extended to mixtures with multiple constituents, using the general framework of mixture theory. A special emphasis was placed on solute-solid matrix interactions, including solute exclusion from a fraction of the matrix pore space (solubility) and frictional momentum exchange that produces solute hindrance and pumping under certain dynamic loading conditions. The finite element formulation implemented full coupling of mechanical and chemical effects, providing a framework where material properties and response functions may depend on solid matrix strain as well as solute concentration. Furthermore, to accommodate contact between solids and mixtures having a solid matrix, new contact algorithms were implemented that properly accounted for conservation of mass and momentum between contacting mixtures. These contact algorithms allowed both the solvent and solutes to flow across the contact interface.
First Funding Period (2008 – 2012)
During the second funding period, the multiphasic framework was expanded to include modeling of any number of neutral or charged solutes in a porous deformable solid matrix that may carry electrical charge. Chemical reactions were also incorporated into the code to allow mass exchanges between solutes and solid-bound molecular species. Related to the expansion of the multiphasic framework, the implementation of body forces in biphasic materials was implemented, which served as a template for the implementation of active solute transport in the form of a solute momentum supply. The same reactive constrained mixture framework has also allowed the modelling of damage mechanics in tissues, by modeling the permanent bond-breaking process as a reaction. The FEBio framework has been designed such that users may combine any of these models as needed.
Second Funding Period (2012 – 2016)
In this funding period a plugin framework was developed for FEBio that allowed users to create customized additions without the need for modifying or recompiling the FEBio source code. This plugin feature allows users to extend almost every part of FEBio, such as adding a new material model, customizing or extending the plot file output, coupling FEBio to other codes, and much more.
Initially, FEBio did not take advantage of parallel architectures on desktop computers, at least not directly. Support for parallelization was a result of using third-party parallel linear solver libraries. Later on, the serial parts of the code were parallelized using OpenMP. The parts of FEBio that were most time consuming were identified and, where possible, were rewritten with support for OpenMP. This initial effort resulted in some encouraging benchmarks and significant speedups for certain types of analysis.
Several quadratic tetrahedral formulations were also implemented during this grant period. These elements are an attractive alternative to linear tetrahedral elements since they maintain the advantages of tetrahedral mesh generation. In addition, they perform similarly and sometimes even better, both in terms of computational cost and in terms of accuracy, than the “gold standard” linear hexahedral element. This makes quadratic tetrahedral elements attractive for modeling the often complex geometries encountered in computational biomechanics problems.
To this day the FEBio user’s community continues to grow. Since the first release of FEBio in 2007, there have been over 110,000 software downloads. As of September 2017, there are more than 5,100 registered FEBio users and around 1,100 registered users on the forums, and these numbers continue to grow. The user base ranges from students, some of them new to finite element modeling, to more experienced academics and researchers. FEBio is also used as a teaching tool in various institutes across the world, such as the University of Michigan, Boise State University, Technical University of Madrid, National University of Singapore, University of Strathclyde, Brigham Young University, Eindhoven Technical University, Tel Aviv University, McGill University, and several others. FEBio has also been featured in many posters and podium presentations during various conferences over the years.
Impact of FEBio
Although these statistics give a glimpse of the positive impact of FEBio on the community, perhaps the best way of estimating its impact is by looking at how the software has been used by other researchers. As of September 2017, there are at least 216 articles in peer reviewed publications that have used FEBio in a significant way, covering areas of soft tissue mechanics, tissue engineering, joint and muscle mechanics, damage modeling, cardiovascular mechanics, angiogenesis, modeling of vision and hearing, multiscale modeling, and many more. A list of these articles can be found on the FEBio website.
FEBio’s main priority continues to be the development of a software environment that is tailored to the specific needs of the biomechanics and biophysics communities. The initial focus of the project was mostly on solid mechanics. With the implementation of biphasic, and later multiphasic capabilities, including the modeling of an arbitrary number of solutes, electrokinetics and chemical reactions, FEBio has evolved into a true multi-physics code. This allows researchers to model and investigate the interactions between different types of physics within a single model. These capabilities are obviously important for solving problems in biophysics. Due to the importance of modeling multi-physics capabilities, the expansion of FEBio’s capabilities in this area is the current focus.
Future of FEBio
The modeling of fluids represents the next biggest challenge of FEBio. Previously, fluids could be modeled in FEBio only as components of mixtures. As of FEBio 2.7, a computational fluid dynamics framework has become available, to model viscous fluids in fixed domains. The incorporation of fluid-solid interactions, which is very relevant to biomechanics and biophysics, will be completed within a year. Therefore the current stage of FEBio development efforts is focused on the implementation of algorithms that model computational fluid dynamics and fluid-solid interactions (FSI), along with efficient iterative solvers to handle large problem sets. As the capabilities of FEBio into the fluid mechanics and FSI domains are expanded, adaptive mesh refinement (AMR, local mesh refinement and coarsening) will be addressed as well.
The PIs of the FEBio project, Dr. Weiss and Dr. Ateshian, are currently in the process of setting up the Center for Computational Biomechanics and Biophysics (CCBB). The purpose of the center is to continue the development of FEBio and extend it in exciting new directions, but also to create new collaborations and widen the reach and impact of FEBio. Aside from extending FEBio’s multi-physics capabilities, the integration of image data in FE analyses is another goal. This implies developing an entire modeling pipeline from image data, through segmentation and mesh generation, to FE analysis. In addition, this new capability would allow users to integrate image data directly into FE models, e.g. for specification of inhomogeneous material properties. Another development effort will be focused on the expansion of the plugin framework such that FEBio could be coupled easily with other, domain-specific software. Also, the support for scripting languages such as Python will allow users to easily develop new applications with FEBio. The CCBB center will also focus on expanding our dissemination and training efforts. New education and training programs will be developed for our major target communities. This will entail developing new curricula for course-based education, specific tutorials and workshops for relevant audiences, and expanding our already extensive web-based documentation and online education tools.