Mentions légales du service

Skip to content
Snippets Groups Projects

Welcome

Bvpy is a python library, based on FEniCS and GMSH, to easily implement and study numerically Boundary Value Problems (BVPs) as well as Initial Boundary Value Problems (IBVPs) through the Finite Element Method (FEM).

Initially built up in the context of developmental biology and morphomechanics, Bvpy proposes an intuitive API as close as possible to the formal definition of BVPs. Its purpose is to enable users to quickly and efficiently estimate the behavior of a wide variety of fields (scalars, vectors, tensors) on biologically relevant structures (Riemannian and non-Rieamannian manifolds), inspired by biophysical and biochemical processes (morphogene patterning, active matter mechanics, diffusion-reaction processes, active transports...).

Despite this biological motivation, the Bvpy library has been implemented in an agnostic manner that makes it suitable for many other scientific context.

Bvpy

Lead Development: Manuel Petit
Coordination: Olivier Ali
Main Contributors: Florian Gacon
Other Contributors: Guillaume Cerutti, Adrien Heymans, Jonathan Legrand, Gonzalo Revilla
Active team: Inria project team Mosaic
Institutes: Inria
Language: Python
Supported OS: Linux, MacOS
Licence: LGPL
Funding: Inria ADT Gnomon (Christophe Godin)

Documentation

The documentation can be found here.

A quick introduction to boundary-value problems and Initial-Boundary-value problems, as well as a the general philosophy behind the Bvpy library development can be found here.

A detailed description of the main classes and models of the library can be found here.

Some tutorials explaining basic manipulations are gathered here.

Requirements

  • Python 3.9
  • FEniCS 2019.1.0
  • GMSH 4.11

Installation

The full installation procedure is available here.

To install bvpy, follow these steps:

  1. Using Anaconda (recommended for most users):

    • Install with a new environment:

      conda create -n bvpy -c mosaic -c conda-forge bvpy
      conda activate bvpy
    • Or install in an existing environment:

      conda activate <your-environment-name>
      conda install -c mosaic -c conda-forge bvpy
  2. Using Docker:

    • Pull the Docker image:

      docker pull registry.gitlab.inria.fr/mosaic/bvpy:<TAG>
    • Run the container and launch Jupyter Notebook:

      docker run -it -p 8888:8888 registry.gitlab.inria.fr/mosaic/bvpy:<TAG>
      jupyter notebook --ip 0.0.0.0 --no-browser --allow-root --port 8888
  3. From Sources:

    • Clone the repository:

      git clone https://gitlab.inria.fr/mosaic/bvpy.git
      cd bvpy
      conda env create --file conda/env.yaml -n bvpy-dev
      conda activate bvpy-dev
      python -m pip install -e .

Support

If you encounter an error or need help, please raise an issue.

Contributing

Bvpy is a is a collaborative project and contributions are welcome. If you want to contribute, please contact the coordinator prior to any merge request and check the gitlab merge request guidelines if needed.

Citation

If you are using Bvpy in a published work, please use this bibtex entry as reference:

@article{Gacon2021,
doi = {10.21105/joss.02831},
url = {https://doi.org/10.21105/joss.02831},
year = {2021},
publisher = {The Open Journal},
volume = {6},
number = {59},
pages = {2831},
author = {Florian Gacon and Christophe Godin and Olivier Ali},
title = {BVPy: A FEniCS-based Python package to ease the expression and study of boundary value problems in Biology.},
journal = {Journal of Open Source Software}}