dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #02021
Re: Gradient Reconstruction
Looks very good. I experimented last week with a form for computing
the von Mises stress (a scalar). The following should define w as
the projection of the square of the von Mises stress:
s = sigma(u)
a = v*w*dx
L = v*(1.5*dot(s, s) - 0.5*trace(s)*trace(s))*dx
I got negative values for the square, which I suspect is because I
computed the projection onto continuous piecewise linears. Haven't
tried to project to something piecewise discontinuous.
/Anders
On Fri, Feb 17, 2006 at 01:49:46PM +0100, Garth N. Wells wrote:
> I've added a strain reconstruction procedure to the elasticity demo. I'm
> currently working on a plasticity demo, which will illustrate the
> necessary steps for rather generic nonlinear constitutive models (stress
> update algorithm, history variables, consistent tangent, etc).
>
> Garth
>
> On Fri, 2006-02-17 at 11:12 +0000, Alexander Jarosch wrote:
> > Thanks Garth, exactly what I need, I want to calculate the strain rates
> > and out of that the stress tensor.
> >
> > Alex
> >
> > Garth N. Wells wrote:
> >
> > >If you'd like to compute the gradient for post-processing purposes, you
> > >need to set up a separate variational problem which would return the
> > >gradient. Dealing with the gradient of a vector is a little tricky since
> > >FFC and DOLFIN are not yet equipped to deal with tensor functions. Below
> > >is an example FFC input file which would be useful for post-processing.
> > >I'll add it to src/demo/pde/elasticity shortly. If you want to compute a
> > >stress tensor from the strain, you'd probably want to make the elementE
> > >"Discontinuous vector Lagrange".
> > >
> > >Garth
> > >
> > ># Compute normal strain components
> > >#
> > >elementE = FiniteElement("Vector Lagrange", "triangle", 1, 3)
> > >elementU = FiniteElement("Vector Lagrange", "triangle", 2)
> > >
> > >v = BasisFunction(elementE) # test function
> > >e = BasisFunction(elementE) # strain (to be computed)
> > >u = Function(elementU) # displacement
> > >
> > >def normal_strain(u): # eps_xx eps_yy gam_xy
> > > return [u[0].dx(0), u[1].dx(1), (u[0].dx(1) + u[1].dx(0))]
> > >
> > >a = dot(v, e)*dx
> > >L = dot(v, normal_strain(u))*dx
> > >
> > >
> > >On Fri, 2006-02-17 at 10:03 +0000, Alexander Jarosch wrote:
> > >
> > >
> > >>Hello everybody,
> > >>
> > >>I am new to this mailing list and also new to the dolfin project. I
> > >>started to play around with the Stokes solver and have to say dolfin is
> > >>really neat to use, great job.
> > >>I have a question, is there already a function to calculate the gradient
> > >>of the velocity field?
> > >>
> > >>regards,
> > >>Alex.
> > >>
> > >>
> > >
> > >
> > >
> > >_______________________________________________
> > >DOLFIN-dev mailing list
> > >DOLFIN-dev@xxxxxxxxxx
> > >http://www.fenics.org/cgi-bin/mailman/listinfo/dolfin-dev
> > >
> > >
> >
> > _______________________________________________
> > DOLFIN-dev mailing list
> > DOLFIN-dev@xxxxxxxxxx
> > http://www.fenics.org/cgi-bin/mailman/listinfo/dolfin-dev
--
Anders Logg
Research Assistant Professor
Toyota Technological Institute at Chicago
http://www.tti-c.org/logg/
References