Skip to content
Snippets Groups Projects
  1. Sep 14, 2018
  2. Apr 09, 2018
  3. Mar 26, 2018
  4. Nov 09, 2017
  5. Sep 05, 2017
  6. Aug 29, 2017
  7. 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
  8. Jul 07, 2017
Loading