Implicit hierarchical a posteriori error estimates in FEniCSx

Overview

FEniCSx Error Estimation (FEniCSx-EE)

Description

FEniCSx-EE is an open source library showing how various error estimation strategies can be implemented in the FEniCSx Project finite element solver (https://fenicsproject.org). A particular focus is on implicit hierarchical a posteriori error estimators, that usually involve solving local error problems in special finite element spaces on cells of the mesh.

FEniCSx-EE is described in the pre-print:

Hierarchical a posteriori error estimation of Bank-Weiser type in the FEniCS Project, R. Bulle, J. S. Hale, A. Lozinski, S. P. A. Bordas, F. Chouly, (https://arxiv.org/abs/2102.04360).

FEniCS-EE is compatible with the development version of the FEniCSx Project (https://github.com/FEniCS).

A version for FEniCS 2019.1.0 is available at (https://github.com/rbulle/fenics-error-estimation).

Features

FEniCS-EE currently includes implementations of the following error estimation techniques for the Poisson problem:

  • Implicit residual estimator of Bank and Weiser.

Upcoming features

  • Implicit residual estimator of Verfürth,

the following error estimation techniques for the incompressible elasticity problem:

and the following error estimation techniques for the Stokes problem:

The following marking strategies:

  • Maximum (bulk),
  • Dörfler (equilibration).

Getting started

  1. Then, clone this repository using the command:

    git clone https://github.org/jhale/fenicsx-error-estimation
    
  2. We currently require a custom build of FEniCSx:

    cd docker
    ./build-images.sh
    cd ../
    ./launch-container.sh
    
  3. You should now have a shell inside a container with FEniCS installed. Try out an example:

    python3 setup.py install
    cd demo/pure_dirichlet
    python3 demo_pure-dirichlet.py
    

    The resulting fields are written to the directory output/ which will be shared with the host machine. These files can be opened using Paraview.

Automated testing

We use GitHub Actions to perform automated testing. All documented demos include basic sanity checks on the results.

FAQ

TODO

Citing

Please consider citing the FEniCS-EE paper and code if you find it useful.

@misc{bulle2021hierarchical,
    title={Hierarchical a posteriori error estimation of Bank-Weiser type in the FEniCS Project},
    author={Raphaël Bulle and Jack S. Hale and Alexei Lozinski and Stéphane P. A. Bordas and Franz Chouly},
    year={2021},
    eprint={2102.04360},
    archivePrefix={arXiv},
    primaryClass={math.NA}
}

@misc{bulle_fenics-ee_2019,
      title = {{FEniCS} {Error} {Estimation} {(FEniCS-EE)}},
      author = {Bulle, Raphaël, and Hale, Jack S.},
      month = jan,
      year = {2019},
      doi = {10.6084/m9.figshare.10732421},
      keywords = {FEniCS, finite element methods, error estimation},
}

along with the appropriate general FEniCS citations.

Issues and Support

Please use the issue tracker to report any issues.

Authors (alphabetical)

Raphaël Bulle, University of Luxembourg, Luxembourg.
Jack S. Hale, University of Luxembourg, Luxembourg.

License

FEniCSx-EE 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 FEniCSx-EE. If not, see http://www.gnu.org/licenses/.

Owner
Jack S. Hale
Research Scientist in Computational Engineering at University of Luxembourg. FEniCS Project Steering Council Member.
Jack S. Hale
Generates a random prnt.sc link and display image.

Generates a random prnt.sc link and display image.

Emirhan 3 Oct 08, 2021
Password generator

Password generator technologies used What is? It is Password generator How to Download? Download on releases Clone repo git clone https://github.com/m

Miek 1 Nov 02, 2021
A python module to manipulate XCode projects

This module can read, modify, and write a .pbxproj file from an Xcode 4+ projects. The file is usually called project.pbxproj and can be found inside the .xcodeproj bundle. Because some task cannot b

Ignacio Calderon 1.1k Jan 02, 2023
✨ Un DNS Resolver totalement fait en Python par moi, et en français

DNS Resolver ❗ Un DNS Resolver totalement fait en Python par moi, et en français. 🔮 Grâce a une adresse (url) vous pourrez avoir l'ip ainsi que le DN

MrGabin 3 Jun 06, 2021
Check the basic quality of any dataset

Data Quality Checker in Python Check the basic quality of any dataset. Sneak Peek Read full tutorial at Medium. Explore the app Requirements python 3.

MalaDeep 8 Feb 23, 2022
Aggregating gridded data (xarray) to polygons

A package to aggregate gridded data in xarray to polygons in geopandas using area-weighting from the relative area overlaps between pixels and polygons.

Kevin Schwarzwald 42 Nov 09, 2022
Hot reloading for Python

Hot reloading for Python

Olivier Breuleux 769 Jan 03, 2023
cssOrganizer - organize a css file by grouping them into categories

This python project was created to scan through a CSS file and produce a more organized CSS file by grouping related CSS Properties within selectors. Created in my spare time for fun and my own utili

Andrew Espindola 0 Aug 31, 2022
NetConfParser is a tool that helps you analyze the rpcs coming and going from a netconf client to a server

NetConfParser is a tool that helps you analyze the rpcs coming and going from a netconf client to a server

Aero 1 Mar 31, 2022
aws ec2.py companion script to generate sshconfigs with auto bastion host discovery

ec2-bastion-sshconfig This script will interate over instances found by ec2.py and if those instances are not publically accessible it will search the

Steve Melo 1 Sep 11, 2022
Entropy-controlled contexts in Python

Python module ordered ordered module is the opposite to random - it maintains order in the program. import random x = 5 def increase(): global x

HyperC 36 Nov 03, 2022
We provide useful util functions. When adding a util function, please add a description of the util function.

Utils Collection Motivation When we implement codes, we often search for util functions that are already implemented. Here, we are going to share util

6 Sep 09, 2021
Create powerful passwords easily and with many options with this program

Password_Generator About the Program: You can create powerful passwords with this program with many options easily! Features: You can copy the generat

Sina.f 0 Jul 14, 2022
A Python library for reading, writing and visualizing the OMEGA Format

A Python library for reading, writing and visualizing the OMEGA Format, targeted towards storing reference and perception data in the automotive context on an object list basis with a focus on an urb

Institut für Kraftfahrzeuge, RWTH Aachen, ika 12 Sep 01, 2022
A Randomizer Oracle

Tezos Randomizer Tezod Randomizer "Oracle". It's a smart contract that you can call to get a random number between X and Y (for now). It uses entropy

Asbjorn Enge 19 Sep 13, 2022
A python package containing all the basic functions and classes for python. From simple addition to advanced file encryption.

A python package containing all the basic functions and classes for python. From simple addition to advanced file encryption.

PyBash 11 May 22, 2022
This is discord nitro code generator and checker made with python. This will generate nitro codes and checks if the code is valid or not. If code is valid then it will print the code leaving 2 lines and if not then it will print '*'.

Discord Nitro Generator And Checker ⚙️ Rᴜɴ Oɴ Rᴇᴘʟɪᴛ 🛠️ Lᴀɴɢᴜᴀɢᴇs Aɴᴅ Tᴏᴏʟs If you are taking code from this repository without a fork, then atleast

Vɪɴᴀʏᴀᴋ Pᴀɴᴅᴇʏ 37 Jan 07, 2023
A small python library that helps you to generate localization strings for your mobile projects.

LocalizationUtiltiy A small python library that helps you to generate localization strings for your mobile projects. This small script aims to help yo

1 Nov 12, 2021
Run functions in parallel easily, with their results typed correctly!

typesafe_parmap pip install pip install typesafe-parmap Run functions in parallel safely with typesafe parmap! GitHub: https://github.com/thejaminato

James Chua 3 Nov 06, 2021
Set of utilities for exporting/controlling your robot in Blender

Blender Robotics Utils This repository contains utilities for exporting/controlling your robot in Blender Maintainers This repository is maintained by

Robotology 33 Nov 30, 2022