Skip to content

Commit 253edf7

Browse files
authored
Update fem.md (#168)
Fixed some typos and wording.
1 parent 80c33dd commit 253edf7

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

fem.md

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
11
# An overview of the FEniCS Project
22

3-
The FEniCS project is a research and software project aimed at creating mathematical methods and software for solving partial differential equations. This includes creating intuitive, efficient and flexible software. The project was initiated in 2003, and is developed in collaboration between researchers from a number of universities and research institutes around the world. For the latest updates and more information about the FEniCS project, visit the [FEniCS](https://fenicsproject.org) webpage.
3+
The FEniCS project is a research and software project aimed at creating mathematical methods and software for solving partial differential equations (PDEs). This includes creating intuitive, efficient and flexible software. The project was initiated in 2003, and is developed in a collaboration among researchers from a number of universities and research institutes around the world. For the latest updates and more information about the FEniCS project, visit the [FEniCS](https://fenicsproject.org) webpage.
44

5-
The latest version of the FEniCS project, FEniCSx, consists of several building blocks, namely [Basix](https://github.com/FEniCS/basix/), [UFL](https://github.com/FEniCS/ufl), [FFCx](https://github.com/FEniCS/ffcx) and [DOLFINx](https://github.com/FEniCS/dolfinx). We will now go through the main objectives of each of these building blocks. DOLFINx is the high performance C++ backend of FEniCSx, where structures such as meshes, function spaces and functions are implemented.
5+
The latest version of the FEniCS project, FEniCSx, consists of several building blocks, namely [DOLFINx](https://github.com/FEniCS/dolfinx), [UFL](https://github.com/FEniCS/ufl), [FFCx](https://github.com/FEniCS/ffcx), and [Basix](https://github.com/FEniCS/basix/). We will now go through the main objectives of each of these building blocks. DOLFINx is the high performance C++ backend of FEniCSx, where structures such as meshes, function spaces and functions are implemented.
66
Additionally, DOLFINx also contains compute intensive functions such as finite element assembly and mesh refinement algorithms. It also provides an interface to linear algebra solvers and data-structures, such as [PETSc](https://www.mcs.anl.gov/petsc/). UFL is a high-level form language for describing variational formulations with a high-level mathematical syntax. FFCx is the form compiler of FEniCSx; given variational formulations written with UFL, it generates efficient C code. Basix is the finite element backend of FEniCSx, responsible for generating finite element basis functions.
77

88
# What you will learn
99

10-
The goal of this tutorial is to demonstrate how to apply the finite element to solve PDEs in FEniCS. Through a series of examples, we will demonstrate how to:
10+
The goal of this tutorial is to demonstrate how to apply the finite element to solve PDEs using FEniCS. Through a series of examples, we will demonstrate how to:
1111

1212
- Solve linear PDEs (such as the Poisson equation),
1313
- Solve time-dependent PDEs (such as the heat equation),
1414
- Solve non-linear PDEs,
1515
- Solve systems of time-dependent non-linear PDEs.
1616

17-
Important topics involve how to set boundary conditions of various types (Dirichlet, Neumann, Robin), how to create meshes, how to define variable coefficients, how to interact with linear and non-linear solvers, and how to post-process and visualize solutions.
17+
Important topics include: how to set boundary conditions of various types (Dirichlet, Neumann, Robin), how to create meshes, how to define variable coefficients, how to interact with linear and non-linear solvers, and how to post-process and visualize solutions.
1818

1919
# How to use this tutorial
2020

21-
Most of the mathematical part of the examples will be kept at a simple level, such that we can keep the focus on the functionality and syntax of FEniCSx. Therefore we will mostly use the Poisson equation and the time-dependent diffusion equation as model problems. We will use adjusted input data, such that the solution of the problem can be exactly reproduced on uniform, structured meshes with the finite element method. This greatly simplifies the verification of the implementations.
21+
Most of the mathematical part of the examples will be kept at a simple level, such that we can keep the focus on the functionality and syntax of FEniCSx. Therefore, we will mostly use the Poisson equation and the time-dependent diffusion equation as model problems. We will use adjusted input data, such that the solution of the problem can be exactly reproduced on uniform, structured meshes with the finite element method. This greatly simplifies the verification of the implementations.
2222
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.
2323

2424
## Interactive tutorials
@@ -35,9 +35,9 @@ All notebooks can be converted to python files using [nbconvert](https://nbconve
3535

3636
### Tutorial compatible docker images
3737

38-
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))
38+
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).
3939

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

4242
```bash
4343
docker run --init -p 8888:8888 -v "$(pwd)":/root/shared ghcr.io/jorgensd/dolfinx-tutorial:v0.7.2
@@ -49,21 +49,21 @@ This image can also be used as a normal docker container by adding:
4949
docker run --ti -v "$(pwd)":/root/shared --entrypoint="/bin/bash" ghcr.io/jorgensd/dolfinx-tutorial:v0.7.2
5050
```
5151

52-
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.
52+
The tutorials can also be exported as an IPython 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.
5353

5454
### Official images
5555

5656
The FEniCS project supplies pre-built docker images at [https://hub.docker.com/r/dolfinx/dolfinx](https://hub.docker.com/r/dolfinx/dolfinx).
5757
The [Dockerfile](https://github.com/FEniCS/dolfinx/blob/main/docker/Dockerfile)
58-
provides a definitive build recipe. As the DOLFINx docker images are hosted at Docker-hub, one can directly access the image:
58+
provides a definitive build recipe. As the DOLFINx docker images are hosted at Docker-hub, one can directly access the image using:
5959

6060
```
6161
docker run dolfinx/dolfinx:v0.7.2
6262
```
6363

6464
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.
6565

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

6868
## Installation from source
6969

@@ -75,14 +75,14 @@ If you are a beginner in Python, we suggest reading {cite}`Langtangen2016` by Ha
7575

7676
## Introduction to the finite element method
7777

78-
In the last decade, a wide range of lecture notes on finite elements methods has been made open access. See for instance:
78+
In the last decade, several sets of lecture notes on finite element methods have been made open access. See for instance:
7979

8080
- [Numerical methods for partial differential equations](https://hplgit.github.io/num-methods-for-PDEs/doc/web/index.html), by Hans Petter Langtangen
8181
- [Finite elements - analysis and implementation](https://finite-element.github.io/), by David A. Ham and Colin J. Cotter
8282
- [Finite element analysis for coupled problems](https://drive.google.com/file/d/1o0DY1RWoXd-gOISqyRzJoDHUHvSMvSg3/view?usp=sharing), by David Kamensky.
8383
- [DefElement: an encyclopedia of finite element definitions](https://defelement.com/), by Matthew W. Scroggs.
8484

85-
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`.
85+
Many good textbooks on the finite element method have been written, and we refer to the original FEniCS tutorial for references to these, see Chapter 1.6.2 of The FEniCS tutorial {cite}`FenicsTutorial`.
8686

8787
## References
8888

0 commit comments

Comments
 (0)