For vector elements, the jump() operator in UFL is defined as follows:

  dot(v('+'), n('+')) + dot(v('-'), n('-'))

I'd like to argue that it should instead be implemented like so:

  outer(v('+'), n('+')) + outer(v('-'), n('-'))

That would enable writing the natural term appearing in DG/Nitsche
formulations for vector-valued problems as follows:

  inner(avg(grad(u)), jump(v, n))

This would be analogous to the scalar case which is written

  dot(avg(grad(u)), jump(v, n))

With the current implementation, the term for vector-elements must be
implemented like this:

  dot(dot(avg(grad(u)), n('+')), jump(v))

Is the current version of jump() for vector elements implemented as it
is for a particular reason, or can we change it?

--
Anders
_______________________________________________
fenics mailing list
[email protected]
http://fenicsproject.org/mailman/listinfo/fenics

Reply via email to