Variational Solvers for Irreversible Evolutionary Systems

Variational Solvers for Irreversible Evolutionary Systems - Published in JOSS (2024)

https://github.com/kumiori/irrevolutions

Science Score: 100.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
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    3 of 15 committers (20.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

energy evolutionary-algorithms fracture fracture-mechanics nonlinear-systems stability-analysis

Keywords from Contributors

turing-machine standardization pde fenicsx mesh parallel interpretability ode pypi simulations
Last synced: 4 months ago · JSON representation ·

Repository

Computing Irreversible Evolutions

Basic Info
  • Host: GitHub
  • Owner: kumiori
  • License: gpl-3.0
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage:
  • Size: 169 MB
Statistics
  • Stars: 14
  • Watchers: 4
  • Forks: 6
  • Open Issues: 1
  • Releases: 3
Topics
energy evolutionary-algorithms fracture fracture-mechanics nonlinear-systems stability-analysis
Created about 5 years ago · Last pushed 5 months ago
Metadata Files
Readme Contributing Funding License Code of conduct Citation

README.md

Crack Propagation in Brittle Materials

2024

DOI Run Tests in Docker Container Test Conda Installation Test Ubuntu Installation

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 yt$ such that: damage is non-decreasing and the observed state $y_t$ is energy-minimal, among admissible variations.

How to contribute

Reporting bugs

If you find a bug in irrevolutions, please report it on the GitHub issue tracker.

Suggesting enhancements

If you wish to suggest a new feature or an improvement of a current feature, you can submit this on the issue tracker.

Contributing code (submitting a pull request)

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

Installation

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:

  • Using conda

bash conda create -n fenicsx-env -c conda-forge fenics-dolfinx=0.9 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)

```bash 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

  • Using a Docker container

For an ARM-based machine:

bash docker run --rm -ti -v "$(pwd)":/home/numerix -w /home/numerix kumiori3/numerix:0.9

For an AMD64 machine:

bash docker run --rm -ti -v "$(pwd)":/home/numerix -w /home/numerix kumiori3/numerix:amd-0.9

For a windows box within an AMD64 machine:

bash docker run --rm -ti -v "C:/...":/home/numerix" -w /home/numerix kumiori3\numerix:amd-0.9

Clone this repository:

bash git clone https://github.com/kumiori/irrevolutions.gt cd irrevolutions

Finally, irrevolutions can be installed using setuptools from the root directory

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

Acknowledgements

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

License

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

Further information

Star History

Star History Chart

Owner

  • Login: kumiori
  • Kind: user

JOSS Publication

Variational Solvers for Irreversible Evolutionary Systems
Published
December 05, 2024
Volume 9, Issue 104, Page 6897
Authors
Andrés A {León Baldelli} ORCID
Sorbonne Université, CNRS, Institut Jean Le Rond d’Alembert, F-75005 Paris, France
Pierluigi Cesana ORCID
Institute of Mathematics for Industry, Kyushu University, 744 Motooka, Nishi-ku, Fukuoka, 819-0395, Japan.
Editor
Mark A. Jensen ORCID
Tags
evolutions stability bifurcation irreversibility nonlinear nonconvex singular perturbations

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: "Variational Solvers for Irreversible Evolutionary Systems"
message: >
  Three solvers for irreversible evolutionary processes with
  a general energetic notion of stability.
type: software
authors:
  - given-names: "Andrés A"
    family-names: "León Baldelli"
    email: "leon.baldelli@cnrs.fr"
    affiliation: "∂’Alembert Institute, CNRS, Sorbonne Universités"
    orcid: "https://orcid.org/0000-0002-3019-602X"
  - given-names: "Pierluigi"
    family-names: "Cesana"
    orcid: "https://orcid.org/0000-0002-0304-9382"
repository-code: "https://github.com/kumiori/irrevolutions/"
url: "https://irreversible-variational-solvers.readthedocs.io/"
abstract: >
  To study irreversible evolutionary processes with a
  general energetic notion of stability, three nonlinear
  variational solvers are modular components that address
  mathematical problems that are general enough to apply, in
  principle, to systems with instabilities, jumps, and
  emergence of patterns which is commonplace in diverse
  arenas spanning from quantum to continuum mechanics,
  economy, social sciences, and ecology. Our motivation
  proceeds from fracture mechanics, with the ultimate goal
  of deploying a transparent numerical platform for
  scientific validation and prediction of large-scale
  natural fracture phenomena.
keywords:
  - stability
  - bifurcation
  - irreversibility
  - singular perturbations
  - fracture
license: "GPL-3.0"
doi: "10.5281/zenodo.14187154"
message: >
  If you use this software, please cite our article in the
  Journal of Open Source Software.
preferred-citation:
  authors:
    - given-names: "Andrés A"
      family-names: "León Baldelli"
      orcid: "https://orcid.org/0000-0002-3019-602X"
    - given-names: "Pierluigi"
      family-names: "Cesana"
      orcid: "https://orcid.org/0000-0002-0304-9382"
  date-published: "2024-12-05"
  doi: "10.21105/joss.06897"
  issn: "2475-9066"
  issue: "104"
  journal: "Journal of Open Source Software"
  publisher:
    name: "Open Journals"
  start: "6897"
  title: "Variational Solvers for Irreversible Evolutionary Systems"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.06897"
  volume: "9"

GitHub Events

Total
  • Create event: 4
  • Release event: 1
  • Issues event: 2
  • Watch event: 2
  • Delete event: 2
  • Issue comment event: 2
  • Push event: 60
  • Pull request event: 34
  • Fork event: 2
Last Year
  • Create event: 4
  • Release event: 1
  • Issues event: 2
  • Watch event: 2
  • Delete event: 2
  • Issue comment event: 2
  • Push event: 60
  • Pull request event: 34
  • Fork event: 2

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 918
  • Total Committers: 15
  • Avg Commits per committer: 61.2
  • Development Distribution Score (DDS): 0.381
Past Year
  • Commits: 146
  • Committers: 4
  • Avg Commits per committer: 36.5
  • Development Distribution Score (DDS): 0.116
Top Committers
Name Email Commits
andres l****i@c****r 568
kumiori a****i@g****m 268
Ayoub RHOUSNI 5****s 23
SarahTACHET 7****T 22
Jørgen S. Dokken d****n@s****o 11
mbilynsky 7****y 6
dependabot[bot] 4****] 4
jaedong2019 6****9 4
pcesana81 1****1 4
Daniel S. Katz d****z@i****g 2
WissamY97 9****7 2
assalaTrabelsi 4****i 1
francoisfernet 9****t 1
igorassist i****8@g****m 1
ueuzj u****j@s****u 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 14
  • Total pull requests: 92
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 4 days
  • Total issue authors: 2
  • Total pull request authors: 6
  • Average comments per issue: 3.5
  • Average comments per pull request: 0.11
  • Merged pull requests: 83
  • Bot issues: 0
  • Bot pull requests: 5
Past Year
  • Issues: 0
  • Pull requests: 42
  • Average time to close issues: N/A
  • Average time to close pull requests: 7 days
  • Issue authors: 0
  • Pull request authors: 4
  • Average comments per issue: 0
  • Average comments per pull request: 0.17
  • Merged pull requests: 38
  • Bot issues: 0
  • Bot pull requests: 5
Top Authors
Issue Authors
  • jorgensd (12)
  • jhale (4)
Pull Request Authors
  • kumiori (98)
  • pcesana81 (11)
  • dependabot[bot] (9)
  • jorgensd (6)
  • danielskatz (2)
  • mmertterzi (1)
Top Labels
Issue Labels
Pull Request Labels
dependencies (9) github_actions (1)