File: protocol_achen_2014.txt

package info (click to toggle)
dune-functions 2.6~20180228-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye, buster, sid
  • size: 1,188 kB
  • sloc: cpp: 8,599; makefile: 3
file content (57 lines) | stat: -rw-r--r-- 2,726 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Function Space Bases

- for now only depending on GridView (maybe also for Grids or other entity sets - tbd)
- Global interface minimalistic (only provide enough information for computing container sizes)
- main interface through a LocalView obtained from the global basis
- Prototype implementation for PQ1 and flat global index in dune-functions

LocalView

- LocalView returned by value (can have multiple views at the same time)
- View can be bound to and unbound from elements and provides access to a bound element
- Concrete interaction with a bound view through a nested tree object (name tbd)

LocalView Tree

- Tree represents an element-local tensor product space
- Leafs correspond to a local finite elements from dune-localfunctions
- Tree is implemented using dune-typetree
- Leafs can map leaf-local consecutive indices for shape functions to
  - a unique index with respect to the entire local basis tree, which is consecutive and 0-based
  - a globally unique (for the entire function space) multi-index. The exact semantics and
    properties of this multi-index are not defined yet. There may be multiple classes of multi-indices
    with different properties and complexities.
    A very simple index would be of length 1 and consecutive. In general, indices can be of varying
    length and can contain non-consecutive entries (e.g. for the GeometryTypeIndex).
    At a later stage, those classes will need to be precisely defined to create an interface to container
    backends that will depend on the exact semantics of those classes.
  - There are interfaces to obtain either a single global index or to efficiently populate a container with
    all global indices for the currently bound grid element


Smaller Changes

- GridViewFunction was revised to work with new GridViewFunctionSpaceBasis
- Replace FunctionHandle for derived functions with shared_ptr
- Functions now longer inherit from enable_shared_from_this
- Convenience interfaces by Carsten to convert to / from callables (via std::function)


Open Questions

- Container backends
- Index transformations (for systems / blocking / etc.)
- Avoid interface restrictions w.r.t. features like automatic backend construction (PDELab) or additional
  information like local sparsity structures (Carsten)
- Semantics and properties of canonical multi-index classes
- Constraints
- higher-order derivatives of shape functions for non-affine geometry mappings
- dune-localfunctions: Several smaller issues
- revise global valued interface of dune-localfunctions


Homework

Oli: port additional bases (P^k) from dune-fufem
Christian: functions interface for PDELab
Christian / Steffen: discuss minimum backend interface from PDELab point of view