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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dedcd82970de60dd2c7dc48211f29247b52740da3a25ffcb92bf16da51fb2d32
|
|
| MD5 |
7f891712c9d8e0fedc9a17f0ccd0083b
|
|
| BLAKE2b-256 |
b0daffc3256314220b6198a00f6c2dd1bac84ebf0f9286140d8166390ade5a8f
|
Provenance
The following attestation bundles were made for fenicsx_ii-0.4.0.tar.gz:
Publisher:
pypi.yml on scientificcomputing/fenicsx_ii
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fenicsx_ii-0.4.0.tar.gz -
Subject digest:
dedcd82970de60dd2c7dc48211f29247b52740da3a25ffcb92bf16da51fb2d32 - Sigstore transparency entry: 821249037
- Sigstore integration time:
-
Permalink:
scientificcomputing/fenicsx_ii@08b5028c365142416b87b323211f93e1d10ddaac -
Branch / Tag:
refs/tags/v0.4.0 - Owner: https://github.com/scientificcomputing
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@08b5028c365142416b87b323211f93e1d10ddaac -
Trigger Event:
push
-
Statement type: