dolfinx_mpc

Extension for dolfinx to handle multi-point constraints.

https://github.com/jorgensd/dolfinx_mpc

Science Score: 44.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
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary

Keywords

fenicsx finite-element-methods multi-point-constraints
Last synced: 6 months ago · JSON representation ·

Repository

Extension for dolfinx to handle multi-point constraints.

Basic Info
Statistics
  • Stars: 44
  • Watchers: 6
  • Forks: 19
  • Open Issues: 14
  • Releases: 21
Topics
fenicsx finite-element-methods multi-point-constraints
Created almost 6 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Citation

README.md

Multi-point constraints with FEniCS-X

Github Pages SonarCloud

Code Coverage Report

Author: Jørgen S. Dokken

This library contains an add-on to FEniCSx enabling the possibilities of enforce multi-point constraints, such as

$$ui =\sum{j=0,i \neq j}^n \alphaj uj, i\in I_N,$$

where $I_N$ is the set of degrees of freedom to constrain.

This can be used to for instance enforce slip conditions strongly.

Consider a linear system of the form $Au=b$, with the additional constraints written on the form ${K\hat{u}=u}$, where $K$ is a prolongation matrix, $\hat{u}$ is the vector of unknowns excluding the $I_N$ entries.

We then solve the system ${K^T A K \hat{u} = K^T b}$, where $K^T A K$ is symmetric if $A$ was symmetric. For complex numbers, we use the Hermitian transpose and solve the system ${\overline{K^T} A K \hat{u} = \overline{K^T} b}$, where $\overline{K^T}$ is the complex conjugate of $K^T$, and $\overline{K^T} A K$ is Hermitian if $A$ was Hermitian.

If we include boundary conditions on the form $u=g$, we assemble the system ${K^TAK\hat{u} = K^T(b-A\hat{g})}$ where ${A\hat{g}}$ is an extension of the boundary condition $g$ to all degrees of freedom.

The library performs custom matrix and vector assembly adding the extra constraints to the set of linear equations. All assemblies are local to the process, and no MPI communication except when setting up the multi point constraints.

These assemblers are written in C++, but have equivalent Python assemblers in the optional dolfinx_mpc.numba module.

Documentation

Documentation at https://jorgensd.github.io/dolfinx_mpc

Installation

Conda

The DOLFINx MPC package is now on Conda. The C++ library can be found under libdolfinx_mpc and the Python library under dolfinx_mpc. If you have any issues with these installations, add an issue at dolfinx_mpc feedstock.

Docker

Version 0.9.0 is available as an docker image at Github Packages and can be ran using bash docker run -ti -v $(pwd):/root/shared -w /root/shared ghcr.io/jorgensd/dolfinx_mpc:v0.9.0 To change to complex mode run source dolfinx-complex-mode. Similarly, to change back to real mode, call source dolfinx-real-mode.

Source

To install the latest version (main branch), you need to install the latest release of DOLFINx. Easiest way to install DOLFINx is to use docker. The DOLFINx docker images goes under the name dolfinx/dolfinx. Remember to use an appropriate tag to get the correct version of DOLFINx, i.e. (:nightly or :vx.y.z).

To install the dolfinx_mpc-library run the following code from this directory: bash cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -B build-dir cpp/ ninja -j3 install -C build-dir python3 -m pip -v install --config-settings=cmake.build-type="Release" --no-build-isolation ./python -U

Owner

  • Name: Jørgen Schartum Dokken
  • Login: jorgensd
  • Kind: user
  • Location: Oslo
  • Company: Simula Research Laboratory

Senior Research Engineer at Simula Research Laboratory, Oslo, Norway

Citation (CITATION.cff)

cff-version: 1.1.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Dokken
    given-names: Jørgen Schartum
    orcid: https://orcid.org/0000-0001-6489-8858
title: "DOLFINx-MPC"
version: 0.9.0
date-released: 2024-10-15

GitHub Events

Total
  • Create event: 27
  • Release event: 1
  • Issues event: 16
  • Watch event: 12
  • Delete event: 15
  • Issue comment event: 79
  • Push event: 64
  • Pull request review event: 5
  • Pull request review comment event: 6
  • Pull request event: 57
  • Fork event: 6
Last Year
  • Create event: 27
  • Release event: 1
  • Issues event: 16
  • Watch event: 12
  • Delete event: 15
  • Issue comment event: 79
  • Push event: 64
  • Pull request review event: 5
  • Pull request review comment event: 6
  • Pull request event: 57
  • Fork event: 6

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 9
  • Total pull requests: 27
  • Average time to close issues: 13 days
  • Average time to close pull requests: 4 days
  • Total issue authors: 7
  • Total pull request authors: 6
  • Average comments per issue: 0.11
  • Average comments per pull request: 0.52
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 4
Past Year
  • Issues: 9
  • Pull requests: 27
  • Average time to close issues: 13 days
  • Average time to close pull requests: 4 days
  • Issue authors: 7
  • Pull request authors: 6
  • Average comments per issue: 0.11
  • Average comments per pull request: 0.52
  • Merged pull requests: 17
  • Bot issues: 0
  • Bot pull requests: 4
Top Authors
Issue Authors
  • jorgensd (5)
  • MattFerraro (2)
  • pierricmora (1)
  • frlacf (1)
  • lucasmyers97 (1)
  • jorgenin (1)
  • dependabot[bot] (1)
  • adityasatyadeep (1)
  • drew-parsons (1)
  • Alchem334 (1)
  • avharbick (1)
Pull Request Authors
  • jorgensd (41)
  • dependabot[bot] (6)
  • minrk (3)
  • schnellerhase (2)
  • finsberg (1)
  • nennigb (1)
  • bnherrerac (1)
  • CastillonMiguel (1)
Top Labels
Issue Labels
dependencies (1)
Pull Request Labels
dependencies (6) github_actions (4) bug (1)

Dependencies

.github/workflows/build_docs.yml actions
  • actions/checkout v3 composite
  • peaceiris/actions-gh-pages v3 composite
.github/workflows/sonarcloud.yml actions
  • actions/cache v1 composite
  • actions/checkout v2 composite
  • actions/setup-java v1 composite
  • actions/upload-artifact v2 composite
.github/workflows/test_mpc.yml actions
  • actions/checkout v2 composite
.github/workflows/docker.yml actions
  • actions/checkout v3 composite
  • docker/build-push-action v3 composite
  • docker/login-action v2 composite
  • docker/metadata-action v4 composite
  • docker/setup-buildx-action v2 composite
  • docker/setup-qemu-action v2 composite
.github/actions/install-dolfinx/action.yaml actions
  • actions/checkout v4 composite
.github/workflows/deploy-pages.yml actions
  • actions/checkout v4 composite
  • actions/configure-pages v3 composite
  • actions/deploy-pages v2 composite
  • actions/download-artifact v3 composite
  • actions/upload-pages-artifact v2 composite
docker/Dockerfile docker
  • ghcr.io/fenics/dolfinx/dolfinx nightly build
python/pyproject.toml pypi
  • cffi *
  • fenics-dolfinx >=0.8.0.dev0,<0.9.0
  • mpi4py *
  • numpy >=1.21
  • petsc4py *