Tags give the ability to mark specific points in history as being important
  • v2.6.0-rc1 protected   dune-pdelab 2.6.0-rc1
    Release v2.6.0-rc1

    PDELab 2.6

    • This release introduces a first step of our transition to use [dune-functions][]. For that reason, dune-functions is now a hard requirement of dune-pdelab.

    • Finite element maps must now export their dimension as a nested static constexpr int dimension. Existing finite elements should mostly still work in this version (although some features will be disabled), and users will be warned about the missing type during normal usage.

    • We now try to extract the "natural" block size from the finite element maps of leaf GridFunctionSpaces when constructing a vector for a function space. This means that as long as you are not doing really weird things with your fixed blocking (the one that influences the block size of the FieldVector), you do not have to specify the block size in the ISTL::VectorBackend anymore and PDELab will just do the right thing. If you are using a finite element map from which PDELab cannot extract this natural block size, you will now get a compiler error telling you to manually set the correct block size (but it is more likely that you have an actual bug in your code!). You will also get a compiler error if you try to specify a block size in the vector backend for a CompositeGridFunctionSpace or a PowerGridFunctionSpace.

      In order for PDELab to extract this information, it needs support from the FiniteElementMap. If you have written a custom FiniteElementMap with a fixed block size, just make sure that the member function FEM::size(GeometryType) is static and constexpr and can actually be executed in constexpr context (mostly, that means that it doesn't use any run time information).

    • Function space interpolation now supports interpolating vector-valued functions into function space trees of arbitrary shape. Previously, it was only possible to interpolate vector-valued functions into a function space tree of exactly depth 1. This makes it possible to e.g. directly specify the initial value for a Taylor-Hood space, which has the structure Composite(Power(P2,dim),P1). In this case, you can simply create a function for the initial value like this:

      auto f = Dune::Functions::makeAnalyticGridViewFunction(
        [](auto x)
          Dune::FieldVector<double,dim+1> r;
          r[0] = velocity_x;
          // ...
          r[dim] = pressure;
    • The L2 local operator now works for systems as well as scalar spaces. The PowerL2 has been deprecated and will be removed after this release, just switch to the standard L2 operator.

    • The L2 local operator now calculates a reasonable default for the integration order, using the same formula as most other operators (2*lfsu.finiteElement().localBasis().order()). As a consequence, the meaning of the first constructor parameter has changed: It now designates an overintegration order that gets added to the base integration order. Unfortunately, it is difficult to issue a compile warning for this behavior change. Please make sure to update your code accordingly, otherwise you might experience severe slowdowns when using this operator!

    • An implementation of the GenEO (Generalized Eigenproblems in the Overlap) spectral coarse space (see Spillane et al., 2014) is introduced. It can be applied as an extremely robust two-level additive Schwarz method or as an efficient coarse model. This implementation has been shown to scale well up to 2048 processor cores (see Reinarz et al., 2018), solving a highly heterogeneous and anisotropic linear elasticity problem with 170 mio DOFs at around two minutes. Its structure allows to easily introduce other coarse spaces, both global and defined per-subdomain.

      Applying this coarse space requires two particular matrices to be set up for the generalized eigenproblems. One is defined as the discretization matrix with Neumann conditions at processor boundaries; the other is the same, however zeroed out away from the overlap region. Tools are provided to easily reuse the usual discretization matrix assembly. For an example, see the GenEO unit test included in PDELab.

  • v2.5.0-rc1 protected   dune-pdelab 2.5.0-rc1
  • v2.4.1 protected   dune-pdelab 2.4.1
  • v2.4.1-rc1 protected   dune-pdelab 2.4.1-rc1
  • v2.0.0 protected   [Release] dune-pdelab 2.0.0
  • v2.0.0-rc2 protected   [Release] dune-pdelab 2.0.0-rc2
  • v2.0.0-rc1 protected   [Release] dune-pdelab 2.0.0-rc1
  • pre-typetree-split   Last version working with internal TypeTree library
    38724fdc · Merge branch 'work' ·
  • v1.1.0 protected   dune-pdelab 1.1.0
  • v1.1-rc2 protected   PDELab 1.1-rc2
  • v1.1-rc1 protected   PDELab 1.1-rc1
  • v1.0.1 protected   PDELab 1.0.1
  • v1.0.0 protected   PDELab 1.0.0