Skip to content

Guides

Use these pages when you already have a problem definition and want to change one part of its setup. Each guide explains a particular task: configuring execution, supplying coefficients, exchanging meshes or selecting a solver. For the complete variational workflow, start with the API overview. For physical applications and measured performance, explore the Gallery.

Task Guide
Run local problems sequentially or with CPU workers Serial, threads and processes
Distribute local work and the global solve Distributed MPI
Assign local algebra to CUDA devices CUDA and multiple GPUs
Change the material coefficient Heterogeneous coefficients
Associate materials and boundaries with mesh labels Materials and marked meshes
Generate, import and export planar or volume meshes Mesh generation and exchange
Configure Cartesian local and interface meshes Cartesian meshes and local spaces
Write and compile native weak forms UFL and FEniCSx
Supply local equations or use an external solver External and custom providers
Supply a different trace basis or numbering Custom interface spaces
Choose LU, Krylov or AMG and reuse factors Linear solvers
Reuse multiscale responses for changing loads Execution and repeated solves
Evaluate, visualize and export reconstructed fields Visualization

Choose an environment

The package's core works without native FEM, MPI or accelerator imports. Install the dependencies needed by the selected task as described in installation. In a checkout, use the checked-in Pixi lockfile:

Task Locked profile Additional capabilities
UFL local assembly and CPU workers introduction DOLFINx, UFL, Basix and a C compiler
Native local PARDISO introduction-intel The FEM stack and MKL/PyPardiso
Distributed MPI with UFL introduction MPI, PETSc and MUMPS
CUDA local factorization introduction-gpu CuPy, cuDSS and a supported CUDA device/driver
Mesh generation and exchange meshing Gmsh, Netgen and meshio

The Windows guide describes its native FEM, solver and CUDA requirements. Distributed PETSc/MUMPS uses the supported Unix environments. Selecting a GPU solver changes numerical algebra; it does not move UFL assembly to the device.