← Back to team overview

dolfin team mailing list archive

Re: non linear viscosity

 

On Fri, May 12, 2006 at 11:51:16AM +0000, Alexander Jarosch wrote:
> Hello everybody,
> 
> I try to do a non linear viscous Stokes problem and I use this ffc form :
> 
> elementE = FiniteElement("Vector Lagrange", "triangle", 1, 3)
> elementU = FiniteElement("Vector Lagrange", "triangle", 1)
> 
> 
> v = TestFunction(elementE)  # test function
> e = TrialFunction(elementE)  # strain (to be computed)
> u = Function(elementU)       # displacement
> 
> def normal_strain(u): # eps_xx    eps_yy             eps_xy
>    return [u[0].dx(0), u[1].dx(1), 0.5*(u[0].dx(1) + u[1].dx(0))]
> 
> a = dot(v, e)*dx
> L = dot(v, normal_strain(u))*dx
> 
> to get my strain rates from the velocity field coming out of the stokes 
> problem. Than use these strain rates to calculate new viscosities and 
> iterate the stokes problem until I converge to a non linear fluid. But 
> somehow the approach is not stable and the strain rates seems to go 
> wrong already after the initial stokes solution.
> 
> Did anybody try something similar and maybe can give me some tips on how 
> to do a better approach?
> 
> Thanks for any suggestions,
> 
> Alex

There is a demo in src/demo/pde/elasticity/ for post-processing of
strain rates which computes both the normal and the shear strains.
Maybe you could compare with that demo to find out what goes wrong?

Your variational problem looks ok and should compute the projection of
[u[0].dx(0), u[1].dx(1), 0.5*(u[0].dx(1) + u[1].dx(0))].

Another thing you could experiment with is to project onto
discontinuous Lagrange. I think I remember I got unexpected results
when I experimented with something similar a while ago and projected
onto linears.

/Anders



Follow ups

References