dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #23085
Re: [Question #156163]: Depth-averaged Stokes flow vector formulation
Question #156163 on DOLFIN changed:
https://answers.launchpad.net/dolfin/+question/156163
Status: Open => Answered
Martin Sandve Alnæs proposed the following answer:
On 5 May 2011 21:32, Douglas Brinkerhoff
<question156163@xxxxxxxxxxxxxxxxxxxxx> wrote:
> 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.
as_matrix([[v.dx(1), 0], [0, u.dx(0)]])
> 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.
>
> _______________________________________________
> Mailing list: https://launchpad.net/~dolfin
> Post to : dolfin@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~dolfin
> More help : https://help.launchpad.net/ListHelp
>
--
You received this question notification because you are a member of
DOLFIN Team, which is an answer contact for DOLFIN.