Skip to content

Clean up LocalOperators

Note: If you start to work on an operator, please post a comment in this issue to let everybody know


The LocalOperators need a major cleanup:

  • Use range-based for loops for quadrature loops

  • More sensible handling of inside() and outside() for intersections:

    • These methods now return an entity, not an EntityPointer, so the returned objects should be used like an entity (no more dereferencing or access to members with ->)
    • Recreating the entity over and over again inside the quadrature loop is not very efficient, so do the following:
// store grid cells once
auto inside_cell = ig.inside();
auto outside_cell = ig.outside();

// range-based for in the quadrature loop
for (const auto ip : quadrature_rule)
{
  auto x_inside = ig.geometryInInside(ip.position());
  auto b = velocity.evaluate(inside_cell,x_inside);
  outside_cell.geometry();
}
  • Silence all those compiler warnings due to unused local typedefs

How to work on this

  • Branch from master, name your branch something like feature/clean-up-elasticity
  • Push your branch to the GitLab repository
  • Open a merge request from your branch to master
  • Optimally, reference this issue in the merge request text by writing something like This merge request is related to #5 (#5 is a reference to this issue, and GitLab will notice and cross-reference the issue and the merge request)