Overview and installation
Goal of pyFEBiOpt
FEBio provides an optimization workflow, but that workflow is limited when a project needs flexible multi-objective costs, custom post-processing, several experiments, or Python-side orchestration. pyFEBiOpt fills that gap by binding SciPy optimizers to FEBio simulations through a featured, easy-to-use optimization engine.
Typical workflow
Prepare experimental data as arrays.
Declare the FEBio material or geometry parameters to fit.
Bind those parameters to locations in a
.febtemplate.Run FEBio for each candidate parameter set.
Read the generated
.xpltoutput.Optionally postprocess results and generate figures with PyVista.
Convert simulation output into residuals for one or more objectives.
Let SciPy drive the next parameter update.
Installation
pyFEBiOpt can be installed in either a standard Python virtual environment or a Conda environment. In both cases, FEBio must be installed separately.
Python virtual environment
Create and activate the environment:
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
Install the published package from PyPI:
pip install pyfebiopt
Or clone the repository and install from the local checkout:
git clone https://gitlab.com/autrera-group/pyfebiopt.git
cd pyfebiopt
pip install .
Conda environment
Create and activate the environment:
conda create -n pyfebiopt python=3.11
conda activate pyfebiopt
python -m pip install --upgrade pip
Install the published package from PyPI:
pip install pyfebiopt
Or clone the repository and install from the local checkout:
git clone https://gitlab.com/autrera-group/pyfebiopt.git
cd pyfebiopt
pip install .
Warning
pyFEBiOpt is exercised on Linux, especially Ubuntu. FEBio itself must be
installed separately and available through the command configured in
RunnerOptions.command or on PATH.