$npx skillfedfor your agent

scikit-fem

Simple finite element assemblers

Worth itPyPI MathematicsReleased Jun 2026288.6K downloads / mopermissive licensePure Python

Decision gist · record as of 2026-08-14

pure-Python wheel — scikit_fem-12.0.2-py3-none-any.whl
v12.0.2 · released 2026-06-05 · Python >=3.10 · 2 runtime deps: numpy, scipy

Yes. Active maintenance, permissive 3-clause BSD license, low install friction, and no known vulnerabilities make it a solid choice. The pure-Python design trades some speed for accessibility and ease of modification. Install if you need finite element assembly in Python and can accept that linear solve performance will dominate for large problems—the library excels at the assembly step itself.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • Requires Python 3.10 or later.
  • Low friction install with only numpy and scipy as core dependencies; pure Python with no compiled code.
  • Active maintenance with latest release 70 days ago and steady repository activity.

License · maintenance · safety

permissive license (permissive) — Licensed under 3-clause BSD (permissive), allowing commercial and private use with minimal restrictions; no copyleft obligations.

last release 2026-06-05 (70 days) · last repo commit 2026-08-06 · 644 stars

0 known vulnerabilities (OSV.dev, 2026-08-14) · 288,590 downloads/mo, #8,019 on PyPI

Verify before relying

pip install scikit-fem

from scikit_fem import *
from scikit_fem.helpers import dot, grad

mesh = MeshTri().refined(4)
basis = Basis(mesh, ElementTriP1())

@BilinearForm
def laplace(u, v, _):
    return dot(grad(u), grad(v))

A = laplace.assemble(basis)
  • Performance scaling characteristics for very large problems beyond 1M degrees-of-freedom.
  • Availability and maturity of optional autodiff and supermeshing submodules requiring jax and shapely.
  • Memory usage and solver performance characteristics for problems at the largest scales shown in benchmark.
Same gist for agents: .md · .json

What it is and what it does

scikit-fem is a pure Python library that converts mathematical finite element forms into sparse matrices and vectors suitable for numerical solving. It handles the core assembly task in finite element analysis—taking weak formulations of PDEs and producing the linear systems that solvers need. The library supports a wide range of element types (linear and higher-order, including specialized elements like Raviart-Thomas and Nédélec) and works with 1D, 2D, and 3D meshes.

The package is designed for researchers and engineers solving PDEs via the finite element method. It has minimal dependencies (only numpy and scipy for core functionality), contains no compiled code, and integrates with scipy's sparse solvers. Optional dependencies add mesh I/O and visualization. Assembly performance is competitive for many problem sizes, with benchmark data showing assembly times scale predictably up to large degree-of-freedom counts.

Use it for

  • Solve Poisson, Laplace, and other elliptic PDEs on unstructured meshes using Python.
  • Assemble stiffness and mass matrices for structural mechanics or heat transfer problems.
  • Prototype finite element formulations with custom bilinear and linear forms before optimization.
  • Work with specialized elements for mixed or vector-valued problems in electromagnetics or fluid dynamics.
  • Load and process meshes from external formats and solve coupled multiphysics problems.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Worth it

Yes.

Active maintenance, permissive 3-clause BSD license, low install friction, and no known vulnerabilities make it a solid choice. The pure-Python design trades some speed for accessibility and ease of modification. Install if you need finite element assembly in Python and can accept that linear solve performance will dominate for large problems—the library excels at the assembly step itself.

Install

scikit-fem on PyPI

Before you install

Low friction install with only numpy and scipy as core dependencies; pure Python with no compiled code. Active maintenance with latest release 70 days ago and steady repository activity.

Requires Python 3.10 or later.

License in practice

Licensed under 3-clause BSD (permissive), allowing commercial and private use with minimal restrictions; no copyleft obligations.

Quickstart

pip install scikit-fem

from scikit_fem import *
from scikit_fem.helpers import dot, grad

mesh = MeshTri().refined(4)
basis = Basis(mesh, ElementTriP1())

@BilinearForm
def laplace(u, v, _):
    return dot(grad(u), grad(v))

A = laplace.assemble(basis)

Verify before relying

  • Performance scaling characteristics for very large problems beyond 1M degrees-of-freedom.
  • Availability and maturity of optional autodiff and supermeshing submodules requiring jax and shapely.
  • Memory usage and solver performance characteristics for problems at the largest scales shown in benchmark.

Package facts

Licensepermissive license permissive
Python supportSupports the current Python release >=3.10
Install frictionLow. Pure-Python wheel
Runtime dependencies
2 packages
numpyscipy
MaintenanceActively maintained 70 days since the last release
Last repo commit
First released
Downloads288,590 / month, #8,019 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Intended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseOperating System :: OS IndependentProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14

Evidence: scikit_fem-12.0.2-py3-none-any.whl

Tags

Capabilities
finite element assemblybilinear form to matrixFEM sparse matrixfinite element method Pythontetrahedral element basisRaviart-Thomas elementsFEA matrix assembly
Topics
finite-elementspde-solvernumerical-methods

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “finite element assembly”

  • scikit-femTransforms bilinear and linear forms into sparse matrices and vectors…
  • gmshGmsh is a three-dimensional finite element mesh generator that wraps…
  • openseespylinuxOpenSeesPy Linux provides a Python interface to OpenSees, an…

Give your agent the search over MCP, or paste the wish link into any chat.

More Mathematics packages

networkx Worth it
PyPI · Python Modules · released Dec 2025

NetworkX provides data structures and algorithms for creating, analyzing, and manipulating graphs and networks, supporting everything from simple undirected graphs to complex directed and weighted networks.

BSD-3-Clausepure Python
290.9Mdownloads / mo
kiwisolver Worth it
PyPI · Mathematics · released Mar 2026

kiwisolver is a Python binding to a fast C++ implementation of the Cassowary constraint solver, enabling you to solve systems of linear constraints and inequalities.

Install it if you need to solve constraint systems; skip it if you only need simple linear algebra.

BSD-3-Clausecompiled wheel · 3.10+
205.5Mdownloads / mo
sympy Worth it
PyPI · Scientific/Engineering · released Apr 2025

SymPy is a Python library for symbolic mathematics, performing algebraic manipulation, calculus, equation solving, and mathematical expression simplification without numerical approximation.

BSD-3-Clausepure Python · 3.9+
196.4Mdownloads / mo
contourpy Worth it
PyPI · Information Analysis · released Jul 2025

ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.

BSD-3-Clausecompiled wheel · 3.11+
191.2Mdownloads / mo
torch With conditions
PyPI · Software Development · released Jul 2026

PyTorch provides GPU-accelerated tensor computation and automatic differentiation for building and training deep neural networks in Python.

Apache-2.0 AND Apache-2.0 WITH LLVM-exception AND BSD-2-Clause AND BSD-3-Clause AND BSL-1.0 AND MITcompiled wheel · 3.10+
102.5Mdownloads / mo
onnxruntime Worth it
PyPI · Software Development · released Jul 2026

onnxruntime loads and executes Open Neural Network Exchange (ONNX) models with a focus on inference performance across CPUs and accelerators.

Install it if you have ONNX models to run in production or development.

MITcompiled wheel · 3.11+
89.3Mdownloads / mo

See also PyNiteFEA · anastruct · tetgen · gmsh · cytriangle · linear-operator · pygmsh · spglm · meshio · tabmat