[dune-functions] Function space of constant functions
Simon Praetorius
simon.praetorius at tu-dresden.de
Thu Nov 15 01:47:40 CET 2018
Hi Carsten
Am 14.11.18 um 16:35 schrieb Carsten Gräser:
> without looking at the code: That's just the P0 basis with
> all basis functions mapped to the index 0, isn't it? Maybe
> this can also be obtained using (abusing)
>
> https://gitlab.dune-project.org/staging/dune-functions/merge_requests/125
>
> Something like the following should (almost) do the trick:
>
> auto scalarPrebasis = []() {
> return Experimental::transformIndices(lagrange<0>(),
> Experimental::indexTransformation(
> [](auto& multiIndex, const auto& basis) { multiIndex = {0}; },
> [](const auto& prefix, const auto& basis) { return std::size_t(prefix.size()==0); },
> Dune::Indices::_1, Dune::Indices::_1));
> };
>
> It's "abusing" and "almost", because the fact that this is
> not just a transformation leads to a minor problem: The
> resulting basis will not return the proper value on dimension().
> This could be fixed by widening the scope and allowing to
> hijack dimension() with a lambda, too.
Yes, you are right. It is a super simple implementation of a P0 local
basis with just 1 global index. Nothing else. Nothing fancy.
Although, it is nice to achieve something similar with your index
transform, this looks too complicated to me. All the dimensions and
sizes should be set correctly. Otherwise I will get hard to find errors
somewhere deep in the implementation.
Best,
Simon
More information about the dune-functions
mailing list