Skip to content
Snippets Groups Projects
  1. Feb 14, 2018
  2. Feb 13, 2018
  3. Feb 12, 2018
  4. Feb 08, 2018
  5. Jan 30, 2018
  6. Jan 25, 2018
  7. Jan 24, 2018
  8. Jan 03, 2018
  9. Dec 07, 2017
  10. Dec 06, 2017
  11. Nov 29, 2017
  12. Nov 28, 2017
  13. Nov 24, 2017
  14. Nov 23, 2017
  15. Nov 22, 2017
  16. Sep 25, 2017
  17. Sep 22, 2017
  18. Sep 08, 2017
  19. Sep 07, 2017
  20. Sep 01, 2017
  21. Aug 31, 2017
  22. Aug 25, 2017
    • Dominic Kempf's avatar
      Rewrite accumulation term splitting to not use FunctionView · 0f957482
      Dominic Kempf authored
      The introduction of FunctionView turned out to be a major problem
      with more complicated forms. The original idea was to preserver the
      structure of the finite element in a way, that loops over components
      of a mixed element are realized by actual loops (treating them with
      free indices and such). However, this causes quite some nightmares and
      was never implemented as generically as needed (I even doubt that is
      possible).
      
      However, there is another option, which is to unroll any such loops
      on a symbolic level. While this may sound like a bad idea at first
      there is some really positive aspects about it:
      * ListTensor and ComponentTensor nodes collapse completely (and would
        otherwise have a big nightmare potential)
      * Symbolic zeroes do not generate code - important in hyperbolic problems
        where the system matrices are quite sparse or for axiparallel grids,
        where geometric quantities have many zeroes.
      * The compiler would unroll these small loops anyway.
      * TSFC (and I guess also FFC) do it the same way.
      
      Implementing this required me to redo the form splitting algorithm.
      I rethought it and integrated it into the main ufl->loopy visitor.
      0f957482
Loading