Installation#

femorph-solver requires Python 3.10 or newer.

pip install femorph-solver
uv pip install femorph-solver

Optional extras#

The core install ships with NumPy / SciPy / pyvista only — enough for the SuperLU direct-solve fallback and all in-process modal / static / transient analyses. For the fastest SPD paths and for MAPDL deck interop, install one or more extras:

Extra

Install as

What it adds

mapdl

pip install "femorph-solver[mapdl]"

CDB / RST reader (mapdl-archive, ansys-mapdl-reader)

cholmod

pip install "femorph-solver[cholmod]"

SuiteSparse CHOLMOD Cholesky — fastest SPD direct solve for sparse problems. Requires libsuitesparse-dev.

pardiso

pip install "femorph-solver[pardiso]"

Intel MKL PARDISO — multi-threaded SPD direct solve.

umfpack

pip install "femorph-solver[umfpack]"

SuiteSparse UMFPACK — sparse LU for non-symmetric systems.

pyamg

pip install "femorph-solver[pyamg]"

Algebraic multigrid preconditioner.

primme

pip install "femorph-solver[primme]"

PRIMME block-Davidson eigensolver.

solvers

pip install "femorph-solver[solvers]"

Convenience: everything except the per-backend quirks.

Every optional backend is detected at call time via femorph_solver.solvers.linear.list_linear_solvers() and femorph_solver.solvers.eigen.list_eigen_solvers() — if an extra isn’t installed, the corresponding name drops out of the registry and linear_solver="auto" falls through to the next best option.