Skip to content

Rework accumulation splitting

René Heß requested to merge feature/rework-accumulation-splitting into master

Make splitting more flexible and allow the following use cases:

  • Sumfact: Do as before. Split between gradients and non-gradients and cut test functions from the expression. This gives suitable input for stage 3 of sumfactiorization.

  • Non-sumfact: Do not split between gradients and non-gradients and do not cut test functionts form the expression. This simplifies the accumulation generation and avoids unnecessary accumulate calls.

As a side effect the whole dimension indices handling got a bit cleaner.

I had to add an additional ufl transformation that makes sure that there is never a ReferenceGrad node below a PositiveRestricted/NegativeRestricted node.

Merge request reports

Loading