Hello, I’m working with an internal boundary integration as the right side of a variational system:
V = FunctionSpace(mesh, 'CG', 1)
n = FacetNormal(mesh)
S = 2.0*mu*inner(e(u),e(u)) + lmbda*div(u)**2
theta,xi = [TrialFunction(V), TestFunction(V)]
left_side = assemble((inner(grad(theta),grad(xi)) + inner(theta,xi))*dX)
solverav = LUSolver(left_side)
right_side = assemble(inner(jump(S)*n('+'),n('+'))*xi('+')*dS_int + Constant(0)*xi*dx(domain=mesh, subdomain_data=domains))
th = Function(V)
solverav.solve(th.vector(), right_side)
Here u is the solution of a linear elasticity problem and e(u) is the strain. I’m aware that e(u) is discontinuous, since involves \nabla u, and also that its values are associated with each cell. Therefore it makes sense to me that when integrating over facets I need to restrict this expression to either the positive or negative side of the cell. However, when running the code I still get the error “Discontinuous type Argument must be restricted”, so I understand that I have also to restrict my test function. But I don’t get why. By restricting it to (’+’) or (’-’) won’t It affect the solution of the problem?
Could anyone give me some help on this? I’ve seen a lot of posts here that helped me understanding the restrictions, but I don’t get this issue with the test function.
Thank you!