Problem with order of application of propagate_restrictions and change_integrand_geometry_representation

Issue #46 resolved
Martin Sandve Alnæs created an issue

Current situation and problem:

  • The algorithm change_integrand_geometry_representation changes e.g. grad(u) to J^-1*reference_grad(u)

  • Applying propagate_restrictions first will (currently) fail because we need the restriction to wrap the grad(u), not grad(u('+'))

  • Applying propagate_restrictions last will fail to set e.g. n('+') = -n('-') because n is rewritten to lower level quantities in change_integrand_geometry_representation

Possible solution:

  • Treat grad(u('+')) in ChangeToReferenceGrad.grad() as grad(u)('+') and apply propagate_restrictions first.

  • Result: (fn)('-') -> f('-') (-n('+')) in propagate_restrictions

  • Result: (n)('+') -> (lower level expression for n)('+') in change_to_reference_grad

Comments (1)

  1. Log in to comment