Skip to main content

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)

Source distribution for fenicsx-ii 0.5.0
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

Release history Release notifications | RSS feed

0.7.0

1 release file

0.6.0

1 release file

This release

0.5.0 This release

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page