Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding some slightly better syntax of code blocks #88

Merged
merged 1 commit into from
Oct 8, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 29 additions & 24 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,36 @@
# Crack Propagation in Brittle Materials

## 2024

[![Run Tests in Docker Container](https://github.com/kumiori/irrevolutions/actions/workflows/workflow.yaml/badge.svg)](https://github.com/kumiori/irrevolutions/actions/workflows/workflow.yaml)
[![Test Conda Installation](https://github.com/kumiori/irrevolutions/actions/workflows/conda.yml/badge.svg)](https://github.com/kumiori/irrevolutions/actions/workflows/conda.yml)
[![Test Ubuntu Installation](https://github.com/kumiori/irrevolutions/actions/workflows/ubuntu.yml/badge.svg)](https://github.com/kumiori/irrevolutions/actions/workflows/ubuntu.yml)

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

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.

## 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.
Expand All @@ -39,16 +42,18 @@ Then, install your Python package dependencies with Poetry. After installing sys
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.7.2 mpich pyvista sympy pandas pyyaml
conda activate fenicsx-env
```

- Using Spack
see https://github.com/FEniCS/dolfinx/blob/main/README.md#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
Expand All @@ -61,37 +66,40 @@ For detailed instructions, see https://github.com/FEniCS/dolfinx/blob/main/READM
- Using a Docker container

For an ARM-based machine:
```

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

For an AMD64 machine:
```

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

For a windows box:
```

```bash
docker run --rm -ti -v "C:/...":/home/numerix" -w /home/numerix kumiori3\numerix:stable-amd64
```

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
```python3 -m pip install .```

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

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

Expand All @@ -118,21 +126,18 @@ Each file should have at least the "copyright" line and a pointer to where the f
(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
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
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

<a href="https://star-history.com/#kumiori/irrevolutions&Date">
Expand Down