Skip to content

Commit 003f550

Browse files
authored
Move legacy FEniCS info to archive pages (#70)
* Archive download instructions * trailing / * Archive documentation * update community page * legacy * Add fenicsx vs legacy section * update test * flake * docker instructions * typo * add Basix papers * link to installation instructions in docs
1 parent 2f0aba1 commit 003f550

File tree

10 files changed

+242
-122
lines changed

10 files changed

+242
-122
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# FEniCS website
2-
This repository contains the (new, not-yet finished) FEniCS website.
2+
This repository contains the FEniCS website.
33

44
## Editing this website
55
To edit this website:

_test/test_links.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ def test_links(dir, file):
7272
if i.startswith("http:") or i.startswith("https:")]
7373
for i in external_links:
7474
print(f"Checking {i}")
75-
if "fenicsproject.org" in i:
75+
if "fenicsproject.org" in i and "docs.fenicsproject.org" not in i:
7676
assert "/pub/" in i or "/olddocs/" in i
7777

7878
links = [i for i in links if not i.startswith("http:")]

citing/index.md

+26-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,34 @@
11
---
2-
title: Citing FEniCS
2+
title: Citing FEniCSx
33
permalink: /citing/
44
---
5-
If you use FEniCS in your research, the developers would be grateful if you would cite the
6-
relevant publications. FEniCS is organized as a collection of components, so to give proper
7-
credit to the developers of FEniCS, please cite the indicated references **for each relevant
5+
If you use FEniCSx in your research, the developers would be grateful if you would cite the
6+
relevant publications. FEniCSx is organized as a collection of components, so to give proper
7+
credit to the developers of FEniCSx, please cite the indicated references **for each relevant
88
component**.
99

10-
## FEniCS
10+
## FEniCSx
11+
12+
### Basix
13+
14+
{% include _paper.html
15+
id="ScroggsEtal2022"
16+
title="Construction of arbitrary order finite element degree-of-freedom maps on polygonal and polyhedral cell meshes"
17+
author="M. W. Scroggs, J. S. Dokken, C. N. Richardson, and G. N. Wells"
18+
submitted="ACM Transactions on Mathematical Software"
19+
year="2022"
20+
arxiv="2102.11901"
21+
%}
22+
23+
{% include _paper.html
24+
id="BasixJoss"
25+
title="Basix: a runtime finite element basis evaluation library"
26+
author="M. W. Scroggs, I. A. Baratta, C. N. Richardson, and G. N. Wells"
27+
submitted="Journal of Open Source Software"
28+
year="2022"
29+
%}
30+
31+
## Legacy FEniCS
1132

1233
{% include _paper.html
1334
id="AlnaesEtal2015"

community/index.md

+21-15
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,32 @@ Everyone is invited to read and take part in discussions. You can join our Slack
1919
[entering your email address here](https://fenicsproject-slack-invite.herokuapp.com/).
2020

2121
## Asking questions
22-
If you need help with using FEniCS, ask your question in the
23-
[FEniCS Discourse site](https://fenicsproject.discourse.group/).
24-
If you have a specific question related to obtaining, building or installing a FEniCS component,
25-
please send a message to the [FEniCS support mailing list](https://groups.google.com/forum/#!forum/fenics-support).
26-
If you would like to discuss FEniCS development or propose a new feature, please send a message
27-
to the [FEniCS developer mailing list](https://groups.google.com/forum/#!forum/fenics-dev)
28-
or join us on the [FEniCS Slack channels](https://fenicsproject.slack.com/).
22+
If you need help with using FEniCS, or are encountering an error, you can ask a question in the
23+
[FEniCS Discourse site](https://fenicsproject.discourse.group/). In order to make it more likely that you get a useful reply
24+
to your question, you should:
25+
26+
- make sure that your post title and description make it clear what you are trying to do,
27+
- post a minimal code that reproduces any errors you are encountering
28+
- post in full any error messages you are seeing
29+
- include details of which FEniCS version you are using, and how you installed it (Docker/conda/pip/etc)
30+
31+
You can find more advice about how to post a good question (and examples)
32+
[here](https://fenicsproject.discourse.group/t/read-before-posting-how-do-i-get-my-question-answered/21/4).
2933

3034
## Reporting bugs
3135
If you encounter something you suspect is a bug, please
32-
[file an issue for the appropriate FEniCS component on Bitbucket](https://bitbucket.org/fenics-project/).
33-
In particular, for reporting bugs in the FEniCS user interface,
34-
visit the [DOLFIN issues page](https://bitbucket.org/fenics-project/dolfin/issues).
36+
[file an issue for the appropriate FEniCS component on GitHub](https://github.com/FEniCS).
37+
In particular, for reporting bugs in the FEniCSx user interface,
38+
visit the [DOLFINx issues page](https://github.com/FEniCS/dolfinx/issues).
3539
As above, post complete but minimal code examples.
3640

3741
## Contributing
38-
We encourage users to take active part in developing and documenting FEniCS. As an active
42+
We encourage users to take active part in developing and documenting FEniCSx. As an active
3943
developer, it is easy to influence the direction and focus of the project. To contribute to
40-
FEniCS development, engage with other developers on the
41-
[FEniCS Slack channels](https://fenicsproject.slack.com/).
42-
The [FEniCS source code](https://bitbucket.org/fenics-project/) is hosted on Bitbucket. Signed copyright consents are needed for non-trivial
44+
FEniCSx development, engage with other developers on the
45+
[FEniCSx Slack channels](https://fenicsproject.slack.com/): in particular, you should join the **#fenicsx** and **#development**
46+
channels.
47+
48+
The [FEniCSx source code](https://github.com/FEniCS) is hosted on GitHub. Signed copyright consents are needed for non-trivial
4349
contributions. The copyright policy and the consent submission procedures are described in
44-
[the governance documents](https://bitbucket.org/fenics-project/governance/src/master/project-license.md).
50+
[the governance documents](https://github.com/FEniCS/governance/blob/master/project-license.md).

conference/index.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
title: The FEniCS Conference
33
permalink: /conference/
44
---
5-
The FEniCS conference is held in a difference location each year.
5+
The FEniCS conference is held in a different location each year.
66

77
- [FEniCS 2022 (San Diego)](2022.md)
88
- [FEniCS 2021 (online)](2021.md)

documentation/archive.md

+61
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
---
2+
title: FEniCS Documentation
3+
subtitle: fenicsversion
4+
permalink: /documentation/archive/
5+
---
6+
7+
The FEniCS documentation includes a set of books, collections of documented demo programs and reference manuals.
8+
9+
## The FEniCS Tutorial
10+
![The FEniCS tutorial](/assets/img/docs/tutorial.png){: .image-right }
11+
If you are new to FEniCS and want to quickly get started with solving PDEs in Python,
12+
the [FEniCS Tutorial](tutorial.md) is a good starting point. The tutorial
13+
explains the fundamental concepts of the finite element method, FEniCS programming, and
14+
demonstrates how to quickly solve a range of PDEs. The tutorial assumes no prior knowledge of
15+
the finite element method. The FEniCS Tutorial is published as part of the series
16+
[Simula Springer Briefs on Computing](http://www.springer.com/series/13548).
17+
The book is open access and the eBook can be downloaded for free
18+
from Springer.
19+
20+
Note that some of the FEniCS Tutorial example code may be obsolete, see the
21+
[FEniCS Tutorial page](tutorial.md) for how to report comments and corrections.
22+
23+
## The FEniCS API Documentation
24+
The FEniCS Project consists of a number of components with DOLFIN and UFL providing the main
25+
user interface. For detailed documentation of the FEniCS programming interface, use the
26+
27+
- [DOLFIN (C++) API](https://fenicsproject.org/olddocs/dolfin/latest/cpp/classes.html) Class Index
28+
- [DOLFIN (Python) API](https://fenicsproject.org/olddocs/dolfin/latest/python/) reference
29+
30+
Not the version you are looking for? See also the list of
31+
[documentation for other DOLFIN versions](https://fenicsproject.org/olddocs/dolfin/).
32+
Some advanced user and more developer-oriented information can also be found in the
33+
[FEniCS Reference Manual on Read the docs](https://fenics.readthedocs.io/en/latest/).
34+
35+
The [DOLFIN ChangeLog](https://fenics.readthedocs.io/projects/dolfin/en/latest/ChangeLog.html)
36+
provides an overview of changes in the FEniCS programming interfaces between different versions.
37+
38+
## The FEniCS Demos
39+
The FEniCS demo programs (demos) are a good starting point for building your own FEniCS
40+
applications, and many users find these useful. The demos are included in the
41+
[FEniCS source repositories](https://bitbucket.org/fenics-project/),
42+
which are hosted on Bitbucket. For easy reference, we here provide quick links
43+
to the demos:
44+
45+
- [DOLFIN C++ demos](https://bitbucket.org/fenics-project/dolfin/src/master/demo/) (development version)
46+
- [DOLFIN Python demos](https://bitbucket.org/fenics-project/dolfin/src/master/python/demo/) (development version)
47+
48+
# The FEniCS book
49+
![The FEniCS book](/assets/img/docs/book.png){: .image-right }
50+
The book [Automated Solution of Differential Equations by the Finite Element Method](book.md)
51+
explains the theoretical background and design of FEniCS. It describes the FEniCS software
52+
components in detail and showcases a number of applications of FEniCS to problems in fluid
53+
mechanics, solid mechanics, electromagnetics, and geophysics. The book was published in 2012,
54+
which means that some of the examples presented in the book may use old interfaces that are no
55+
longer supported by FEniCS. However, the book still gives a good description of the design of
56+
FEniCS.
57+
58+
## The FEniCS Notebooks
59+
The FEniCS Notebooks are a collection of documented Jupyter/Python notebooks illustrating
60+
various features of FEniCS and the application of FEniCS to a range of PDEs. The FEniCS
61+
Notebooks are currently in preparation.

documentation/index.md

+29-42
Original file line numberDiff line numberDiff line change
@@ -4,58 +4,45 @@ subtitle: fenicsversion
44
permalink: /documentation/
55
---
66

7-
The FEniCS documentation includes a set of books, collections of documented demo programs and reference manuals.
7+
The FEniCSx documentation includes a set of books, collections of documented demo programs and reference manuals.
88

9-
## The FEniCS Tutorial
10-
![The FEniCS tutorial](/assets/img/docs/tutorial.png){: .image-right }
9+
## The FEniCSx Tutorial
10+
![The FEniCSx tutorial](/assets/img/docs/tutorial.png){: .image-right }
1111
If you are new to FEniCS and want to quickly get started with solving PDEs in Python,
12-
the [FEniCS Tutorial](tutorial.md) is a good starting point. The tutorial
13-
explains the fundamental concepts of the finite element method, FEniCS programming, and
14-
demonstrates how to quickly solve a range of PDEs. The tutorial assumes no prior knowledge of
15-
the finite element method. The FEniCS Tutorial is published as part of the series
12+
the [FEniCSx tutorial](https://jorgensd.github.io/dolfinx-tutorial/) is a good place to start.
13+
The tutorial explains the fundamental concepts of the finite element method, FEniCSx programming, and
14+
demonstrates how to quickly solve a range of PDEs.
15+
The FEniCSx Tutorial based on the [FEniCS Tutorial](tutorial.md) book which was published as part of the series
1616
[Simula Springer Briefs on Computing](http://www.springer.com/series/13548).
17-
The book is open access and the eBook can be downloaded for free
18-
from Springer.
1917

20-
Note that some of the FEniCS Tutorial example code may be obsolete, see the
21-
[FEniCS Tutorial page](tutorial.md) for how to report comments and corrections.
18+
## API Documentation
19+
FEniCSx is comprised of four main components:
2220

23-
## The FEniCS API Documentation
24-
The FEniCS Project consists of a number of components with DOLFIN and UFL providing the main
25-
user interface. For detailed documentation of the FEniCS programming interface, use the
21+
- UFL ([latest docs](https://fenics.readthedocs.io/projects/ufl/en/latest/)) (the Unified Form Language) is a form language
22+
that allows the user to write a wide variety of finite element forms in Python.
23+
- Basix ([latest docs](https://docs.fenicsproject.org/basix/main/)) is a element definition and tabulation library
24+
that provides all the information FEniCSx needs about elements on the reference cell.
25+
- FFCx ([latest docs](https://docs.fenicsproject.org/ffcx/main)) (the FEniCSx Form Compiler) is the Python library that interprets
26+
UFL forms and generates C code to assemble these on cells.
27+
- DOLFINx ([latest C++ docs](https://docs.fenicsproject.org/dolfinx/main/cpp/), [latest Python docs](https://docs.fenicsproject.org/dolfinx/main/python/))
28+
is the main user interface of FEniCSx, and handles meshes and linear algebra solvers among other things.
2629

27-
- [DOLFIN (C++) API](https://fenicsproject.org/olddocs/dolfin/latest/cpp/classes.html) Class Index
28-
- [DOLFIN (Python) API](https://fenicsproject.org/olddocs/dolfin/latest/python/) reference
29-
30-
Not the version you are looking for? See also the list of
31-
[documentation for other DOLFIN versions](https://fenicsproject.org/olddocs/dolfin/).
32-
Some advanced user and more developer-oriented information can also be found in the
33-
[FEniCS Reference Manual on Read the docs](https://fenics.readthedocs.io/en/latest/).
34-
35-
The [DOLFIN ChangeLog](https://fenics.readthedocs.io/projects/dolfin/en/latest/ChangeLog.html)
36-
provides an overview of changes in the FEniCS programming interfaces between different versions.
37-
38-
## The FEniCS Demos
39-
The FEniCS demo programs (demos) are a good starting point for building your own FEniCS
40-
applications, and many users find these useful. The demos are included in the
41-
[FEniCS source repositories](https://bitbucket.org/fenics-project/),
42-
which are hosted on Bitbucket. For easy reference, we here provide quick links
43-
to the demos:
44-
45-
- [DOLFIN C++ demos](https://bitbucket.org/fenics-project/dolfin/src/master/demo/) (development version)
46-
- [DOLFIN Python demos](https://bitbucket.org/fenics-project/dolfin/src/master/python/demo/) (development version)
30+
API documentation of the latest version of each component can be found using the links above. Documentation of
31+
other versions can be found at [docs.fenicsproject.org](https://docs.fenicsproject.org/).
4732

4833
# The FEniCS book
4934
![The FEniCS book](/assets/img/docs/book.png){: .image-right }
5035
The book [Automated Solution of Differential Equations by the Finite Element Method](book.md)
5136
explains the theoretical background and design of FEniCS. It describes the FEniCS software
5237
components in detail and showcases a number of applications of FEniCS to problems in fluid
5338
mechanics, solid mechanics, electromagnetics, and geophysics. The book was published in 2012,
54-
which means that some of the examples presented in the book may use old interfaces that are no
55-
longer supported by FEniCS. However, the book still gives a good description of the design of
56-
FEniCS.
57-
58-
## The FEniCS Notebooks
59-
The FEniCS Notebooks are a collection of documented Jupyter/Python notebooks illustrating
60-
various features of FEniCS and the application of FEniCS to a range of PDEs. The FEniCS
61-
Notebooks are currently in preparation.
39+
and was based on the legacy FEniCS library, so the code examples in the book are out of date.
40+
However, the book still gives a good description of the many of the design principles that
41+
FEniCSx is based on.
42+
43+
The book is available as a [free ebook](http://launchpad.net/fenics-book/trunk/final/+download/fenics-book-2011-10-27-final.pdf),
44+
or can be bought from [Springer](http://www.springer.com/mathematics/computational+science+%26+engineering/book/978-3-642-23098-1)
45+
or many other bookshops.
46+
47+
## Legacy FEniCS
48+
Documnetation for the legacy version of FEniCS (version {{ site.fenicsversion }}) can be found [here](archive.md).

download/archive.md

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
---
2+
title: Download
3+
permalink: /download/archive/
4+
---
5+
6+
The latest stable release of legacy FEniCS is version {{ site.fenicsversion }}, which was released
7+
in {{ site.fenicsversiondate }}.
8+
9+
## FEniCS on Docker
10+
To use our prebuilt, high-performance [Docker](https://www.docker.com/community-edition) images,
11+
first install [Docker CE](https://www.docker.com/products/docker-desktop) for your platform
12+
(Windows, Mac or Linux) and then run the following command:
13+
14+
```bash
15+
curl -s https://get.fenicsproject.org | bash
16+
```
17+
18+
To run the FEniCS Docker image, use the command `fenicsproject run`. For more options and
19+
features, see `fenicsproject help`.
20+
21+
Alternatively, you can start a container with the following `docker` command:
22+
23+
```bash
24+
docker run -ti -p 127.0.0.1:8000:8000 -v $(pwd):/home/fenics/shared -w /home/fenics/shared quay.io/fenicsproject/stable:current
25+
```
26+
27+
For detailed instructions, see the [FEniCS Reference Manual](http://fenics-containers.readthedocs.io/en/latest/index.html).
28+
29+
## FEniCS on Windows 10
30+
To install FEniCS on Windows 10, enable the [Windows Subsystem for Linux](https://docs.microsoft.com/en-us/windows/wsl/install-win10)
31+
and install the Ubuntu distribution. Then follow the instructions for Ubuntu below.
32+
33+
## Ubuntu FEniCS on Ubuntu
34+
To install FEniCS on Ubuntu, run the following commands:
35+
36+
```bash
37+
sudo apt-get install software-properties-common
38+
sudo add-apt-repository ppa:fenics-packages/fenics
39+
sudo apt-get update
40+
sudo apt-get install fenics
41+
```
42+
43+
For detailed instructions, see the [FEniCS Reference Manual](http://fenics-containers.readthedocs.io/en/latest/index.html).
44+
45+
## FEniCS on Anaconda
46+
To use our prebuilt Anaconda Python packages (Linux and Mac only), first
47+
[install Anaconda](https://docs.continuum.io/anaconda/install), then run following commands in
48+
your terminal:
49+
50+
51+
```bash
52+
conda create -n fenicsproject -c conda-forge fenics
53+
source activate fenicsproject
54+
```
55+
56+
For further information on using Anaconda, see the [documentation](https://docs.continuum.io/anaconda/).
57+
58+
Installing FEniCS via Anaconda is also supported in [Microsoft Azure Notebooks](https://notebooks.azure.com/).
59+
In the first cell of a new Jupyter notebook, type:
60+
61+
```python
62+
!conda config --add channels conda-forge
63+
!conda install fenics
64+
```
65+
66+
**Warning**: FEniCS Anaconda recipes are maintained by the community and distributed binary
67+
packages do not have a full feature set yet, especially regarding sparse direct solvers and
68+
input/output facilities.
69+
70+
**Update**. 2017.2.0 release on `conda-forge` features MUMPS direct solver, but lacks SuperLU_dist and MPI-enabled HDF5.
71+
72+
## Building FEniCS from source
73+
For installation in high performance computing clusters we recommend always building from source.
74+
For detailed instructions, see the [FEniCS Reference Manual](https://fenics.readthedocs.io/en/latest/installation.html).

0 commit comments

Comments
 (0)