FEniCSx_ii (FEniCSx trace)
FEniCSx_ii is an extension of FEniCSx that allows users to work with non-conforming 3D-1D meshes.
The core algorithm is based on the framework proposed by Kuchta 2021 {cite}intro-Kuchta2021trace
and implemented in FEniCS_ii.
The new framework addresses the limitation of $\mathrm{FEniCS}_{\mathrm{ii}}$ not being MPI compatible.
Currently, the new framework does not use {cite}intro-Mardal2012 cbc.block, and instead
implements the matrix-matrix products in a non-lazy fashion, and uses PETSc Nest matrices
to set up the blocked system.
Given a 3D domain with a function $u\in V(\Omega)$ and a $1D$ domain $\Gamma$. We define a restriction operator $\Pi:V\mapsto L^2(\Gamma)$, which becomes a central part of the variational formulation.
See for instance
D'Angelo & Quarteroni, 2008 {cite}intro-dangelo20083d1d,
Kuchta 2021 {cite}intro-Kuchta2021trace or
Masri, Kuchta & Riviere, 2024 {cite}intro-masri2024coupled3d1d.
Several (non-local) operators are implemented in {py:mod}fenicsx_ii:
- {py:class}
PointwiseTrace<fenicsx_ii.PointwiseTrace>, the operator: $\Pi(u)(\hat x)=u(\hat x)$, $\hat x \in \Gamma$ . - {py:class}
Circle<fenicsx_ii.Circle>, the operator $\Pi(u)(\hat x)=\frac{1}{\vert P_R \vert}\int_{P_{R}(\Gamma(\hat x))}u~\mathrm{d}s$, where $P_R(\Gamma(\hat x))$ is the perimeter of a disk with radius $R$, normal aligning with $\Gamma(\hat x)$ and origin at $\hat x$. - {py:class}
Disk<fenicsx_ii.Disk>, the operator $\Pi(u)(\hat x)=\frac{1}{\vert D_R \vert}\int_{D_R(\Gamma(\hat x))} u~\mathrm{d}x$, where $D_R(\Gamma(\hat x))$ is the disk with radius $R$, normal aligining with $\Gamma(\hat x)$ and origin at $\hat x$.
Any other operator can be implemented by following the {py:class}ReductionOperator<fenicsx_ii.ReductionOperator>-protocol.
Installation
Users are encouraged to install fenicsx_ii with pip in an environment where dolfinx is already installed.
pip
To install the package with pip run
python3 -m pip install fenicsx_ii --no-build-isolation
Note that you should pass the flag --no-build-isolation to pip to avoid issues with the build environment, such as incompatible versions of nanobind.
Funding
The development of FEniCSx_ii has been funded by the Wellcome Trust, grant number: 313298/Z/24/Z
References
:filter: cited
:labelprefix:
:keyprefix: intro-
Release files for fenicsx-ii 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fenicsx_ii-0.5.0.tar.gz | 31.4 kB | Details |
Release files / fenicsx_ii-0.5.0.tar.gz
| Download URL | fenicsx_ii-0.5.0.tar.gz |
|---|---|
| Size | 31.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
249e54316399341df80191a8a7c03f56056b5dfa1849f794df992dd27966b50f
|
|
BLAKE2b-256 checksum How to use checksums |
3e3e826947b0335f635d75bf68ee00643cbb28486a739473d687ac89d86e4792
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 14, 2026.
Transparency log