Skip to content
Snippets Groups Projects
Commit 913fbc59 authored by Carsten Gräser's avatar Carsten Gräser
Browse files

[constraints] Add constraints support for dune-functions basis

This adds a class `AffineConstraints` for storing contraints
for general dune-functions bases and a method
`makeContinuityConstraints()` for computing the
constraints for the H^1-conforming subspace
for classical FE spaces on grid with hanging nodes.

This is experimental and the interface may change.
Also some features are still missing:

* The code is generic and should work with nested
  bases and subspace bases. But this has not been
  tested so far.
* One may want to generalize `makeContinuityConstraints()`
  such that one can extend an existing constraints
  object. This way one could add constraints for
  different branches in the tree one after the other.
* Currently constraints are stored in a simple
  `std::unordered_map<std::map<Index,Coeff>>`
  data structure. Maybe this could be more efficient
  in a vector-based data structure or a sparse matrix.
  I had a compress method in mind that transforms into
  a more efficient storage once the contraints are fully
  build. But in my tests copying into a vector-bases
  data structure did not improve significantly, probably
  because the number of entries is relatively small.
* The constraints class is called `AffineConstraints`
  because it is intended to also hold Dirichlet constraints.
  This feature is currently missing.
parent bfc54abc
Branches
Tags
1 merge request!258Add constraints support for dune-functions basis
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment