← Back to team overview

dolfin team mailing list archive

[Question #156163]: Depth-averaged Stokes flow vector formulation

 

New question #156163 on DOLFIN:
https://answers.launchpad.net/dolfin/+question/156163

Hi all,

I'm attempting to implement a depth averaged ice-sheet flow model in dolfin.  I'm starting with something called the shallow-shelf approximation, which is, in essence, a depth averaged version of Stokes' flow (with a non-linear viscosity).  I very much like the interface of FEniCs because of the dimensionally independent problem definition notation, and I would like to define my model using the VectorFunctionSpace construct.

My problem is that in the depth averaged equations, I end up needing a tensor like this :

[ 2ux + vy , uy+vx ]
[ uy + vx , 2vy+ux ]

where u and v are velocities (the solution) and ux, uy, vx, and vy are their spatial derivatives.  This tensor can be broken into two parts:

[ 2ux ,       uy+vx ]  +  [vy, 0  ]
[ uy + vx ,      2vy]       [ 0, ux]

The first component is just the 2D strain rate tensor that you get with sym(grad(u)), if u is a trial function over a VectorFunctionSpace.  My question is how to achieve the second part, or more generally, how can I construct the necessary tensor (the first one that I wrote), while maintaining VectorFunctionSpace type notation?

Presumably, I could write the model using two separate scalar variables u and v, and invoking the spatial derivative and as_tensor operator a whole bunch of times ...  but that's not nearly as pleasant, so I would be grateful for any assistance.

Also, if anyone has any demos of depth-averaged fluid flow (e.g. shallow water equations) that you wouldn't mind sharing, I would appreciate taking a look.  Preferably in Python.

Cheers.  


-- 
You received this question notification because you are a member of
DOLFIN Team, which is an answer contact for DOLFIN.



Follow ups