ufl icon indicating copy to clipboard operation
ufl copied to clipboard

Group integrals by metadata

Open IgorBaratta opened this issue 3 years ago • 2 comments

Currently UFL groups integrals by domain, integral_type, subdomain_id into IntegralData objects. The form compiler then uses this to generate different kernels.

However, forms with different metadata are grouped, and in FFCx, this can potentially produce an error (see: #Issue 394).

Ideally, we would like to have one kernel by metadata (and possibly a quadrature rule per kernel). Our proposal is to modify build_integral_data, to group integrals by metadata.

@wence- Any thoughts on that? Would it be ok for tsfc?

IgorBaratta avatar Oct 25 '21 17:10 IgorBaratta

We'd prefer if the integral were not split by metadata, TSFC would continue to work but would produce slightly worse code. You could augment compute_form_data with yet another flag that defaults to false split_integrals_by_metadata=False or something?

wence- avatar Oct 25 '21 19:10 wence-

Yes. I think another flag in compute_form_data would do.

IgorBaratta avatar Oct 26 '21 11:10 IgorBaratta