FEBio: Finite Elements for Biomechanics

FEBio software suite implement a nonlinear implicit finite element (FE) framework, designed specifically for analysis in computational solid biomechanics. FEBio offers modeling scenarios, constitutive models, and boundary conditions, which are relevant to numerous applications in biomechanics. The open-source FEBio software is written in C++, with particular attention to scalar and parallel performance on modern computer architectures.

References:

Documentation
Important Notes

Interactive job
Interactive jobs should be used for debugging, graphics, or applications that cannot be run as batch jobs.

Allocate an interactive session and run the program. Sample session:

[user@biowulf]$ sinteractive -c 6 --mem 15g --gres=lscratch:20
[user@cn3144 ~]$ module load FEBio
[+] Loading FEBio  4.4
[user@cn3144 ~]$  febio4 -i your_file.feb
===========================================================================
         ________    _________   _______       __     _________
        |        |\ |        |\ |       \\    |  |\  /         \\
        |    ____|| |    ____|| |    __  ||   |__|| |    ___    ||
        |   |\___\| |   |\___\| |   |\_| ||    \_\| |   //  \   ||
        |   ||__    |   ||__    |   ||_| ||   |  |\ |  ||    |  ||
        |       |\  |       |\  |         \\  |  || |  ||    |  ||
        |    ___||  |    ___||  |    ___   || |  || |  ||    |  ||
        |   |\__\|  |   |\__\|  |   |\__|  || |  || |  ||    |  ||
        |   ||      |   ||___   |   ||__|  || |  || |   \\__/   ||
        |   ||      |        |\ |          || |  || |           ||
        |___||      |________|| |_________//  |__||  \_________//

      F I N I T E   E L E M E N T S   F O R   B I O M E C H A N I C S

  version 4.4.0
  FEBio is a registered trademark.
  copyright (c) 2006-2023 - All rights reserved

===========================================================================

Default linear solver: skyline

febio>
[user@cn3144 ~]$ exit
salloc.exe: Relinquishing job allocation 46116226
[user@biowulf ~]$

Batch job
Most jobs should be run as batch jobs.

Create a batch input file (e.g. TEMPLATE.sh). For example:

#!/bin/bash
set -e
module load febio

export OMP_NUM_THREADS=8
febio4 -i your_file_1.feb
febio4 -i your_file_2.feb
febio4 -i your_file_3.feb

Submit this job using the Slurm sbatch command.

sbatch --cpus-per-task=8 --mem=16G TEMPLATE.sh

The result will be in current directory. NOTE: In default, febio4 will use all allocated CPU ($SLURM_CPUS_PER_TASK) to run. You can adjust it to suitable number as needed. Here is a resut for reference:

export OMP_NUM_THREADS=4
time febio4 -i test.feb
real    0m17.179s
user    1m4.527s
sys     0m2.509s

export OMP_NUM_THREADS=8
time febio4 -i test.feb
real    0m14.955s
user    1m47.947s
sys     0m4.820s

export OMP_NUM_THREADS=16
time febio4 -i test.feb
real    0m15.647s
user    3m23.549s
sys     0m9.291s
It doesn't show much improvement with more CPU.