Installation
Installation using conda with recommanded dependencies:
$ conda install -c conda-forge -c set3mah fedoo
Minimal installation with pip:
$ pip install fedoo
The required dependencies that are automatically installed with fedoo are:
In addition, the conda package also includes some recommended dependencies:
Full pip install
It is also possible to install fedoo with all recommended dependencies (sparse solver, plotting, IPC contact) in one line:
$ pip install fedoo[all]
This installs the following optional groups: solver, plot,
simcoon, test and ipc.
pyvistaqt, which is required for the viewer, is not included in the all
group. This allows you to choose your preferred Qt binding (pyqt5,
pyqt6 or pyside6). We recommend installing only one of these to avoid
potential library conflicts.
To enable the viewer, you can install the dependencies explicitly:
$ pip install fedoo[all] pyvistaqt pyqt5
Alternatively, use the gui install group that includes pyvistaqt
and pyside6:
$ pip install fedoo[all, gui]
Individual optional groups
You can also install optional groups individually:
$ pip install fedoo[solver] # fast sparse solver (pypardiso or python-mumps)
$ pip install fedoo[plot] # matplotlib + pyvista
$ pip install fedoo[simcoon] # simcoon
$ pip install fedoo[ipc] # IPC contact (ipctk)
$ pip install fedoo[gui] # pyvistaqt + pyside6
Sparse solvers
It is highly recommended to install a fast direct sparse matrix solver to improve performances. fedoo dispatches to the first one available in this priority order: pypardiso → python-mumps → petsc4py:
Pypardiso for intel processors (binding to the pardiso solver).
python-mumps standalone Python bindings for the MUMPS direct solver. Recommended on arm64 (Apple Silicon, ARM Linux) where pypardiso is not available and as a lighter alternative to PETSc when only direct solving is needed.
Petsc4Py mainly compatible with linux or macos including the MUMPS solver. Use this if you need PETSc’s iterative solvers or MPI parallelism.
Scikit-umfpack optional fallback to
python-mumps. Detected automatically if installed, useful in very specific cases (e.g. very small problems, or as a serial backup). Not included in[solver]extras because its install can be tricky on some platforms; install it manually if you need it.
To be able to launch the fedoo viewer, the module pyvistaqt is also required.
Note
On macOS (Apple Silicon especially), prefer conda install -c
conda-forge python-mumps over pip install python-mumps: the
PyPI sdist requires a system MUMPS lib via pkg-config, while the
conda-forge package bundles mumps-seq directly. Pin the BLAS
variant to Accelerate at the same time to route the dense block
kernels through Apple’s vecLib:
$ conda install -c conda-forge "libblas=*=*accelerate" python-mumps
On Linux / AMD, the OpenBLAS variant is the equivalent:
$ conda install -c conda-forge "libblas=*=*openblas" python-mumps
You can verify which BLAS got linked with:
$ python -c "import numpy; numpy.show_config()"
$ otool -L $(python -c 'import numpy.linalg._umath_linalg as m; print(m.__file__)') # macOS
$ ldd $(python -c 'import numpy.linalg._umath_linalg as m; print(m.__file__)') # Linux
Simcoon
Many features (such as finite strain and non-linear constitutive laws) require Simcoon to be installed. Simcoon is available via both pip and conda. To install Simcoon individually, use either:
$ conda install -c conda-forge -c set3mah simcoon
Or:
$ pip install simcoon