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.7.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.7.0
File Size Uploaded
fenicsx_ii-0.7.0.tar.gz 35.3 kB Details

Release files / fenicsx_ii-0.7.0.tar.gz

Download URL fenicsx_ii-0.7.0.tar.gz
Size 35.3 kB
Tags Source
SHA-256 checksum
How to use checksums
c010d44fc22155b87e04bbed2dcadf69ce853f105dc4d25e48e53c7144f31b59
BLAKE2b-256 checksum
How to use checksums
0387c594a6159a39d429e746b3f75e9ebec7f34b1304b45da64e902eb1f57f68
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 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.7.0 This release

1 release file

0.6.0

1 release file

0.5.0

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