External operators within FEniCSx/DOLFINx

External operators within FEniCSx/DOLFINx#

Authors:

About the project#

This project introduces the dolfinx-external-operator framework that implements an external operator concept within the DOLFINx library. It allows to assemble forms containing symbolic objects, which are not expressible via Unified Form Language (UFL), and lets the user define the behaviour of these objects and their derivatives using third-party packages. The data manipulation between external software and DOLFINx is performed through ndarray-like objects of the Numpy package.

Although the framework may be applied to a wide range of scientific problems, during the development of our framework we were mainly focused on expressing general constitutive models of solid mechanics problems in FEniCS. This webpage contains several tutorials on plasticity problems.

In particular, the framework allows the DOLFINx library to use automatic differentiation (AD). See this tutorial for further details, where the constitutive model of the plasticity problem is solved via the JAX package, a robust AD software.

The framework is based on the UFL extension proposed by Bouziani and Ham [2021], where the concept of the external operator was originally introduced.

Installation#

This project extends the functionality of DOLFINx, so please ensure that you installed the FEniCSx environment first.

Installation of the dolfinx-external-operator package:

pip install .

Acknowledgments & license#

This research was funded in whole, or in part, by the Luxembourg National Research Fund (FNR), grant reference PRIDE/21/16747448/MATHCODA. For the purpose of open access, and in fulfilment of the obligations arising from the grant agreement, the author has applied a Creative Commons Attribution 4.0 International (CC BY 4.0) license to any Author Accepted Manuscript version arising from this submission.

This project is created using the open source Jupyter Book project and the webpage of dolfinx-tutorial as a template.

[BH21]

Nacime Bouziani and David A. Ham. Escaping the abstraction: a foreign function interface for the Unified Form Language [UFL]. November 2021. arXiv:2111.00945 [cs, math]. URL: http://arxiv.org/abs/2111.00945 (visited on 2023-11-27), doi:10.48550/arXiv.2111.00945.