← Back to team overview

dolfin team mailing list archive

Re: [HG DOLFIN] Use symmetric gradient in variational form in elasticity demo

 



On Mon, 15 Sep 2008, Anders Logg wrote:

On Mon, Sep 15, 2008 at 09:44:38AM -0400, Shawn Walker wrote:

On Mon, 15 Sep 2008, Anders Logg wrote:

On Mon, Sep 15, 2008 at 11:21:59AM +0100, Garth N. Wells wrote:


DOLFIN wrote:
One or more new changesets pushed to the primary dolfin repository.
A short summary of the last three changesets is included below.

changeset:   4754:23602808c60413cb8faffca818e7a8c04527d3ec
tag:         tip
user:        Anders Logg <logg@xxxxxxxxx>
date:        Sun Sep 14 19:46:40 2008 +0200
files:       demo/pde/elasticity/python/demo.py
description:
Use symmetric gradient in variational form in elasticity demo


In particular reason for this? It is simpler (and still correct) to use
the gradient.

Garth

To make the form and the matrix symmetric. I showed the demo to a
friend (in computational mechanics) and he insisted that we replace
grad(v) by epsilon(v).


It should be epsilon(v).  In the case of Stokes (or Navier-Stokes), if
the velocity boundary conditions are dirichlet, then you can just use
grad(v). However, if you have stress boundary conditions this is no
longer true. The Dirichlet case lets you simplify the variational form
from the epsilon(v) case by some integration by parts.  epsilon(v) is the
correct way.

Incidentally, this means that any "general" Navier-Stokes demos should
probably be done with the epsilon(v) for the viscous term.  It won't make
a difference if the boundary conditions are dirichlet for velocity.

- Shawn

To me it looks like it's the opposite: multiply -div sigma(u) = f with
a test function, then integrate by parts getting grad(v), then
noticing that grad(v) may be replaced by epsilon(v) since sigma(v) is
symmetric.

--
Anders

Sorry, I think I misread the prior stuff. The above is correct, as long as epsilon(v) has the "1/2" factor in it. What I had thought was said before was that the whole stress tensor had been replaced by grad(u):grad(v), which is ONLY correct in the case of dirichlet velocity conditions.

- Shawn


References