Skip to content
Snippets Groups Projects
Commit 0a07cf37 authored by René Heß's avatar René Heß
Browse files

[!287] Mixins instead of interfaces

Merge branch 'feature/geometry-mixins' into 'master'

ref:extensions/dune-codegen This MR switches the way we allow configurable
handling of geometry, quadrature and basis evaluation. So far, we had an
interface class - one for PDELab, sum factorization and block structuring.
This had the disadvantage of being quite monolithic. Also, different
geometries (equidistant, axiparallel, multilinear etc.) were handled through a
backend mechanism that performed fine for simple examples, but could get quite
messy for complex ones.

The new way introduced here is mixin classes. Mixins for the above topics can
be defined anywhere in the code (even in user code, if a poweruser wants to
implement his own geometries!!!) and are registered through a decorator. The
visitor is then constructed by choosing a set of mixins and combining them
into a class. This is currently done through ini options.

TODO:

-   \[x\] Allow generators to be used as class methods
-   \[x\] Implement basic mixin infrastructure
-   \[x\] Construct a visitor by combining mixins
-   \[x\] Port existing geometry implementations
    -   \[x\] Generic PDELab
    -   \[x\] Axiparallel
    -   \[x\] Equidistant
    -   \[x\] Blockstructured
    -   \[x\] Sumfact: Multilinear
-   \[x\] Remove *Interface* Concept in favor of mixins
-   \[x\] Final cleanup

This fixes [#128].

See merge request [extensions/dune-codegen!287]

  [#128]: gitlab.dune-project.org/NoneNone/issues/128
  [extensions/dune-codegen!287]: gitlab.dune-project.org/extensions/dune-codegen/merge_requests/287


Closes #128
parents 1c2ce73d bbc6dcbf
No related branches found
No related tags found
No related merge requests found
Showing
with 766 additions and 798 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment