Define operator for jump over surface

Issue #21 new
Martin Sandve Alnæs created an issue

From Mehdi Nikbakht:

Assume this weak form for Poisson equation with discontinuities.

inner(grad(u), grad(v))*dx + k*[[u]]*[[v]]*dc - v*f*dx = 0

where f and k are source term and the interface stiffness, respectively. In this form, we need to compute jump of solution over discontinuity surface.

The current jump() operator can't be used since it just computes jump over facets(positive and negative sides)

We can either modify jump() operator to perform this functionality or we can define a new operand called djump(). Based on the discussion that Kristian and I had, we think defining djump() will be more suitable.

In XFEM approach, we define

$u = \hat{u} + H \bar{u}$

A continuous space is enriched by a discontinuous space. Note that djump operator is corresponding to discontinuous parts of solution in this case

djump(u) = \bar(u).

I think this can be related to the discussion that Marie and I had on split functionality for enriched elements.

https://lists.launchpad.net/dolfin/msg01913.html

if we have this form,

elem_c = FiniteElement("Lagrange", "tetrahedron", 1)
elem_d = ElementRestirction(elem_c, dc)
element = elem_c + elem_d

v = TestFunction(element) # Test function
v0, v1 = split(v)

Since djump(v) should return v1 in this case.

Comments (3)

  1. Martin Sandve Alnæs reporter

    Andre Massing says: Don't know about the enriched elements but having a djump() operator sounds good. It would also be useful for us in our implementation of Nitsche's method on overlapping meshes.

  2. Martin Sandve Alnæs reporter

    The split function should not be used for this purpose, the semantics are not the same as the current behaviour. A separate function with another name shouldn't be a problem.

    Anyway, without more interest show by the requesters, this won't be considered for implementation.

  3. Log in to comment