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/.

You might also like...
UA-GEC: Grammatical Error Correction and Fluency Corpus for the Ukrainian Language

UA-GEC: Grammatical Error Correction and Fluency Corpus for the Ukrainian Language This repository contains UA-GEC data and an accompanying Python lib

Neural Reprojection Error: Merging Feature Learning and Camera Pose Estimation
Neural Reprojection Error: Merging Feature Learning and Camera Pose Estimation

Neural Reprojection Error: Merging Feature Learning and Camera Pose Estimation This is the official repository for our paper Neural Reprojection Error

PyTorch impelementations of BERT-based Spelling Error Correction Models.

PyTorch impelementations of BERT-based Spelling Error Correction Models. 基于BERT的文本纠错模型,使用PyTorch实现。

PyTorch impelementations of BERT-based Spelling Error Correction Models

PyTorch impelementations of BERT-based Spelling Error Correction Models

Pandas and Dask test helper methods with beautiful error messages.
Pandas and Dask test helper methods with beautiful error messages.

beavis Pandas and Dask test helper methods with beautiful error messages. test helpers These test helper methods are meant to be used in test suites.

 pydantic-i18n is an extension to support an i18n for the pydantic error messages.
pydantic-i18n is an extension to support an i18n for the pydantic error messages.

pydantic-i18n is an extension to support an i18n for the pydantic error messages

Graph-based community clustering approach to extract protein domains from a predicted aligned error matrix
Graph-based community clustering approach to extract protein domains from a predicted aligned error matrix

Using a predicted aligned error matrix corresponding to an AlphaFold2 model , returns a series of lists of residue indices, where each list corresponds to a set of residues clustering together into a pseudo-rigid domain.

[EMNLP 2021] LM-Critic: Language Models for Unsupervised Grammatical Error Correction
[EMNLP 2021] LM-Critic: Language Models for Unsupervised Grammatical Error Correction

LM-Critic: Language Models for Unsupervised Grammatical Error Correction This repo provides the source code & data of our paper: LM-Critic: Language M

Sentry is cross-platform application monitoring, with a focus on error reporting.
Sentry is cross-platform application monitoring, with a focus on error reporting.

Users and logs provide clues. Sentry provides answers. What's Sentry? Sentry is a service that helps you monitor and fix crashes in realtime. The serv

A meme error handler for python
A meme error handler for python

Pwython OwO what's this? Pwython is project aiming to fill in one of the biggest problems with python, which is that it is slow lacks owoified text. N

Alarmer is a tool focus on error reporting for your application.

alarmer Alarmer is a tool focus on error reporting for your application. Installation pip install alarmer Usage It's simple to integrate alarmer in yo

MEDS: Enhancing Memory Error Detection for Large-Scale Applications

MEDS: Enhancing Memory Error Detection for Large-Scale Applications Prerequisites cmake and clang Build MEDS supporting compiler $ make Build Using Do

Propose a principled and practically effective framework for unsupervised accuracy estimation and error detection tasks with theoretical analysis and state-of-the-art performance.
Propose a principled and practically effective framework for unsupervised accuracy estimation and error detection tasks with theoretical analysis and state-of-the-art performance.

Detecting Errors and Estimating Accuracy on Unlabeled Data with Self-training Ensembles This project is for the paper: Detecting Errors and Estimating

Chinese Grammatical Error Diagnosis

nlp-CGED Chinese Grammatical Error Diagnosis 中文语法纠错研究 基于序列标注的方法 所需环境 Python==3.6 tensorflow==1.14.0 keras==2.3.1 bert4keras==0.10.6 笔者使用了开源的bert4keras

Hamming code generation, error detection & correction.

Hamming code generation, error detection & correction.

A Powerful Serverless Analysis Toolkit That Takes Trial And Error Out of Machine Learning Projects
A Powerful Serverless Analysis Toolkit That Takes Trial And Error Out of Machine Learning Projects

KXY: A Seemless API to 10x The Productivity of Machine Learning Engineers Documentation https://www.kxy.ai/reference/ Installation From PyPi: pip inst

Prevent `CUDA error: out of memory` in just 1 line of code.
Prevent `CUDA error: out of memory` in just 1 line of code.

🐨 Koila Koila solves CUDA error: out of memory error painlessly. Fix it with just one line of code, and forget it. 🚀 Features 🙅 Prevents CUDA error

Built on python (Mathematical straight fit line coordinates error predictor machine learning foundational model)

Sum-Square_Error-Business-Analytical-Tool- Built on python (Mathematical straight fit line coordinates error predictor machine learning foundational m

Provide error messages for Python exceptions, even if the original message is empty

errortext is a Python package to provide error messages for Python exceptions, even if the original message is empty.

Owner
Jack S. Hale
Research Scientist in Computational Engineering at University of Luxembourg. FEniCS Project Steering Council Member.
Jack S. Hale
Deep Reinforcement Learning by using an on-policy adaptation of Maximum a Posteriori Policy Optimization (MPO)

V-MPO Simple code to demonstrate Deep Reinforcement Learning by using an on-policy adaptation of Maximum a Posteriori Policy Optimization (MPO) in Pyt

Nugroho Dewantoro 9 Jun 6, 2022
PyTorch framework, for reproducing experiments from the paper Implicit Regularization in Hierarchical Tensor Factorization and Deep Convolutional Neural Networks

Implicit Regularization in Hierarchical Tensor Factorization and Deep Convolutional Neural Networks. Code, based on the PyTorch framework, for reprodu

Asaf 3 Dec 27, 2022
Code for Quantifying Ignorance in Individual-Level Causal-Effect Estimates under Hidden Confounding

?? quince Code for Quantifying Ignorance in Individual-Level Causal-Effect Estimates under Hidden Confounding ?? Installation $ git clone [email protected]

Andrew Jesson 19 Jun 23, 2022
Program that estimates antiderivatives utilising Maclaurin series.

AntiderivativeEstimator Program that estimates antiderivatives utilising Maclaurin series. Setup: Needs Python 3 and Git installed and added to PATH.

James Watson 3 Aug 4, 2021
A real-time motion capture system that estimates poses and global translations using only 6 inertial measurement units

TransPose Code for our SIGGRAPH 2021 paper "TransPose: Real-time 3D Human Translation and Pose Estimation with Six Inertial Sensors". This repository

Xinyu Yi 261 Dec 31, 2022
Howell County, Missouri, COVID-19 data and (unofficial) estimates

COVID-19 in Howell County, Missouri This repository contains the daily data files used to generate my COVID-19 dashboard for Howell County, Missouri,

Jonathan Thornton 0 Jun 18, 2022
LBK 20 Dec 2, 2022
Sentry is cross-platform application monitoring, with a focus on error reporting.

Users and logs provide clues. Sentry provides answers. What's Sentry? Sentry is a service that helps you monitor and fix crashes in realtime. The serv

Sentry 33k Jan 4, 2023
UA-GEC: Grammatical Error Correction and Fluency Corpus for the Ukrainian Language

UA-GEC: Grammatical Error Correction and Fluency Corpus for the Ukrainian Language This repository contains UA-GEC data and an accompanying Python lib

Grammarly 227 Jan 2, 2023
qecsim is a Python 3 package for simulating quantum error correction using stabilizer codes.

qecsim qecsim is a Python 3 package for simulating quantum error correction using stabilizer codes.

null 44 Dec 20, 2022