Issues while adding support for extruded meshes

An incomplete list of issues I encountered while implementing extruded meshes:

Issues to be considered during structured interface adoption:

  • iterate over dune kernels and get the correspondend integrand instead of the other way around
  • clean up accumulation and coefficient access
  • make coefficient access part of the visitor
  • compute normals for multilinear column
  • decide what quadrature_position should return (position on extruded face or base face)
  • use known normals for horizontal faces
  • iterate over dune kernels and get the correspondend integrand instead of the other way around
  • clean up accumulation and coefficient access
  • make coefficient access part of the visitor
  • two ways of handling horizontal faces:
    • generate one kernel with predicates for face instructions (maybe during visiting)
    • generate separate kernels for each integral type and merge them <-- current approach

Open issues:

  • using first element in mesh for filling quadrature cache -> use element type instead
  • use explicit geometry type instead of using geometry from given entity
  • no support for UFL tensorelements (probably not needed)
  • define basis type explicitly in lop
  • use explicit basis in cache evaluation
  • literal c code is hard to adjust -> mixing "c++" objects with symbolic objects is tedious
    • I hope this will get fixed with #159

I don't think these are controversial topics, so I would also fix them in a more unified way when I work on the structured interface adoption.

Edited by Marcel Koch