Skip to content

Bump version numbers #149

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

Merged
merged 1 commit into from
Oct 12, 2023
Merged
Show file tree
Hide file tree
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
15 changes: 6 additions & 9 deletions .github/workflows/book_stable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,25 @@ env:
jobs:
build-book:
runs-on: ubuntu-latest
container: ghcr.io/fenics/dolfinx/lab:v0.6.0-r1
container: ghcr.io/fenics/dolfinx/lab:v0.7.0

env:
PYVISTA_TRAME_SERVER_PROXY_PREFIX: '/proxy/'
PYVISTA_TRAME_SERVER_PROXY_PREFIX: "/proxy/"
PYVISTA_TRAME_SERVER_PROXY_ENABLED: "True"
PYVISTA_OFF_SCREEN: false
PYVISTA_JUPYTER_BACKEND: "panel"

steps:
- uses: actions/checkout@v4

- uses: actions/checkout@v3

- name: Install common packages
uses: ./.github/actions/install-dependencies

- name: Install book deps
run:
python3 -m pip install -r docker/requirements.txt
run: python3 -m pip install -r docker/requirements.txt

- name: Build the book
run:
jupyter-book build . -W
run: jupyter-book build . -W

- uses: actions/upload-artifact@v3
with:
Expand Down
9 changes: 4 additions & 5 deletions .github/workflows/test_stable.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ jobs:
test:
# The type of runner that the job will run on
runs-on: ubuntu-latest
container: ghcr.io/fenics/dolfinx/lab:v0.6.0-r1
container: ghcr.io/fenics/dolfinx/lab:v0.7.0
env:
PYVISTA_OFF_SCREEN: true

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- uses: ./.github/actions/install-dependencies

Expand All @@ -44,8 +44,7 @@ jobs:
cd chapter1
python3 complex_mode.py
mpirun -n 2 python3 complex_mode.py



- name: Test notebooks in parallel
run: |
python3 -c "from pyvista import start_xvfb; start_xvfb(0.1)"
Expand Down Expand Up @@ -78,4 +77,4 @@ jobs:
name: DFG2D-3
path: chapter2/figures
retention-days: 2
if-no-files-found: error
if-no-files-found: error
2 changes: 1 addition & 1 deletion Changelog.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Changelog

## main
## v0.7.0

- Renamed `dolfinx.graph.create_adjacencylist` to `dolfinx.graph.adjacencylist`
- Renamed `dolfinx.plot.create_vtk_mesh` to `dolfinx.plot.vtk_mesh`
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM ghcr.io/jorgensd/dolfinx-tutorial:v0.6.0.post0
FROM ghcr.io/jorgensd/dolfinx-tutorial:v0.7.0

# create user with a home directory
ARG NB_USER=jovyan
Expand Down
29 changes: 19 additions & 10 deletions fem.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,26 +22,31 @@ Most of the mathematical part of the examples will be kept at a simple level, su
Occasionally we will consider a more physically relevant example to remind the reader that there are no big leaps from solving simple model problems to challenging real-world problems when using FEniCSx.

## Interactive tutorials

As this book has been published as a Jupyter Book, we provide interactive notebooks that can be run in the browser. To start such a notebook click the ![Binder symbol](binder.png)-symbol in the top right corner of the relevant tutorial.

## Obtaining the software

If you would like to work with DOLFINx outside of the binder-notebooks, you need to install the FEniCS software.
The recommended way of installing DOLFINx for new users is by using Docker.
Docker is a software that uses *containers* to supply software across different kinds of operating systems (Linux, Mac, Windows). The first step is to install docker, following the instructions at their [webpage](https://docs.docker.com/get-started/).
If you would like to work with DOLFINx outside of the binder-notebooks, you need to install the FEniCS software.
The recommended way of installing DOLFINx for new users is by using Docker.
Docker is a software that uses _containers_ to supply software across different kinds of operating systems (Linux, Mac, Windows). The first step is to install docker, following the instructions at their [webpage](https://docs.docker.com/get-started/).

All notebooks can be converted to python files using [nbconvert](https://nbconvert.readthedocs.io/en/latest/).

### Tutorial compatible docker images

The tutorial uses several dependencies for meshing, plotting and timings. A compatible `JupyterLab` image is available in the [Github Packages](https://github.com/jorgensd/dolfinx-tutorial/pkgs/container/dolfinx-tutorial))

To use the notebooks in this tutorial with DOLFINx on your own computer, you should use the docker image using the following command:

```bash
docker run --init -p 8888:8888 -v "$(pwd)":/root/shared ghcr.io/jorgensd/dolfinx-tutorial:v0.6.0
docker run --init -p 8888:8888 -v "$(pwd)":/root/shared ghcr.io/jorgensd/dolfinx-tutorial:v0.7.0
```

This image can also be used as a normal docker container by adding:

```bash
docker run --ti -v "$(pwd)":/root/shared --entrypoint="/bin/bash" ghcr.io/jorgensd/dolfinx-tutorial:v0.6.0
docker run --ti -v "$(pwd)":/root/shared --entrypoint="/bin/bash" ghcr.io/jorgensd/dolfinx-tutorial:v0.7.0
```

The tutorials can also be exported as a notebook or PDF by clicking the ![Download](save.png)-symbol in the top right corner of the relevant tutorial. The notebook can in turn be used with a Python kernel which has DOLFINx.
Expand All @@ -51,32 +56,36 @@ The tutorials can also be exported as a notebook or PDF by clicking the ![Downlo
The FEniCS project supplies pre-built docker images at [https://hub.docker.com/r/dolfinx/dolfinx](https://hub.docker.com/r/dolfinx/dolfinx).
The [Dockerfile](https://github.com/FEniCS/dolfinx/blob/main/docker/Dockerfile)
provides a definitive build recipe. As the DOLFINx docker images are hosted at Docker-hub, one can directly access the image:

```
docker run dolfinx/dolfinx:v0.6.0-r1
docker run dolfinx/dolfinx:v0.7.0
```

There are several ways of customizing a docker container, such as mounting volumes/sharing folder, setting a working directory, sharing graphical interfaces etc. See `docker run --help` for an extensive list.

Once you have installed DOLFINx, either by using docker or installing form source, you can test the installation by running `python3 -c "import dolfinx"`. If all goes well, no error-messages should appear.


## Installation from source

The software is quite complex, and building the software and all the dependencies from source can be a daunting task. The list of dependencies can be found at [docs.fenicsproject.org/dolfinx/main/python/installation.html](https://docs.fenicsproject.org/dolfinx/main/python/installation.html).

## Introduction to Python for beginners
If you are a beginner in Python, we suggest reading {cite}`Langtangen2016` by Hans Petter Langtangen, which will give you a gentle introduction to the Python programming language. Note that DOLFINx, being a state of the art finite element solver, only supports Python 3, as Python 2 reached its end of life January 1st, 2020. To automatically transfer Python 2 scripts to Python 3, it is suggested to use the [2to3](https://docs.python.org/3/library/2to3.html)-package, which provides automated translation of the code.

If you are a beginner in Python, we suggest reading {cite}`Langtangen2016` by Hans Petter Langtangen, which will give you a gentle introduction to the Python programming language. Note that DOLFINx, being a state of the art finite element solver, only supports Python 3, as Python 2 reached its end of life January 1st, 2020. To automatically transfer Python 2 scripts to Python 3, it is suggested to use the [2to3](https://docs.python.org/3/library/2to3.html)-package, which provides automated translation of the code.

## Introduction to the finite element method

In the last decade, a wide range of lecture notes on finite elements methods has been made open access. See for instance:

- [Numerical methods for partial differential equations](http://hplgit.github.io/num-methods-for-PDEs/doc/web/index.html), by Hans Petter Langtangen
- [Finite elements - analysis and implementation](https://finite-element.github.io/), by David A. Ham and Colin J. Cotter
- [Finite element analysis for coupled problems](https://david-kamensky.eng.ucsd.edu/teaching/mae-207-fea-for-coupled-problems), by David Kamensky.
- [Finite element analysis for coupled problems](https://david-kamensky.eng.ucsd.edu/teaching/mae-207-fea-for-coupled-problems), by David Kamensky.
- [DefElement: an encyclopedia of finite element definitions](https://defelement.com/), by Matthew W. Scroggs.

There has been written many good text-books on the finite element method, and we refer to the original FEniCS tutorial, for references to these, see Chapter 1.6.2 of The FEniCS tutorial {cite}`FenicsTutorial`.
There has been written many good text-books on the finite element method, and we refer to the original FEniCS tutorial, for references to these, see Chapter 1.6.2 of The FEniCS tutorial {cite}`FenicsTutorial`.

## References

```{bibliography}
:filter: cited and ({"fem"} >= docnames)
```