https://github.com/alan-turing-institute/stat-fem

Python tools for solving data-constrained finite element problems

https://github.com/alan-turing-institute/stat-fem

Science Score: 23.0%

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

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 6 DOI reference(s) in README
  • Academic publication links
    Links to: arxiv.org
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (20.7%) to scientific vocabulary

Keywords

finite-element-analysis hut23 hut23-183 probabilistic-numerics uncertainty-quantification
Last synced: 5 months ago · JSON representation

Repository

Python tools for solving data-constrained finite element problems

Basic Info
  • Host: GitHub
  • Owner: alan-turing-institute
  • License: lgpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 727 KB
Statistics
  • Stars: 13
  • Watchers: 5
  • Forks: 8
  • Open Issues: 16
  • Releases: 0
Archived
Topics
finite-element-analysis hut23 hut23-183 probabilistic-numerics uncertainty-quantification
Created over 6 years ago · Last pushed over 4 years ago
Metadata Files
Readme License

README.md

stat-fem

Python tools for solving data-constrained finite element problems

Build Status codecov Documentation Status

Overview

This package provides a Python implementation of the Statistical Finite Element Method (FEM) as described in the paper by Girolami et al. [1] to use data observations to constrain FEM models. The package builds on top of Firedrake [2] to assemble the underlying FEM system and uses PETSc [3-4] to perform the sparse linear algebra routines. These tools should allow the user to create efficient, scalable solvers based on high level Python code to address challenging problems in data-driven numerical analysis.

Installation

Installing stat-fem

stat-fem requires a working Firedrake installation. The easiest way to obtain Firedrake is to use the installation script provided by the Firedrake project on the firedrake homepage.

bash curl -O https://raw.githubusercontent.com/firedrakeproject/firedrake/master/scripts/firedrake-install python3 firedrake-install --install git+https://github.com/alan-turing-institute/stat-fem#egg=stat-fem

This will install Firedrake and install the stat-fem library inside the Firedrake virtual environment. If this does not work, details on manual installation are provided in the documentation.

Using a Docker Container

Alternatively, we provide a working Firedrake Docker container that has the stat-fem code and dependencies installed within the Firedrake virtual environment. See the docker directory in the stat-fem repository.

Testing the installation

The code comes with a full suite of unit tests. Running the test suite uses pytest and pytest-mpi to collect and run the tests. To run the tests on a single process, simply enter pytest into the running virtual environment from any location in the stat-fem directory. To run the test suite in parallel, enter mpiexec -n 2 python -m pytest --with-mpi or mpiexec -n 4 python -m pytest --with-mpi depending on the number of desired processes to be used. Tests have only been written for 2 and 4 processes, so you may get a failure if you attempt to use other choices for the number of processes.

Example Scripts

An example illustrating the various code capabilities and features is included in the stat-fem/examples directory.

Contact

This software was written by Eric Daub as part of a project with the Research Engineering Group at the Alan Turing Institute.

Any bugs or issues should be filed in the issue tracker on the main Github page.

References

[1] Mark Girolami, Eky Febrianto, Ge Yin, and Fehmi Cirak. The statistical finite element method (statFEM) for coherent synthesis of observation data and model predictions. Computer Methods in Applied Mechanics and Engineering, Volume 375, 2021, 113533, https://doi.org/10.1016/j.cma.2020.113533.

[2] Florian Rathgeber, David A. Ham, Lawrence Mitchell, Michael Lange, Fabio Luporini, Andrew T. T. Mcrae, Gheorghe-Teodor Bercea, Graham R. Markall, and Paul H. J. Kelly. Firedrake: automating the finite element method by composing abstractions. ACM Trans. Math. Softw., 43(3):24:1–24:27, 2016. URL: http://arxiv.org/abs/1501.01809, arXiv:1501.01809, doi:10.1145/2998441.

[3] L. Dalcin, P. Kler, R. Paz, and A. Cosimo, Parallel Distributed Computing using Python, Advances in Water Resources, 34(9):1124-1139, 2011. http://dx.doi.org/10.1016/j.advwatres.2011.04.013

[4] S. Balay, S. Abhyankar, M. Adams, J. Brown, P. Brune, K. Buschelman, L. Dalcin, A. Dener, V. Eijkhout, W. Gropp, D. Karpeyev, D. Kaushik, M. Knepley, D. May, L. Curfman McInnes, R. Mills, T. Munson, K. Rupp, P. Sanan, B. Smith, S. Zampini, H. Zhang, and H. Zhang, PETSc Users Manual, ANL-95/11 - Revision 3.12, 2019. http://www.mcs.anl.gov/petsc/petsc-current/docs/manual.pdf

Owner

  • Name: The Alan Turing Institute
  • Login: alan-turing-institute
  • Kind: organization
  • Email: info@turing.ac.uk

The UK's national institute for data science and artificial intelligence.

GitHub Events

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

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 4
  • Total Committers: 1
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Eric Daub 4****b 4

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 37
  • Total pull requests: 16
  • Average time to close issues: 3 months
  • Average time to close pull requests: 20 days
  • Total issue authors: 1
  • Total pull request authors: 1
  • Average comments per issue: 0.65
  • Average comments per pull request: 0.06
  • Merged pull requests: 16
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • edaub (37)
Pull Request Authors
  • edaub (16)
Top Labels
Issue Labels
documentation (7) bug (2) enhancement (1)
Pull Request Labels

Dependencies

docs/requirements.txt pypi
  • sphinx >3
requirements-dev.txt pypi
  • pytest * development
  • pytest-cov * development
  • pytest-mpi * development
requirements.txt pypi
  • numpy *
  • scipy *
setup.py pypi
  • numpy *
  • scipy *