Irrevolutions
is a computational stability analysis toolkit designed to solve nonlinear and nonconvex evolutionary problems using advanced numerical methods. It provides efficient algorithms for computing solutions for constrained minimum problems with application to irreversible evolutions (hence its name). In particular, this framework is relevant in the context of fracture and damage mechanics.
Irreversible Evolution of Damage
Let $y=(\alpha, u)$ be an admissible state of a brittle system where $\alpha: \Omega \mapsto [0, 1]$ is a smooth damage field which identifies cracks (where $\alpha =1$) and $u$ is a displacement field. Provided a material model (an energy functional) $E_\ell$, given a time horizon $T$, let's find a map $t \in [0, T]\mapsto y_t$ such that: damage is non-decreasing and the observed state $y_t$ is energy-minimal, among admissible variations.
If you find a bug in irrevolutions
, please report it on the GitHub issue tracker.
If you wish to suggest a new feature or an improvement of a current feature, you can submit this on the issue tracker.
To contribute code irrevolutions
, create a pull request. If you want to contribute, but are unsure where to start, get in touch with the authors.
On opening a pull request, unit tests will run on GitHub Continuous Integration. You can click on these in the pull request to see where (if anywhere) the tests are failing.
For more details on the pull request workflow, check https://docs.godotengine.org/en/3.1/community/contributing/pr_workflow.html
Before installing irrevolutions
, ensure you have dolfinx
and other dependencies installed.
DOLFINx (and some other libraries like MPI and PyVista) have complex dependencies, it may be best to install them using conda from the conda-forge channel. Conda handles the environment setup and dependency conflicts well for these low-level libraries. Otherwise, you install from source using Spack or us a pre-built docker image.
Then, install your Python package dependencies with Poetry. After installing system-level dependencies with Conda (or another method), you can use Poetry to manage the Python-specific packages and virtual environment for your project. Poetry will not attempt to reinstall DOLFINx or other system-level packages.
More specifically, you can install dolfinx
using one of the following methods:
conda create -n fenicsx-env -c conda-forge fenics-dolfinx=0.7.2 mpich pyvista sympy pandas pyyaml
conda activate fenicsx-env
Using Spack see https://github.com/FEniCS/dolfinx/blob/main/README.md#spack
Using Apt (ubuntu 23.04 build)
apt-get install -y software-properties-common python3-pip git libgl1-mesa-glx xvfb libglu1 libxcursor1 libxinerama1
add-apt-repository ppa:fenics-packages/fenics
apt update
apt-install fenicsx
For detailed instructions, see https://github.com/FEniCS/dolfinx/blob/main/README.md#installation
For an ARM-based machine:
docker run --rm -ti -v "$(pwd)":/home/numerix -w /home/numerix kumiori3/numerix:stable
For an AMD64 machine:
docker run --rm -ti -v "$(pwd)":/home/numerix -w /home/numerix kumiori3/numerix:stable-amd64
For a windows box:
docker run --rm -ti -v "C:/...":/home/numerix" -w /home/numerix kumiori3\numerix:stable-amd64
Clone this repository:
git clone https://github.com/kumiori/irrevolutions.gt
cd irrevolutions
Finally, irrevolutions
can be installed using setuptools from the root directory
python3 -m pip install .
This code was initially conceived as a support for the teaching course MEC647, (Complex) Crack Propagation in Brittle Materials, delivered to the students of the international master programme, joint between École Polytechnique and ENSTA-Paristech throughout 2020-2022.
To all the students for their effort, participation, and motivation.
This project contains code from the DOLFINy project (https://github.com/fenics-dolfiny/dolfiny), which is licensed under the LGPLv3 license. We acknowledge and thank the DOLFINy contributors for their work.
See paper.md
See LICENSE
file.
Each file should have at least the "copyright" line and a pointer to where the full notice is found.
<Irrevolutions is scientific software, it is conceived to compute evolution paths upon a general notion of (unilateral) stability. It applies to fracture and, maybe, not only.>
Copyright or copyLeft (C) <~0> <ALB/83252>
This program is free software. Here, the term 'free' has all to do
with freedom and nothing to do with price. You can redistribute it and/or
modify it under the terms of the GNU 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 without hope that it will be useful,
WITHOUT ANY WARRANTY, but with pointers to ONE or SEVERAL PROOFS; without
even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE,
if-not to compute constrained evolutions of complex systems, whether Natural
or Social. THIS MATERIAL IS BASED UPON GENERAL RESULTS. See the GNU General
Public License for more details, see your favourite Functional Analysis reference
book for further abstraction.
You should have received a copy of the GNU General Public License
along with `irrevolution`. If not, see <https://www.gnu.org/licenses/>.