m_scheme_biofilm_pde

Code corresponding to paper "Robust time-discretisation and linearisation schemes for singular and degenerate evolution systems modelling biofilm growth" implemented in python using FEniCSx. It covers the biofilm model and the porous medium equation.

https://github.com/rsmeets99/m_scheme_biofilm_pde

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.0%) to scientific vocabulary

Keywords

biofilm-growth fenicsx m-scheme numerical-pdes porous-media python
Last synced: 6 months ago · JSON representation ·

Repository

Code corresponding to paper "Robust time-discretisation and linearisation schemes for singular and degenerate evolution systems modelling biofilm growth" implemented in python using FEniCSx. It covers the biofilm model and the porous medium equation.

Basic Info
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
biofilm-growth fenicsx m-scheme numerical-pdes porous-media python
Created almost 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License Citation

README.md

General explanation of this repository

This repository contains all the code used to replicate the results within our paper Robust time-discretisation and linearisation schemes for singular and degenerate evolution systems modelling biofilm growth. The results within the paper were generated with an older version of the code written during my master's thesis in FEniCSx v0.5.1, but for this paper the code has been completely rewritten to make it better readable, easier to customize and updated to the most recent stable version of FEniCSx (v0.7.3) as of paper submission.

If one is interested in the older version for FEniCSx v0.5.1 or if one has any other questions or comments, please feel free to send me an e-mail (robinsmeets99@gmail.com).

How to install

The easiest way to install the prerequisite packages (in my experience) is to first install miniconda or anaconda, and use that to create an environment that contains the packages. See also the official FEniCSx download site link for a how-to (or for more details link). Furthermore, one requires numpy and matplotlib to generate the figures. This means that after installing miniconda or anaconda, one can use the commands

conda create -n fenicsx-env conda activate fenicsx-env conda install -c conda-forge mpich pyvista fenics-dolfinx=0.7.3 numpy=1.26.4 matploblib=3.8.3

to create an environment in which the code can be run. Note that if ones uses windows, the installation must be done through the Windows Subsystem for Linux (WSL/WSL2) and install Ubuntu. Alternatively, FEniCSx can be ran through Docker.

My preferred way of running the code is through WSL within VSCode (see here how to install link).

How to run

Explanation on the different .py scripts is given within the README.md files of their respective directories (biofilm and porous medium equation).

How to view simulations

The simulation data is stored with VTX in a .bp folder. Note that these can be quite big (on the order of gb for larger simulations), which is the reason I could not upload any premade simulations to GitHub (only accepts files smaller than 100 mb). These .bp files can be viewed within ParaView. You want to use the ADIOSVTX2READER to open the data. For 1D one needs the filter plot data, while for 2D one needs the filter scale by scalar to get a 3D plot. For 2D it might also be necessary to go to the properties of the solution and select coloring and then choose u_n instead of solid color to get the plot. Afterwards, one can then use the scale by scalar filter to make a 3D plot.

How to cite

When using the results or code within this repository, we ask you kindly to cite our paper (link to Arxiv). @article{SMSP24, author={Smeets, Robin and Mitra, Koondanibha and Pop, Sorin and Sonner, Stefanie}, journal={arXiv preprint arXiv:2404.00391}, title={Robust time-discretisation and linearisation schemes for singular and degenerate evolution systems modelling biofilm growth}, year={2024} }

Owner

  • Name: Robin Smeets
  • Login: Rsmeets99
  • Kind: user
  • Location: Amsterdam
  • Company: University of Amsterdam

PhD student mathematics at the Korteweg-de Vries Insitute at the University of Amsterdam. Interested in numerical methods for PDEs and machine learning.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this code in your work/research, please cite it using the following metadata."
authors:
- family-names: "Smeets"
  given-names: "Robin"
- family-names: "Mitra"
  given-names: "Koondanibha"
- family-names: "Pop"
  given-names: "Sorin"
- family-names: "Sonner"
  given-names: "Stefanie"
title: "Robust time-discretisation and linearisation schemes for singular and degenerate evolution systems modelling biofilm growth"
date-released: 2024-03-20
contact:
  - affiliation: "Korteweg-de Vries Institute for Mathematics - University of Amsterdam"
    email: "robinsmeets99@gmail.com"
    family-names: Smeets
    given-names: Robin
repository-code: "https://github.com/Rsmeets99/M_scheme_biofilm_PDE"
license: 
  - MIT
preferred-citation:
  type: article
  authors:
  - family-names: "Smeets"
    given-names: "Robin"
  - family-names: "Mitra"
    given-names: "Koondanibha"
  - family-names: "Pop"
    given-names: "Sorin"
  - family-names: "Sonner"
    given-names: "Stefanie"
  title: "Robust time-discretisation and linearisation schemes for singular and degenerate evolution systems modelling biofilm growth"
  journal: "arXiv preprint arXiv:2404.00391"
  year: 2024

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Dependencies

requirements.txt pypi
  • fenics-dolfinx ==0.7.3
  • python ==3.12.2