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.dev0.tar.gz (28.8 kB view details)

Uploaded Source

File details

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

File metadata

  • Download URL: fenicsx_ii-0.4.0.dev0.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.dev0.tar.gz
Algorithm Hash digest
SHA256 8fb48a7ec4d56c0f28c324f2c10d505a31edcd1a4f5bcdd6587f96e624e4ef44
MD5 b80f7aad2a8c512be8f8dabf132b29b5
BLAKE2b-256 2406a5ad7645d5d68281cc6f91b69a40559cf75d9889e90d954a7a871bf82e8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for fenicsx_ii-0.4.0.dev0.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