Skip to content

Further improvements of External Operators #38

@jorgensd

Description

@jorgensd

After discussions with @a-latyshev we have decided that some nice things to add to this library would be

  • Support of non-quadrature elements. This relates to work with @croci where we would like to call ufl.grad(external_operator). We have some work in progress on this (@a-latyshev will publish branch). We need a good test-case for this.
    • Allow basic UFL operation to be applied to external operators.
  • Batch eval/coefficient packing. This is to deal with the fact that packing at quadrature spaces for high order quadrature is horrible for memory. First step would be to take extract integration domains from the current forms, and create new batched dolfinx.fem.Form objects.
    • Alternative would be to use the symbolic dolfinx.fem.create_form and dolfinx.fem.compile_form, but that is rather verbose.
  • Better handling of codim meshes. This requires some upgrades to dolfinx.fem.Expression, which should take in entity_maps and ensure that packing is done correctly.
  • Enable nested external operators. @jorgensd will provide a use case. Fixed in Support for nested external operators #40
  • Support for mixed function spaces. Currently this doesn't fully work due to how extract blocks works. Need to rethink this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions