[dune-functions] New example for Taylor-Hood elements

Carsten Gräser graeser at mi.fu-berlin.de
Fri Apr 3 14:35:30 CEST 2015


Am 02.04.2015 um 14:28 schrieb Oliver Sander:
> Hi guys,
> I just added a second example file to our /examples directory.  This one is intended
> to show how function space bases with non-trivial tree are used.  The code discretizes
> the Stokes equation with a Taylor-Hood basis.  The setting is the well-known driven-
> cavity problem: a unit square, no source term, homogeneneous Dirichlet boundary
> conditions on three sides of the square, constant (non-zero) Dirichlet bc on the forth side.
> Have a look at the example if you find the time.  If you think that I did anything in
> a suboptimal way feel free to push patches.
> Unfortunately, when writing the example I found several situations where we are still
> lacking infrastructure:
> - Apparently there is no solver for such a problem in dune-istl.  I'd volunteer to add
>   such a solver, but I am unsure exactly what type of solver to implement.  A preconditioned
>   Uzawa?  Please advice.
> - While the TaylorHoodBasis class is sufficient to assemble the algebraic problem,
>   it is not sufficient for pre- and post-processing.  How do you get the velocity
>   part of a solution into a vtk file?  Currently, the code instantiates a separate
>   PQ2NodalBasis object for this, but what we really want is something like 'view objects'
>   on given bases, that allow to extract subtrees and the corresponding coefficients.
> - Same for interpolation: To find the Dirichlet dofs I need to interpolate the identity
>   function on the velocity basis.  This is currently not possible.
I have the impression that the last two points could be addressed
by passing a TreePath to interpolate() or the Discrete...GridFunction
to select a single leaf. But I'm not sure because I've never used these
TypeTree features. I'll have a look (but this may take some time).


> Finally, there are some issues regarding the linear algebra.
> - The matrix data structure is now Matrix<BCRSMatrix<FieldMatrix<double,1,1> > >.
>   This still ignores quite a bit of structure of the occupation pattern.  This is
>   unfortunate, because we claim that dune-functions and in particular dune-istl
>   is all about using this structure.
> - The type for coefficient vectors is FieldVector<BlockVector<FieldVector> >.
>   Strictly speaking this is against the rules, as FieldVectors are supposed
>   to end recursion.
> Cheers,
> Oliver

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <https://lists.dune-project.org/pipermail/dune-functions/attachments/20150403/7e03ebca/attachment.pgp>

More information about the dune-functions mailing list