Skip to main content

Mixed-dimensional coupling in FEniCSx

Project description

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.

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-

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fenicsx_ii-0.4.0.tar.gz (28.8 kB view details)

Uploaded Source

File details

Details for the file fenicsx_ii-0.4.0.tar.gz.

File metadata

  • Download URL: fenicsx_ii-0.4.0.tar.gz
  • Upload date:
  • Size: 28.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for fenicsx_ii-0.4.0.tar.gz
Algorithm Hash digest
SHA256 dedcd82970de60dd2c7dc48211f29247b52740da3a25ffcb92bf16da51fb2d32
MD5 7f891712c9d8e0fedc9a17f0ccd0083b
BLAKE2b-256 b0daffc3256314220b6198a00f6c2dd1bac84ebf0f9286140d8166390ade5a8f

See more details on using hashes here.

Provenance

The following attestation bundles were made for fenicsx_ii-0.4.0.tar.gz:

Publisher: pypi.yml on scientificcomputing/fenicsx_ii

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page