libCEED icon indicating copy to clipboard operation
libCEED copied to clipboard

PETSc MR 6964 causes Channel fluids examples to fail

Open jrwrigh opened this issue 5 months ago • 56 comments

This is an already known failure (and the GitLab CI PETSc build has reverted that commit to allow tests to pass), but I've realized it never made it's way to a full issue and/or discussion on what the issue is or how to possibly address it.

Starting with PETSc MR 6964, the Channel tests of the fluids example fail.

My guess is that this has something to do with DMPlex's isoperiodicity, as that is the odd-feature-out between all the fluids tests and the Channel tests.

What's (probably) happening

  • the MR changed PetscSectionFieldGetTensorDegree_Private to get the degree of a tensor via it's PetscDualSpace.
  • The only place PetscSectionFieldGetTensorDegree_Private is used is in DMPlexSetClosurePermutationTensor, which changes the ordering of the PetscSection DoF ordering to a tensor-product ordering

So as I see it, there are two possible ways the code is changing behavior:

  • PetscSectionFieldGetTensorDegree_Private incorrectly reports the field as discontinuous
    • This is taken from PetscDualSpaceLagrangeGetContinuity
    • That function in turn gets it from a struct member, which is set in PetscDualSpaceSetUp_Lagrange
    • That function sets continuity based on the reported order of the dual space and whether it's formDegree matches the physical dimension.
  • PetscSectionFieldGetTensorDegree_Private does not calculate the tensor degree correctly
    • This is based on PetscDualSpaceGetDimension, which is in turn based on the size of the section associated with the PetscDualSpace

Unfortunately, I don't see an obvious place where isoperiodicity changes the DualSpace side of things. @jedbrown Any insight/ideas as to where to look?

Paging @rezgarshakeri since you made the PETSc MR.

Edit: The issue is not isoperiodicity per-say, but that periodicity requires using the Cell Coordinate DM, which then registers as discontinuous.

jrwrigh avatar Feb 10 '24 19:02 jrwrigh