Do not set domains of all active coefficients in domain_integral_type#4803
Do not set domains of all active coefficients in domain_integral_type#4803
Conversation
6b4b57f to
cf4ad31
Compare
|
Note that some tests are still failing (see the complex run). |
There are some conflicts with #4763. It seems tricky to resolve, mainly because we sometimes allow coefficients for which |
I looked into this a little with @leo-collins. Setting things to
Is it sufficient to just remove this line: domain_integral_type_map.update(dict.fromkeys(coefficient_meshes, "cell"))This is the one that I think is properly wrong. |
That's what the PR is doing. |
Ah OK. I didn't quite follow the logic. |
|
I changed |
|
#4775 basically allowed users to use illegal forms. If reverting #4775 causes conflicts with #4763, it indicates that #4763 relied on #4775 and used illegal forms in the tests; please see my comments in #4763. You don't want to manipulate types of exception just to make those tests pass. I would revert both #4763 and #4775, restore the original code, and restart from there. You should ask @dham to have a look at these PRs. |
tsfc/kernel_interface/common.py
Outdated
| raise NotImplementedError("Coefficient domain not found in integral. " | ||
| "Possibly, the form contains coefficients on different meshes " | ||
| "and requires measure intersection, for example: " | ||
| 'Measure("dx", argument_mesh, intersect_measures=[Measure("dx", coefficient_mesh)]).') |
Description
Revert #4775
Validates the domains in a multidomain Form at compile time and throws a
MismatchingDomainErrorif the domains are topologically unrelated or if the domains were not included in the integralMeasure.