Skip to main content

phiFEM: convenience tools to use the phiFEM immersed boundary finite element method with dolfinx.

Project description

phiFEM: a convenience package for using $\varphi$-FEM with FEniCSx

This package provides convenience tools that help with the implementation of $\varphi$-FEM schemes in the FEniCSx computation platform.

$\varphi$-FEM (or phiFEM) is an immersed boundary finite element method leveraging levelset functions to avoid the use of any non-standard finite element spaces or non-standard quadrature rules near the boundary of the domain. More information about $\varphi$-FEM can be found in the various publications (see e.g. [^1] and [^2]).

[^1]: M. DUPREZ and A. LOZINSKI, $\varphi$-FEM: A finite element method on domains defined by level-sets, SIAM J. Numer. Anal., 58 (2020), pp. 1008-1028, https://epubs.siam.org/doi/10.1137/19m1248947
[^2]: S. COTIN, M. DUPREZ, V. LLERAS, A. LOZINSKI, and K. VUILLEMOT, $\varphi$-FEM: An efficient simulation tool using simple meshes for problems in structure mechanics and heat transfer, Partition of Unity Methods, (2023), pp. 191-216, https://www.semanticscholar.org/paper/%CF%86-FEM%3A-an-efficient-simulation-tool-using-simple-in-Cotin-Duprez/82f2015ac98f66af115ae57f020b0b1a45c46ad0.

phiFEM Pypi webpage

Dependencies

See phifem-env.yml.

⚠️ Note that all these dependencies (except phifem) are already included in dolfinx Docker container.

Installation

Conda environment

  • Create a phifem Conda environment from the spec file phifem-env.yml:
    conda create -f phifem-env.yml
    
  • Activate the phifem environment:
    conda activate phifem
    

Docker container

The phiFEM package can be used inside the dolfinx container (e.g. ghcr.io/fenics/dolfinx/dolfinx:stable)

  • Launch the dolfinx container in interactive mode using, e.g. Docker (see the docker documentation for the meaning of the different arguments):
    docker run -ti -v $(pwd):/home/dolfinx/shared -w /home/dolfinx/shared dolfinx/dolfinx:stable
    
  • Inside the container install phiFEM via pip:
    pip install phifem
    

Run the demos

The demos can be found on the phiFEM Github repository. To run the demos first clone the repository.

Inside the Docker container/Conda environment:

  • Install the demos dependencies:

    XXX install polars Pyaml
    

    with XXX=pip in the Docker container and XXX=conda in the conda environment.

  • Navigate the demo directory and run it e.g.:

    cd demo/weak-dirichlet/flower
    python main.py bg
    

⚠️ The demo files require arguments, for more info run python main.py -h.

Run the tests

Inside the Docker container/Conda environment:

  • Install pytest:

    XXX install pytest
    

    with XXX=pip in the Docker container and XXX=conda in the Conda environment.

  • Run the tests:

    cd tests
    pytest
    

License

phiFEM is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with phiFEM. If not, see http://www.gnu.org/licenses/.

Logo credit

Frédérique Lecourtier (https://mimesis.inria.fr/members/frederique-lecourtier/)

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

phifem-0.7.0.tar.gz (75.8 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

phifem-0.7.0-py3-none-any.whl (23.8 kB view details)

Uploaded Python 3

File details

Details for the file phifem-0.7.0.tar.gz.

File metadata

  • Download URL: phifem-0.7.0.tar.gz
  • Upload date:
  • Size: 75.8 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for phifem-0.7.0.tar.gz
Algorithm Hash digest
SHA256 31f73da37a1f6d82357c6359bf52b8d03f28cf2b921507f751971fbbcda0a197
MD5 d82ef57ef5c5735441a79dac772be62d
BLAKE2b-256 c27d51b19c013686665960f83472df453862aa4411b46a78f46bef5cf3e71ea6

See more details on using hashes here.

File details

Details for the file phifem-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: phifem-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 23.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for phifem-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d2c570becc190708f83caa27cace58bc590855e32006215e04c9abd5d628917c
MD5 4602746a16b26eac413baa33ab03939b
BLAKE2b-256 992cab0aacc720aa653858db31551df64bfd432d68083bc62b291597cfa89255

See more details on using hashes here.

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