FEniCS version and compatibility problems (chaos?)

We try to establish FEniCS as a tool in our university courses. There are several strong reasons for this, among them the excellent Springer book by Logg, Langtangen and others.
Unfortunately, unclear versioning of the project, changes without downward compatibility a jungle of FEniCS help pages with unclear version numbers, no comprehensive change logs make this wonderful product extremely hard if not impossible to use.
Some examples
Unitcircle (see the discussion here)

V1 = FunctionSpace(…)
V=V1*V1 became MixedFunctionSpace([v1,V1]) for a while and then things have to be constructed
by MixedElement(…)

Make a test on how many search clicks you need to find out this chain of changes. Do these changes really contribute to the clarity of the project and its codes, I wonder.

Subspaces of product spaces are no longer accessed by V.sub[0].

Finally, I recommend reading an error message like below. The given support address is wrong and, again, it requires some searching. Then what is mathematically meant by a boundary condition (i.e. an equation) is an element of (living) in a trial space. Sounds nonsense to me.

*** -------------------------------------------------------------------------
*** DOLFIN encountered an error. If you are not able to resolve this issue
*** using the information listed below, you can ask for help at


*** fenics-support@googlegroups.com


*** Remember to include the error message listed below and, if possible,
*** include a minimal running example to reproduce the error.


*** -------------------------------------------------------------------------
*** Error: Unable to define linear variational problem a(u, v) = L(v) for all v.
*** Reason: Expecting the boundary conditions to to live on (a subspace of) the trial space.
*** Where: This error was encountered inside LinearVariationalProblem.cpp.
*** Process: 0


*** DOLFIN version: 2018.1.0
*** Git changeset: bdc641f2c953c1a3bc34ce71d85e3bc8f0cafd2b
*** -------------------------------------------------------------------------

To sum up, please help to use the ideas of this fantastic project by fulfilling the demands of

  • a clear versioning (my version is 2018.1.0 – documentations refer to version numbers like 1.5.0)
  • a documentation of changes and deprecated commands and their replacements
  • updated examples

Greetings, Claus FĂĽhrer, Lund (Sweden)

4 Likes

If it helps, up-to-date documentation and demos can be found here:

https://fenicsproject.org/docs/dolfin/2018.1.0/python/

although I agree that it can be difficult to find via Google, which mostly returns results for old versions.

Dear Claus FĂĽhrer,

I am glad to hear that you do appreciate the FEniCS Project and sorry to hear of your frustrations. Thanks for reporting, your feedback is valuable. I hope to clarify some points:

(1) FEniCS is versioned according to year.version-number-that-year. So, 2018.1 is the first release from 2018. (The version number convention was changed in 2016, so version of the type 1.5.0 are from before then.)

(2) Changes are documented in the ChangeLogs, see e.g.

https://fenicsproject.org/docs/dolfin/dev/python/ChangeLog.html

(3) We continously update the demo examples in the source code, see e.g: the section “FEniCS Demos” here:

https://fenicsproject.org/documentation/