Why use DG space to project stress/strain?

Hi,guys.
Simple question: In elastic problems, we may use VectorFunctionSpace(mesh,‘CG’,1) to interpolate displacement u. But when calculating stress or strain component, some people will project stress to a (‘DG’,0) space. Why should we change the space type and degree??
I once projected stress on a (CG,1) space but the pattern dismatched Abaqus results. If I use (DG,0), results were consistent. Can anyone explain the mathematics reason? Thank you in advance!

Differentiating a piecewise linear function gives you a discontinuous function that is constant per element.

2 Likes

You are using a piecewise continuous function to approximate your displacement field. Infact, for linear elasticity your approximation u(x) \in H^1(\Omega) where H^1(\Omega) is the space of functions which are square integrable and whose derivatives are square integrable. The piecewise continuous functions or say (S^1_0 as described in these notes) which are contained within H^1(\Omega) do not have the requirement of continuity of the derivative \nabla u.

And since the stress depends on the gradient of the displacement field \nabla u, it is at best piecewise discontinuous of order one less than the displacement field. So a piecewise linear displacement should give a piecewise constant stress.

1 Like

hello, dokken! thank you! I think i got it. So I can deduce that the displacement in a (CG,2) space will produce the stress in (DG,1). Is that correct?

Hello,bhaveshshrimali! thank you for your detailed reply. Another question: if the displacement is in a (CG,2) space , I deduce the stress is in (DG,1). Is that correct?

Yes, that is correct.

thank you! that helped me a lot.